|
12 | 12 | update_tags, FOLLOWUP_TAG, get_state_by_name) |
13 | 13 | from ietf.ietfworkflows.models import AnnotationTag, State |
14 | 14 | from ietf.idtracker.models import PersonOrOrgInfo |
| 15 | +from ietf.utils.mail import send_mail_text |
15 | 16 |
|
16 | 17 | from workflows.models import Transition |
17 | 18 |
|
| 19 | +from redesign.person.models import Person |
18 | 20 |
|
19 | 21 | class RelatedWGForm(forms.Form): |
20 | 22 |
|
@@ -191,26 +193,30 @@ def __init__(self, *args, **kwargs): |
191 | 193 | def get_next_form(self): |
192 | 194 | return self.next_form |
193 | 195 |
|
194 | | - def get_person(self, email): |
195 | | - persons = PersonOrOrgInfo.objects.filter(emailaddress__address=email).distinct() |
196 | | - if not persons: |
197 | | - raise PersonOrOrgInfo.DoesNotExist |
198 | | - if len(persons) > 1: |
199 | | - raise PersonOrOrgInfo.MultipleObjectsReturned |
200 | | - return persons[0] |
201 | | - |
202 | 196 | def save(self): |
203 | 197 | email = self.cleaned_data.get('email') |
204 | | - try: |
205 | | - person = self.get_person(email) |
206 | | - except PersonOrOrgInfo.DoesNotExist: |
207 | | - self.next_form = NotExistDelegateForm(wg=self.wg, user=self.user, email=email, shepherd=self.shepherd) |
208 | | - self.next_form.set_message('doesnotexist', 'There is no user with this email allowed to login to the system') |
209 | | - return |
210 | | - except PersonOrOrgInfo.MultipleObjectsReturned: |
211 | | - self.next_form = MultipleDelegateForm(wg=self.wg, user=self.user, email=email, shepherd=self.shepherd) |
212 | | - self.next_form.set_message('multiple', 'There are multiple users with this email in the system') |
213 | | - return |
| 198 | + if settings.USE_DB_REDESIGN_PROXY_CLASSES: |
| 199 | + try: |
| 200 | + person = Person.objects.filter(email__address=email).distinct().get() |
| 201 | + except Person.DoesNotExist: |
| 202 | + self.next_form = NotExistDelegateForm(wg=self.wg, user=self.user, email=email, shepherd=self.shepherd) |
| 203 | + self.next_form.set_message('doesnotexist', 'There is no user with this email allowed to login to the system') |
| 204 | + return |
| 205 | + except Person.MultipleObjectsReturned: |
| 206 | + self.next_form = MultipleDelegateForm(wg=self.wg, user=self.user, email=email, shepherd=self.shepherd) |
| 207 | + self.next_form.set_message('multiple', 'There are multiple users with this email in the system') |
| 208 | + return |
| 209 | + else: |
| 210 | + try: |
| 211 | + person = PersonOrOrgInfo.objects.filter(emailaddress__address=email).distinct().get() |
| 212 | + except PersonOrOrgInfo.DoesNotExist: |
| 213 | + self.next_form = NotExistDelegateForm(wg=self.wg, user=self.user, email=email, shepherd=self.shepherd) |
| 214 | + self.next_form.set_message('doesnotexist', 'There is no user with this email allowed to login to the system') |
| 215 | + return |
| 216 | + except PersonOrOrgInfo.MultipleObjectsReturned: |
| 217 | + self.next_form = MultipleDelegateForm(wg=self.wg, user=self.user, email=email, shepherd=self.shepherd) |
| 218 | + self.next_form.set_message('multiple', 'There are multiple users with this email in the system') |
| 219 | + return |
214 | 220 | if self.shepherd: |
215 | 221 | self.assign_shepherd(person) |
216 | 222 | else: |
@@ -282,43 +288,38 @@ def as_p(self): |
282 | 288 | info = render_to_string('wgchairs/notexistdelegate.html', {'email_list': email_list, 'shepherd': self.shepherd}) |
283 | 289 | return info + super(NotExistDelegateForm, self).as_p() |
284 | 290 |
|
285 | | - def send_email(self, email, template): |
| 291 | + def send_email(self, to_email, template): |
286 | 292 | if self.shepherd: |
287 | 293 | subject = 'WG shepherd needs system credentials' |
288 | 294 | else: |
289 | 295 | subject = 'WG Delegate needs system credentials' |
290 | | - persons = PersonOrOrgInfo.objects.filter(emailaddress__address=self.email).distinct() |
| 296 | + if settings.USE_DB_REDESIGN_PROXY_CLASSES: |
| 297 | + persons = Person.objects.filter(email__address=self.email).distinct() |
| 298 | + else: |
| 299 | + persons = PersonOrOrgInfo.objects.filter(emailaddress__address=self.email).distinct() |
291 | 300 | body = render_to_string(template, |
292 | 301 | {'chair': get_person_for_user(self.user), |
293 | 302 | 'delegate_email': self.email, |
294 | 303 | 'shepherd': self.shepherd, |
295 | 304 | 'delegate_persons': persons, |
296 | 305 | 'wg': self.wg, |
297 | 306 | }) |
298 | | - mail = EmailMessage(subject=subject, |
299 | | - body=body, |
300 | | - to=email, |
301 | | - from_email=settings.DEFAULT_FROM_EMAIL) |
302 | | - mail.send() |
303 | | - |
304 | | - def send_email_to_delegate(self, email): |
305 | | - self.send_email(email, 'wgchairs/notexistsdelegate_delegate_email.txt') |
306 | | - |
307 | | - def send_email_to_secretariat(self, email): |
308 | | - self.send_email(email, 'wgchairs/notexistsdelegate_secretariat_email.txt') |
309 | 307 |
|
310 | | - def send_email_to_wgchairs(self, email): |
311 | | - self.send_email(email, 'wgchairs/notexistsdelegate_wgchairs_email.txt') |
| 308 | + send_mail_text(None, to_email, settings.DEFAULT_FROM_EMAIL, subject, body) |
312 | 309 |
|
313 | 310 | def save(self): |
314 | 311 | self.next_form = AddDelegateForm(wg=self.wg, user=self.user) |
315 | 312 | if settings.DEBUG: |
316 | 313 | self.next_form.set_message('warning', 'Email was not sent cause tool is in DEBUG mode') |
317 | 314 | else: |
318 | 315 | email_list = self.get_email_list() |
319 | | - self.send_email_to_delegate([email_list[0]]) |
320 | | - self.send_email_to_secretariat([email_list[1]]) |
321 | | - self.send_email_to_wgchairs(email_list[2:]) |
| 316 | + # this is ugly... |
| 317 | + delegate = email_list[0] |
| 318 | + secretariat = email_list[1] |
| 319 | + wgchairs = email_list[2:] |
| 320 | + self.send_email(delegate, 'wgchairs/notexistsdelegate_delegate_email.txt') |
| 321 | + self.send_email(secretariat, 'wgchairs/notexistsdelegate_secretariat_email.txt') |
| 322 | + self.send_email(wgchairs, 'wgchairs/notexistsdelegate_wgchairs_email.txt') |
322 | 323 | self.next_form.set_message('success', 'Email sent successfully') |
323 | 324 |
|
324 | 325 |
|
|
0 commit comments