Beispiel #1
0
def _send_rejection_email(modeladmin, request, queryset, lang_code='',
                          delete_application=False):
    # 1. send rejection email - this should be refactored to use djangos "bulk"
    #    mail
    #
    # Info: Using mass rejection on many JobApplications can lead to a timeout,
    # since SMTPs are not known to be fast
    qs_count = len(queryset)

    for application in queryset:
        context = {'job_application': application, }
        send_mail(recipients=[application.email], context=context,
                  template_base='aldryn_jobs/emails/rejection_letter',
                  language=lang_code.lower())

    # 2. update status or delete objects
    if not delete_application:
        queryset.update(is_rejected=True, rejection_date=now())
        success_msg = _("Successfully sent {0} rejection email(s).").format(
            qs_count)
    else:
        queryset.delete()
        success_msg = _("Successfully deleted {0} application(s) and sent "
                        "rejection email.").format(qs_count)

    # 3. inform user with success message
    modeladmin.message_user(request, success_msg)
    return
Beispiel #2
0
def _send_rejection_email(modeladmin, request, queryset, lang_code='',
                          delete_application=False):
    # 1. send rejection email - this should be refactored to use djangos "bulk"
    #    mail
    #
    # Info: Using mass rejection on many JobApplications can lead to a timeout,
    # since SMTPs are not known to be fast
    qs_count = len(queryset)

    for application in queryset:
        context = {'job_application': application, }
        send_mail(recipients=[application.email], context=context,
                  template_base='aldryn_jobs/emails/rejection_letter',
                  language=lang_code.lower())

    # 2. update status or delete objects
    if not delete_application:
        queryset.update(is_rejected=True, rejection_date=now())
        success_msg = _("Successfully sent {0} rejection email(s).").format(
            qs_count)
    else:
        queryset.delete()
        success_msg = _("Successfully deleted {0} application(s) and sent "
                        "rejection email.").format(qs_count)

    # 3. inform user with success message
    modeladmin.message_user(request, success_msg)
    return
Beispiel #3
0
 def send_notification_email(self, email, form):
     context = {
         'form_name': form.instance.name,
         'form_data': get_form_render_data(form)
     }
     send_mail(
         recipients=[email],
         context=context,
         template_base=self.email_template_base
     )
Beispiel #4
0
 def send_notification_email(self, email, form, form_field_instance):
     context = {
         'form_name': form.instance.name,
         'form_data':
         form.get_serialized_field_choices(is_confirmation=True),
         'body_text': form_field_instance.email_body,
     }
     send_mail(recipients=[email],
               context=context,
               subject=form_field_instance.email_subject,
               template_base=self.email_template_base)
Beispiel #5
0
 def send_notification_email(self, form, form_plugin):
     recipients = self.people_notified.values_list('email', flat=True)
     context = {
         'form_name': form_plugin.name,
         'form_data': get_form_render_data(form)
     }
     send_mail(
         recipients=recipients,
         context=context,
         template_base='aldryn_forms/emails/notification'
     )
Beispiel #6
0
 def send_notification_email(self, email, form, form_field_instance):
     context = {
         'form_name': form.instance.name,
         'form_data': form.get_serialized_field_choices(is_confirmation=True),
         'body_text': form_field_instance.email_body,
     }
     send_mail(
         recipients=[email],
         context=context,
         subject=form_field_instance.email_subject,
         template_base=self.email_template_base
     )
Beispiel #7
0
    def send_notifications(self, instance, form):
        users = instance.recipients.only('first_name', 'last_name', 'email')

        recipients = [user for user in users.exclude(email='')
                      if is_valid_recipient(user.email)]

        context = {
            'form_name': instance.name,
            'form_data': form.get_serialized_field_choices(),
            'form_plugin': instance,
        }

        send_mail(
            recipients=[user.email for user in recipients],
            context=context,
            template_base='aldryn_forms/emails/notification',
            language=instance.language,
        )

        users_notified = [
            (user.get_full_name(), user.email) for user in recipients]
        return users_notified
Beispiel #8
0
    def send_notifications(self, instance, form):
        users = instance.recipients.exclude(email='')

        recipients = [user for user in users.iterator()
                      if is_valid_recipient(user.email)]

        context = {
            'form_name': instance.name,
            'form_data': form.get_serialized_field_choices(),
            'form_plugin': instance,
        }

        send_mail(
            recipients=[user.email for user in recipients],
            context=context,
            template_base='aldryn_forms/emails/notification',
            language=instance.language,
        )

        users_notified = [
            (get_user_name(user), user.email) for user in recipients]
        return users_notified
Beispiel #9
0
    def send_staff_notifications(self):
        recipients = list(self.instance.job_opening.get_notification_emails())
        if DEFAULT_SEND_TO:
            recipients += [DEFAULT_SEND_TO]

        app_label = self._meta.model._meta.app_label
        try:
            model_name = self._meta.model._meta.model_name
        except AttributeError:
            # Django < 1.9
            model_name = self._meta.model._meta.module_name

        admin_change_form = reverse('admin:{}_{}_change'.format(
            app_label, model_name),
                                    args=(self.instance.pk, ))

        context = {
            'job_application': self.instance,
        }
        # make admin change form url available
        if hasattr(self, 'request'):
            context['admin_change_form_url'] = self.request.build_absolute_uri(
                admin_change_form)

        kwargs = {}
        if SEND_ATTACHMENTS_WITH_EMAIL:
            attachments = self.instance.attachments.all()
            if attachments:
                kwargs['attachments'] = []
                for attachment in attachments:
                    attachment.file.seek(0)
                    kwargs['attachments'].append((
                        os.path.split(attachment.file.name)[1],
                        attachment.file.read(),
                    ))
        send_mail(recipients=recipients,
                  context=context,
                  template_base='aldryn_jobs/emails/notification',
                  **kwargs)
Beispiel #10
0
    def send_staff_notifications(self):
        recipients = list(self.instance.job_opening.get_notification_emails())
        if DEFAULT_SEND_TO:
            recipients += [DEFAULT_SEND_TO]

        app_label = self._meta.model._meta.app_label
        try:
            model_name = self._meta.model._meta.model_name
        except AttributeError:
            # Django < 1.9
            model_name = self._meta.model._meta.module_name

        admin_change_form = reverse(
            'admin:{}_{}_change'.format(app_label, model_name),
            args=(self.instance.pk,)
        )

        context = {
            'job_application': self.instance,
        }
        # make admin change form url available
        if hasattr(self, 'request'):
            context['admin_change_form_url'] = self.request.build_absolute_uri(
                admin_change_form)

        kwargs = {}
        if SEND_ATTACHMENTS_WITH_EMAIL:
            attachments = self.instance.attachments.all()
            if attachments:
                kwargs['attachments'] = []
                for attachment in attachments:
                    attachment.file.seek(0)
                    kwargs['attachments'].append(
                        (os.path.split(
                            attachment.file.name)[1], attachment.file.read(),))
        send_mail(recipients=recipients,
                  context=context,
                  template_base='aldryn_jobs/emails/notification', **kwargs)
Beispiel #11
0
 def send_confirmation_email(self):
     context = {'job_application': self.instance}
     send_mail(recipients=[self.instance.email],
               context=context,
               template_base='aldryn_jobs/emails/confirmation')
Beispiel #12
0
 def send_confirmation_email(self):
     context = {'job_application': self.instance}
     send_mail(recipients=[self.instance.email],
               context=context,
               template_base='aldryn_jobs/emails/confirmation')