|
26 | 26 | from application import forms |
27 | 27 | from application.mixins import ApplicationPermissionRequiredMixin |
28 | 28 | from application.models import Application, FileField, ApplicationLog, ApplicationTypeConfig, PromotionalCode |
29 | | -from review.emails import get_invitation_email |
| 29 | +from review.emails import get_invitation_or_waitlist_email |
30 | 30 | from review.filters import ApplicationTableFilter, ApplicationTableFilterWithPromotion |
31 | 31 | from review.forms import CommentForm, DubiousApplicationForm |
32 | 32 | from review.models import Vote, FileReview, CommentReaction |
@@ -318,24 +318,26 @@ def post(self, request, *args, **kwargs): |
318 | 318 | selection = request.POST.getlist('select') |
319 | 319 | error = 0 |
320 | 320 | emails = EmailList() |
| 321 | + new_status = request.POST.get('status', Application.STATUS_INVITED) |
| 322 | + status_name = [y for x, y in Application.STATUS if x == new_status][0] |
321 | 323 | for application in Application.objects.actual().filter(uuid__in=selection): |
322 | | - log = ApplicationLog(application=application, user=request.user, name='Invited') |
323 | | - log.changes = {'status': {'old': application.status, 'new': Application.STATUS_INVITED}} |
324 | | - application.set_status(Application.STATUS_INVITED) |
325 | | - try: |
326 | | - application.save() |
327 | | - log.save() |
328 | | - emails.add(get_invitation_email(request, application)) |
329 | | - except Error: |
330 | | - error += 1 |
| 324 | + if application.status != new_status: |
| 325 | + log = ApplicationLog(application=application, user=request.user, name=status_name) |
| 326 | + log.changes = {'status': {'old': application.status, 'new': new_status}} |
| 327 | + application.set_status(new_status) |
| 328 | + try: |
| 329 | + application.save() |
| 330 | + log.save() |
| 331 | + emails.add(get_invitation_or_waitlist_email(request, application)) |
| 332 | + except Error: |
| 333 | + error += 1 |
331 | 334 | emails = emails.send_all() |
332 | 335 | if error > 0: |
333 | | - messages.error(request, _('Invited %s, Emails sent: %s, Error: %s') % |
334 | | - (len(selection) - error, emails or 0, error)) |
| 336 | + messages.error(request, _('%s %s, Emails sent: %s, Error: %s') % |
| 337 | + (status_name, len(selection) - error, emails or 0, error)) |
335 | 338 | else: |
336 | | - messages.success(request, _('Invited: %s, Emails sent: %s' % (len(selection), emails or 0))) |
337 | | - return redirect(reverse('application_list') + '?type=%s&status=%s' % (self.get_application_type(), |
338 | | - Application.STATUS_INVITED)) |
| 339 | + messages.success(request, _('%s: %s, Emails sent: %s' % (status_name, len(selection), emails or 0))) |
| 340 | + return redirect(reverse('application_list') + '?type=%s&status=%s' % (self.get_application_type(), new_status)) |
339 | 341 |
|
340 | 342 |
|
341 | 343 | class FileReviewView(ApplicationPermissionRequiredMixin, TabsViewMixin, TemplateView): |
|
0 commit comments