Skip to content

Commit 3cc478e

Browse files
committed
show message from rider in email to driver on ride request
1 parent ff2d60f commit 3cc478e

File tree

5 files changed

+30
-7
lines changed

5 files changed

+30
-7
lines changed

app/carpool/views.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -342,7 +342,7 @@ def new_rider(carpool_uuid):
342342
flash(
343343
"Your ride request has been sent to the driver for approval.",
344344
'success')
345-
_email_driver_ride_requested(carpool, current_user)
345+
_email_driver_ride_requested(carpool, rr, current_user)
346346

347347
return redirect(url_for('carpool.details', uuid=carpool.uuid))
348348

@@ -521,21 +521,22 @@ def _email_carpool_cancelled(carpool, reason, notify_driver):
521521
)
522522

523523

524-
def _email_driver(carpool, current_user, subject, template_name_specifier):
524+
def _email_driver(carpool, current_user, subject, template_name_specifier, ride_request=None):
525525
send_email(
526526
template_name_specifier,
527527
carpool.driver.email,
528528
subject,
529529
rider=current_user,
530530
carpool=carpool,
531+
ride_request=ride_request,
531532
)
532533

533534

534-
def _email_driver_ride_requested(carpool, current_user):
535+
def _email_driver_ride_requested(carpool, ride_request, current_user):
535536
subject = '{} requested a ride in carpool on {}'.format(
536537
current_user.name, carpool.leave_time)
537538

538-
_email_driver(carpool, current_user, subject, 'ride_requested')
539+
_email_driver(carpool, current_user, subject, 'ride_requested', ride_request)
539540

540541

541542
def _email_ride_status(request, subject_beginning, template_name_specifier):

app/templates/email/ride_requested.html

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,11 @@
33
{% block content %}
44
<p>Hi {{ carpool.driver.name }},</p>
55

6-
<p>You have a new ride request! {{ rider.name }} ({{ rider.gender_string() }}) has requested a ride in your carpool from {{ carpool.from_place }} to {{ carpool.destination.name }} at {{ carpool.leave_time | humanize }}.</p>
6+
<p>You have a new ride request! {{ rider.name }} ({{ rider.gender_string() }}) has requested a ride in your carpool from {{ carpool.from_place }} to {{ carpool.destination.name }} at {{ carpool.leave_time | humanize }}.
7+
{% if ride_request.notes %}
8+
<br>Message from {{rider.name}}: {{ride_request.notes}}
9+
{% endif %}
10+
</p>
711

812
<p>Please <a href="{{url_for('carpool.details', uuid=carpool.uuid, _external=True)}}"> click here</a> and approve or deny this request.</p>
913

@@ -12,7 +16,7 @@
1216
<p>You'll receive a reminder email containing all of your passengers' contact information two days before your departure date.</p>
1317

1418
<p>Thanks!</p>
15-
19+
1620
<p>{{ config.get('BRANDING_EMAIL_SIGNATURE') }}</p>
1721

1822
<p>SAFETY TIPS</p>

app/templates/email/ride_requested.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
Hi {{ carpool.driver.name }},
22

33
You have a new ride request! {{ rider.name }} ({{ rider.gender_string() }}) has requested a ride in your carpool from {{ carpool.from_place }} to {{ carpool.destination.name }} at {{ carpool.leave_time | humanize }}.
4+
{% if ride_request.notes %}
5+
Message from {{rider.name}}: {{ride_request.notes}}
6+
{% endif %}
7+
48

59
Please go to {{url_for('carpool.details', uuid=carpool.uuid, _external=True)}} and approve or deny this request.
610

tests/factories.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ class RideRequestFactory(BaseFactory):
6565
"""Ride Request factory."""
6666
person = SubFactory(PersonFactory)
6767
carpool = SubFactory(CarpoolFactory)
68+
notes = None
6869

6970
class Meta:
7071
"""Factory configuration."""

tests/test_email_templates.py

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,31 +8,41 @@ class TestEmailTemplates:
88
def test_ride_requested(self, db):
99
rider = PersonFactory(email='[email protected]', phone_number='')
1010
carpool = CarpoolFactory(from_place='from')
11+
notes = 'Can we stop for coffee?'
12+
ride_request = RideRequestFactory(person=rider, carpool=carpool, notes=notes)
1113
db.session.add(rider)
1214
db.session.add(carpool)
15+
db.session.add(ride_request)
1316
db.session.commit()
1417
rendered = render_template(
1518
'email/ride_requested.html',
1619
carpool=carpool,
1720
rider=rider,
21+
ride_request=ride_request,
1822
)
1923
assert 'requested a ride in your carpool from from to dest' in rendered
2024
assert 'can be contacted at [email protected].' in rendered
25+
assert notes in rendered
2126

2227

23-
def test_ride_requested(self, db):
28+
def test_ride_requested_phone(self, db):
2429
rider = PersonFactory(email='[email protected]', phone_number='1231231234')
2530
carpool = CarpoolFactory(from_place='from')
31+
ride_request = RideRequestFactory(person=rider, carpool=carpool)
2632
db.session.add(rider)
2733
db.session.add(carpool)
34+
db.session.add(ride_request)
2835
db.session.commit()
2936
rendered = render_template(
3037
'email/ride_requested.html',
3138
carpool=carpool,
3239
rider=rider,
40+
ride_request=ride_request,
41+
3342
)
3443
assert 'requested a ride in your carpool from from to dest' in rendered
3544
assert 'can be contacted at [email protected] or 1231231234' in rendered
45+
assert 'Message from ' not in rendered
3646

3747
def test_ride_approved(self, db):
3848
rider = PersonFactory()
@@ -87,6 +97,8 @@ def test_email_signature(self, db):
8797
db.session.add(carpool)
8898
destination = DestinationFactory()
8999
db.session.add(destination)
100+
ride_request = RideRequestFactory(person=rider, carpool=carpool)
101+
db.session.add(ride_request)
90102
db.session.commit()
91103
for ext in ['html', 'txt']:
92104
for template in templates:
@@ -100,6 +112,7 @@ def test_email_signature(self, db):
100112
driver=driver,
101113
person=rider,
102114
destination=destination,
115+
ride_request=ride_request,
103116
)
104117
assert config['BRANDING_EMAIL_SIGNATURE'] in rendered, \
105118
'%s missing signature' % template_path

0 commit comments

Comments
 (0)