Example #1
0
def send_remediation_action_submitted_notice(to_address,
                                             remediation_action,
                                             request,
                                             cc=None,
                                             bcc=None):
    email = RemediationActionSubmittedMail()
    if request.data.get('email_subject'):
        email.subject = request.data.get('email_subject')
    url = request.build_absolute_uri(
        reverse('internal-sanction-outcome-detail',
                kwargs={
                    'sanction_outcome_id':
                    remediation_action.sanction_outcome.id
                }))
    context = {
        'url': url,
        'remediation_action': remediation_action,
        'sanction_outcome': remediation_action.sanction_outcome,
    }

    # Attach files (files from the modal, and the PDF file generated above)
    attachments = prepare_attachments(remediation_action.documents)

    msg = email.send(
        to_address,
        context=context,
        attachments=attachments,
        cc=cc,
        bcc=bcc,
    )
    sender = request.user if request else settings.DEFAULT_FROM_EMAIL
    email_data = _extract_email_headers(msg, sender=sender)
    return email_data
Example #2
0
def send_decline_email(to_address,
                       sanction_outcome,
                       workflow_entry,
                       request,
                       cc=None,
                       bcc=None):
    email = SendDeclineEmail()
    if request.data.get('email_subject'):
        email.subject = request.data.get('email_subject')
    url = request.build_absolute_uri(
        reverse('internal-sanction-outcome-detail',
                kwargs={'sanction_outcome_id': sanction_outcome.id}))
    context = {
        'url': url,
        'sanction_outcome': sanction_outcome,
        'workflow_entry_details': request.data.get('details'),
    }

    # Attach files (files from the modal, and the PDF file generated above)
    attachments = prepare_attachments(workflow_entry.documents)

    msg = email.send(
        to_address,
        context=context,
        attachments=attachments,
        cc=cc,
        bcc=bcc,
    )
    sender = request.user if request else settings.DEFAULT_FROM_EMAIL
    email_data = _extract_email_headers(msg, sender=sender)
    return email_data
Example #3
0
def send_remediation_notice_issued_on_paper(to_address,
                                            sanction_outcome,
                                            workflow_entry,
                                            request,
                                            cc=None,
                                            bcc=None):
    email = RemediationNoticeIssuedOnPaperEmail()
    if request.data.get('email_subject'):
        email.subject = request.data.get('email_subject')
    url = request.build_absolute_uri(reverse('external'))
    context = {
        'url': url,
        'sanction_outcome': sanction_outcome,
        'workflow_entry_details': request.data.get('details'),
    }

    # Attach files (files from the modal, and the PDF file generated above)
    attachments = prepare_attachments(workflow_entry.documents)

    msg = email.send(
        to_address,
        context=context,
        attachments=attachments,
        cc=cc,
        bcc=bcc,
    )
    sender = request.user if request else settings.DEFAULT_FROM_EMAIL
    email_data = _extract_email_headers(msg, sender=sender)
    return email_data
Example #4
0
def send_mail(select_group,
              call_email,
              workflow_entry,
              request=None,
              email_type=None):
    if email_type == 'close':
        email = CallEmailCloseNotificationEmail()
    else:
        # default is CallEmail forward notification
        email = CallEmailForwardNotificationEmail()
    if request.data.get('email_subject'):
        email.subject = request.data.get('email_subject')
    url = request.build_absolute_uri(
        reverse('internal-call-email-detail',
                kwargs={'call_email_id': call_email.id}))
    context = {
        'url': url,
        'call_email': call_email,
        'workflow_entry_details': request.data.get('details'),
    }
    email_group = [item.email for item in select_group] if isinstance(
        select_group[0], EmailUser) else select_group
    msg = email.send(email_group,
                     context=context,
                     attachments=prepare_attachments(workflow_entry.documents))
    sender = request.user if request else settings.DEFAULT_FROM_EMAIL
    # email_data = _extract_email_headers(msg, call_email, sender=sender)
    email_data = _extract_email_headers(msg, sender=sender)
    return email_data
