def student_missing_information_mail(sender, instance, name, source, target, **kwargs): if target == StudentProfileState.MISSING_INFORMATION and not is_duplicate_transition(name, instance): with translation.override(instance.get_preferred_language()): send_templated_mail( subject=_("Your profile at Motius is incomplete"), html_template='email/student/student_missing_information.html', recipient_list=[instance.user.email], context={'profile': instance, 'user': instance.user} )
def student_rejected_mail(sender, instance, name, source, target, **kwargs): if target == StudentProfileState.REJECTED and not is_duplicate_transition(name, instance): with translation.override(instance.get_preferred_language()): send_templated_mail( subject=_("About your registration at Motius"), html_template='email/student/student_rejected.html', recipient_list=[instance.user.email], context={'profile': instance, 'user': instance.user} ) action.send(instance, verb='was rejected')
def generate_invoice_pdf(sender, instance, name, source, target, **kwargs): if target == InvoiceStatus.OPEN and not is_duplicate_transition(name, instance): with tempfile.NamedTemporaryFile() as fh: motius_pdf.from_url( settings.SITE_URL + reverse('payment_invoice_html', args=[instance.pk]), fh.name, ) instance.pdf = File(fh) instance.save() action.send(instance, verb='new invoice generated for', target=instance.recipient)
def send_invoice(sender, instance, name, source, target, **kwargs): if name == "state_sent" and not is_duplicate_transition(name, instance): if isinstance(instance.recipient, StudentProfile) and instance.pdf: with translation.override(instance.recipient.get_preferred_language()): mail = send_templated_mail( subject=_("New invoice %(id)s") % {'id': instance.public_id}, html_template='email/student/new_invoice_notification.html', recipient_list=[instance.recipient.user.email], context={'invoice': instance, 'user': instance.recipient.user}, skip_sending=True ) mail.attach("%s.pdf" % instance.public_id, instance.pdf.read()) mail.send()
def student_accepted_mail(sender, instance, name, source, target, **kwargs): if target == StudentProfileState.ACCEPTED and not is_duplicate_transition(name, instance): with translation.override(instance.get_preferred_language()): mail = send_templated_mail( subject=_("We've accepted you for Motius"), html_template='email/student/student_accepted.html', recipient_list=[instance.user.email], context={'profile': instance, 'user': instance.user}, skip_sending=True, ) # Attach student guide to email student_guide = finders.find('pdf/student_guide_%s.pdf' % instance.get_preferred_language()) with open(student_guide, 'rb') as f: mail.attach(_('motius_student_guide.pdf'), f.read()) mail.send() action.send(instance, verb='was accepted into the pool')