.
This commit is contained in:
+16
-3
@@ -1,4 +1,6 @@
|
|||||||
from django.db import models
|
from django.db import models
|
||||||
|
from django.http import request
|
||||||
|
from smtplib import SMTPException
|
||||||
|
|
||||||
from django.urls import reverse
|
from django.urls import reverse
|
||||||
|
|
||||||
@@ -222,6 +224,8 @@ class CidUser(models.Model):
|
|||||||
email = models.EmailField(blank=True)
|
email = models.EmailField(blank=True)
|
||||||
supervisor_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)
|
group = models.ForeignKey("CidUserGroup", on_delete=models.SET_NULL, null=True)
|
||||||
|
|
||||||
def __str__(self) -> str:
|
def __str__(self) -> str:
|
||||||
@@ -230,9 +234,11 @@ class CidUser(models.Model):
|
|||||||
def check_passcode(self, passcode) -> bool:
|
def check_passcode(self, passcode) -> bool:
|
||||||
return self.passcode == passcode
|
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"""
|
msg = f"""
|
||||||
See below for you details for: {self.group}
|
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 ...
|
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):
|
class CidUserExam(models.Model):
|
||||||
content_type = models.ForeignKey(ContentType, on_delete=models.CASCADE)
|
content_type = models.ForeignKey(ContentType, on_delete=models.CASCADE)
|
||||||
|
|||||||
@@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
|
|
||||||
The following users have been emailed:
|
Emails sent as below:
|
||||||
{% for u in users %}
|
{% for u, success, msg in users %}
|
||||||
<p>{{u.cid}}: {{u.email}}</p>
|
<p>{{u.cid}}: {{u.email}} [success={{success}}] ({{msg}})</p>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
+4
-2
@@ -1030,13 +1030,15 @@ def group_email(request, pk):
|
|||||||
|
|
||||||
users = group.ciduser_set.all()
|
users = group.ciduser_set.all()
|
||||||
|
|
||||||
|
results = []
|
||||||
for u in users:
|
for u in users:
|
||||||
u.email_details()
|
success, msg = u.email_details()
|
||||||
|
results.append((u, success, msg))
|
||||||
|
|
||||||
return render(
|
return render(
|
||||||
request,
|
request,
|
||||||
"generic/group_emailed.html",
|
"generic/group_emailed.html",
|
||||||
{"users": users},
|
{"results": results},
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user