Example #5
0
def send_parking_infringement_without_offenders(to_address,
                                                sanction_outcome,
                                                workflow_entry,
                                                request,
                                                cc=None,
                                                bcc=None):
    email = SendToIncWithoutOffendersMail()
    if request.data.get('email_subject'):
        email.subject = request.data.get('email_subject')
    url = request.build_absolute_uri(
        reverse('internal-sanction-outcome-detail',
                kwargs={'sanction_outcome_id': sanction_outcome.id}))
    context = {
        'url': url,
        'sanction_outcome': sanction_outcome,
        'workflow_entry_details': request.data.get('details'),
    }
    msg = email.send(
        to_address,
        context=context,
        attachments=prepare_attachments(workflow_entry.documents),
        cc=cc,
        bcc=bcc,
    )
    sender = request.user if request else settings.DEFAULT_FROM_EMAIL
    email_data = _extract_email_headers(msg, sender=sender)
    return email_data
Example #6
0
def send_mail(select_group,
              inspection,
              workflow_entry,
              request=None,
              email_type=None):
    if email_type == 'send_to_manager':
        email = InspectionSendToManagerNotificationEmail()
    elif email_type == 'request_amendment':
        email = InspectionRequestAmendmentNotificationEmail()
    elif email_type == 'endorse':
        email = InspectionEndorseNotificationEmail()
    else:
        # default is Inspection forward notification
        email = InspectionForwardNotificationEmail()
    if request.data.get('email_subject'):
        email.subject = request.data.get('email_subject')
    url = request.build_absolute_uri(
        reverse('internal-inspection-detail',
                kwargs={'inspection_id': inspection.id}))
    context = {
        'url': url,
        'inspection': inspection,
        'workflow_entry_details': request.data.get('details'),
    }
    email_group = [item.email for item in select_group]
    msg = email.send(email_group,
                     context=context,
                     attachments=prepare_attachments(workflow_entry.documents))
    sender = request.user if request else settings.DEFAULT_FROM_EMAIL
    email_data = _extract_email_headers(msg, sender=sender)
    return email_data
Example #7
0
def create_infringement_notice_ybw(sanction_outcome, workflow_entry=None):
    pdf_file_name_b = 'infringement_notice_b_{}_{}.pdf'.format(
        sanction_outcome.lodgement_number,
        datetime.datetime.now().strftime("%Y%m%d%H%M%S"))
    document_b = create_infringement_notice_pdf(pdf_file_name_b,
                                                sanction_outcome)
    attachments = []
    if workflow_entry:
        attachments = prepare_attachments(workflow_entry.documents)
    attachments.append(
        (pdf_file_name_b, document_b._file.read(), 'application/pdf'))
    # doc = workflow_entry.documents.create(name=document_b.name)
    # doc._file = document_b._file
    # doc.save()
    return attachments
Example #8
0
def send_mail(select_group, offence, workflow_entry, request=None):
    email = OffenceIssueNotificationEmail()
    if request.data.get('email_subject'):
        email.subject = request.data.get('email_subject')
    url = request.build_absolute_uri(
        reverse('internal-offence-detail', kwargs={'offence_id': offence.id}))
    context = {
        'url': url,
        'offence': offence,
        'workflow_entry_details': request.data.get('details'),
    }
    email_group = [item.email for item in select_group]
    msg = email.send(email_group,
                     context=context,
                     attachments=prepare_attachments(workflow_entry.documents))
    sender = request.user if request else settings.DEFAULT_FROM_EMAIL
    email_data = _extract_email_headers(msg, sender=sender)
    return email_data
