Skip to content

Commit e074608

Browse files
committed
add a test_email option to send_welcome emails
Lets you send out a test email so you can check it all looks ok
1 parent 96f95eb commit e074608

File tree

1 file changed

+31
-18
lines changed

1 file changed

+31
-18
lines changed

crowdsourcer/management/commands/send_welcome_emails.py

+31-18
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,10 @@ def add_arguments(self, parser):
3232
help="Use this session config and only send emails to people in this session",
3333
)
3434

35+
parser.add_argument(
36+
"--test_email", action="store", help="send a test email to this address"
37+
)
38+
3539
def get_config(self, session):
3640
if settings.WELCOME_EMAIL.get(session):
3741
return settings.WELCOME_EMAIL[session]
@@ -44,25 +48,34 @@ def handle(self, *args, **kwargs):
4448
f"{YELLOW}Not sending emails. Call with --send_emails to send{NOBOLD}"
4549
)
4650

47-
users = Marker.objects.filter(send_welcome_email=True).select_related("user")
48-
49-
if kwargs["stage"]:
50-
try:
51-
rt = ResponseType.objects.get(type=kwargs["stage"])
52-
users = users.filter(response_type=rt)
53-
except ResponseType.NotFoundException:
54-
self.stderr.write(f"{YELLOW}No such stage: {kwargs['stage']}{NOBOLD}")
55-
return
51+
if kwargs["test_email"]:
52+
users = Marker.objects.filter(
53+
user__email=kwargs["test_email"]
54+
).select_related("user")
55+
else:
56+
users = Marker.objects.filter(send_welcome_email=True).select_related(
57+
"user"
58+
)
5659

57-
if kwargs["session"]:
58-
try:
59-
session = MarkingSession.objects.get(label=kwargs["session"])
60-
users = users.filter(marking_session=session)
61-
except ResponseType.NotFoundException:
62-
self.stderr.write(
63-
f"{YELLOW}No such session: {kwargs['session']}{NOBOLD}"
64-
)
65-
return
60+
if kwargs["stage"]:
61+
try:
62+
rt = ResponseType.objects.get(type=kwargs["stage"])
63+
users = users.filter(response_type=rt)
64+
except ResponseType.NotFoundException:
65+
self.stderr.write(
66+
f"{YELLOW}No such stage: {kwargs['stage']}{NOBOLD}"
67+
)
68+
return
69+
70+
if kwargs["session"]:
71+
try:
72+
session = MarkingSession.objects.get(label=kwargs["session"])
73+
users = users.filter(marking_session=session)
74+
except ResponseType.NotFoundException:
75+
self.stderr.write(
76+
f"{YELLOW}No such session: {kwargs['session']}{NOBOLD}"
77+
)
78+
return
6679

6780
config = self.get_config(kwargs["session"])
6881

0 commit comments

Comments
 (0)