.
This commit is contained in:
+16
-3
@@ -1,4 +1,6 @@
|
||||
from django.db import models
|
||||
from django.http import request
|
||||
from smtplib import SMTPException
|
||||
|
||||
from django.urls import reverse
|
||||
|
||||
@@ -222,6 +224,8 @@ class CidUser(models.Model):
|
||||
email = models.EmailField(blank=True)
|
||||
supervisor_email = models.EmailField(blank=True)
|
||||
|
||||
login_email_sent = models.BooleanField(default=False)
|
||||
|
||||
group = models.ForeignKey("CidUserGroup", on_delete=models.SET_NULL, null=True)
|
||||
|
||||
def __str__(self) -> str:
|
||||
@@ -230,9 +234,11 @@ class CidUser(models.Model):
|
||||
def check_passcode(self, passcode) -> bool:
|
||||
return self.passcode == passcode
|
||||
|
||||
def email_details(self):
|
||||
def email_details(self, resend=False):
|
||||
if self.login_email_sent and not self.resend:
|
||||
return False, "Already sent."
|
||||
|
||||
login_url = reverse("cid_selector")
|
||||
login_url = request.build_absolute_uri(reverse("cid_selector"))
|
||||
|
||||
msg = f"""
|
||||
See below for you details for: {self.group}
|
||||
@@ -252,7 +258,14 @@ class CidUser(models.Model):
|
||||
Please note this inbox is not monitored. Direct all enquiries to ...
|
||||
"""
|
||||
|
||||
send_mail("Candidate Details", msg, "test@xkjq.uk", [self.email])
|
||||
try:
|
||||
send_mail("Candidate Details", msg, "test@xkjq.uk", [self.email], fail_silently=False)
|
||||
except SMTPException as e:
|
||||
return False, e
|
||||
|
||||
self.login_email_sent = True
|
||||
self.save()
|
||||
return True, ""
|
||||
|
||||
class CidUserExam(models.Model):
|
||||
content_type = models.ForeignKey(ContentType, on_delete=models.CASCADE)
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
|
||||
{% block content %}
|
||||
|
||||
The following users have been emailed:
|
||||
{% for u in users %}
|
||||
<p>{{u.cid}}: {{u.email}}</p>
|
||||
{% endfor %}
|
||||
{% endblock %}
|
||||
Emails sent as below:
|
||||
{% for u, success, msg in users %}
|
||||
<p>{{u.cid}}: {{u.email}} [success={{success}}] ({{msg}})</p>
|
||||
{% endfor %}
|
||||
{% endblock %}
|
||||
|
||||
+4
-2
@@ -1030,13 +1030,15 @@ def group_email(request, pk):
|
||||
|
||||
users = group.ciduser_set.all()
|
||||
|
||||
results = []
|
||||
for u in users:
|
||||
u.email_details()
|
||||
success, msg = u.email_details()
|
||||
results.append((u, success, msg))
|
||||
|
||||
return render(
|
||||
request,
|
||||
"generic/group_emailed.html",
|
||||
{"users": users},
|
||||
{"results": results},
|
||||
)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user