Example #9
0
def send_letter_of_advice(to_address,
                          sanction_outcome,
                          workflow_entry,
                          request,
                          cc=None,
                          bcc=None):
    email = LetterOfAdviceEmail()
    if request.data.get('email_subject'):
        email.subject = request.data.get('email_subject')
    url = request.build_absolute_uri(reverse('external'))
    context = {
        'url': url,
        'sanction_outcome': sanction_outcome,
        'workflow_entry_details': request.data.get('details'),
    }

    pdf_file_name = 'letter_of_advice_{}_{}.pdf'.format(
        sanction_outcome.lodgement_number,
        datetime.datetime.now().strftime("%Y%m%d%H%M%S"))
    document = create_letter_of_advice_pdf_bytes(pdf_file_name,
                                                 sanction_outcome)

    # Attach files (files from the modal, and the PDF file generated above)
    attachments = prepare_attachments(workflow_entry.documents)
    attachments.append(
        (pdf_file_name, document._file.read(), 'application/pdf'))

    # Attach the pdf file created above to the communication log entry
    doc = workflow_entry.documents.create(name=document.name)
    doc._file = document._file
    doc.save()

    msg = email.send(
        to_address,
        context=context,
        attachments=attachments,
        cc=cc,
        bcc=bcc,
    )
    sender = request.user if request else settings.DEFAULT_FROM_EMAIL
    email_data = _extract_email_headers(msg, sender=sender)
    return email_data
Example #10
0
def send_mail(select_group, legal_case, workflow_entry, request):
    email = LegalCaseForwardNotificationEmail()
    if request.data.get('email_subject'):
        email.subject = request.data.get('email_subject')
    url = request.build_absolute_uri(
        reverse('internal-legal-case-detail',
                kwargs={'legal_case_id': legal_case.id}))
    context = {
        'url': url,
        'legal_case': legal_case,
        'workflow_entry_details': request.data.get('details'),
    }
    email_group = [item.email for item in select_group]
    attachments = prepare_attachments(workflow_entry.documents)
    msg = email.send(
        email_group,
        context=context,
        attachments=attachments,
    )
    sender = request.user if request else settings.DEFAULT_FROM_EMAIL
    email_data = _extract_email_headers(msg, sender=sender)
    return email_data
Example #11
0
def create_infringement_notice_ybw(sanction_outcome, workflow_entry):
    pdf_file_name_y = 'infringement_notice_y_{}_{}.pdf'.format(
        sanction_outcome.lodgement_number,
        datetime.datetime.now().strftime("%Y%m%d%H%M%S"))
    pdf_file_name_b = 'infringement_notice_b_{}_{}.pdf'.format(
        sanction_outcome.lodgement_number,
        datetime.datetime.now().strftime("%Y%m%d%H%M%S"))
    pdf_file_name_w = 'infringement_notice_w_{}_{}.pdf'.format(
        sanction_outcome.lodgement_number,
        datetime.datetime.now().strftime("%Y%m%d%H%M%S"))
    # document = create_prosecution_notice_pdf_bytes(pdf_file_name, sanction_outcome)
    # document = create_court_hearing_notice_pdf_bytes(pdf_file_name, sanction_outcome)
    document_y = create_infringement_notice_yellow(pdf_file_name_y,
                                                   sanction_outcome)
    document_b = create_infringement_notice_blue(pdf_file_name_b,
                                                 sanction_outcome)
    document_w = create_infringement_notice_white(pdf_file_name_w,
                                                  sanction_outcome)
    # Attach files (files from the modal, and the PDF file generated above)
    attachments = prepare_attachments(workflow_entry.documents)
    mime = mimetypes.guess_type(document_y._file.path)[0]
    attachments.append((pdf_file_name_y, document_y._file.read(), mime))
    attachments.append(
        (pdf_file_name_b, document_b._file.read(), 'application/pdf'))
    attachments.append(
        (pdf_file_name_w, document_w._file.read(), 'application/pdf'))
    # Attach the pdf file created above to the communication log entry
    doc = workflow_entry.documents.create(name=document_y.name)
    doc._file = document_y._file
    doc.save()
    doc = workflow_entry.documents.create(name=document_b.name)
    doc._file = document_b._file
    doc.save()
    doc = workflow_entry.documents.create(name=document_w.name)
    doc._file = document_w._file
    doc.save()
    return attachments