예제 #1
0
def send_confirmation_published_email_to_author(tender: Tender,
                                                nb_matched_siaes: int):
    """Send email to the author when the tender is published to the siaes

    Args:
        tender (Tender): Tender published
        nb_matched (int): number of siaes match
    """
    email_subject = f"{EMAIL_SUBJECT_PREFIX}Votre {tender.get_kind_display().lower()} a été publié !"
    recipient_list = whitelist_recipient_list([tender.author.email])
    if recipient_list:
        variables = {
            "TENDER_TITLE": tender.title,
            "TENDER_KIND": tender.get_kind_display(),
            "TENDER_NB_MATCH": nb_matched_siaes,
            "TENDER_URL": get_share_url_object(tender),
        }

        api_mailjet.send_transactional_email_many_recipient_with_template(
            template_id=settings.
            MAILJET_TENDERS_AUTHOR_CONFIRMATION_PUBLISHED_TEMPLATE_ID,
            subject=email_subject,
            recipient_email_list=recipient_list,
            variables=variables,
        )
예제 #2
0
def send_siae_user_request_reminder_3_days_email_to_initiator(
        siae_user_request):
    email_subject = EMAIL_SUBJECT_PREFIX + "Rattachement sans réponse"
    recipient_list = whitelist_recipient_list(
        [siae_user_request.initiator.email])
    recipient_email = recipient_list[0] if recipient_list else ""
    recipient_name = siae_user_request.initiator.full_name

    variables = {
        "ASSIGNEE_FULL_NAME": siae_user_request.assignee.full_name,
        "INITIATOR_FULL_NAME": siae_user_request.initiator.full_name,
        "SIAE_NAME": siae_user_request.siae.name_display,
    }

    api_mailjet.send_transactional_email_with_template(
        template_id=settings.
        MAILJET_SIAEUSERREQUEST_REMINDER_1_INITIATOR_TEMPLATE_ID,
        subject=email_subject,
        recipient_email=recipient_email,
        recipient_name=recipient_name,
        variables=variables,
    )

    # log email
    log_item = {
        "action": "email_sent",
        "email_to": recipient_email,
        "email_subject": email_subject,
        # "email_body": email_body,
        "email_timestamp": timezone.now().isoformat(),
    }
    siae_user_request.logs.append(log_item)
    siae_user_request.save()
예제 #3
0
def send_contact_form_receipt(contact_form_dict):
    email_subject = EMAIL_SUBJECT_PREFIX + "Suite à votre demande sur le Marché de l'inclusion"
    email_body = render_to_string("pages/contact_form_receipt_email_body.txt",
                                  {"form_dict": contact_form_dict})

    send_mail(
        subject=email_subject,
        message=email_body,
        from_email=settings.DEFAULT_FROM_EMAIL,
        recipient_list=whitelist_recipient_list([contact_form_dict["email"]]),
        fail_silently=False,
    )
예제 #4
0
def send_siae_user_request_response_email_to_initiator(siae_user_request,
                                                       response=None):
    """
    Send request response (True or False) to the initial user
    """
    email_subject_text = "Accéder à votre structure" if response else "Rattachement refusé"
    email_subject = EMAIL_SUBJECT_PREFIX + email_subject_text
    email_template_id = (
        settings.
        MAILJET_SIAEUSERREQUEST_INITIATOR_RESPONSE_POSITIVE_TEMPLATE_ID
        if response else settings.
        MAILJET_SIAEUSERREQUEST_INITIATOR_RESPONSE_NEGATIVE_TEMPLATE_ID)
    recipient_list = whitelist_recipient_list(
        [siae_user_request.initiator.email])
    recipient_email = recipient_list[0] if recipient_list else ""
    recipient_name = siae_user_request.initiator.full_name

    variables = {
        "ASSIGNEE_FULL_NAME":
        siae_user_request.assignee.full_name,
        "INITIATOR_FULL_NAME":
        siae_user_request.initiator.full_name,
        "SIAE_NAME":
        siae_user_request.siae.name_display,
        "DASHBOARD_URL":
        f"https://{get_domain_url()}{reverse_lazy('dashboard:home')}",
    }

    api_mailjet.send_transactional_email_with_template(
        template_id=email_template_id,
        subject=email_subject,
        recipient_email=recipient_email,
        recipient_name=recipient_name,
        variables=variables,
    )

    # log email
    log_item = {
        "action": "email_sent",
        "email_to": recipient_email,
        "email_subject": email_subject,
        # "email_body": email_body,
        "email_timestamp": timezone.now().isoformat(),
    }
    siae_user_request.logs.append(log_item)
    siae_user_request.save()
예제 #5
0
def send_tender_email_to_partner(tender: Tender, partner: PartnerShareTender):
    email_subject = f"{EMAIL_SUBJECT_PREFIX}{tender.author.company_name} recherchent des structures inclusives"
    recipient_list = whitelist_recipient_list(partner.contact_email_list)
    if recipient_list:
        variables = {
            "TENDER_AUTHOR_COMPANY": tender.author.company_name,
            "TENDER_SECTORS": tender.get_sectors_names,
            "TENDER_PERIMETERS": tender.get_perimeters_names,
            "TENDER_URL": get_share_url_object(tender),
        }

        api_mailjet.send_transactional_email_many_recipient_with_template(
            template_id=settings.
            MAILJET_TENDERS_PRESENTATION_TEMPLATE_PARTNERS_ID,
            subject=email_subject,
            recipient_email_list=recipient_list,
            variables=variables,
        )
예제 #6
0
def send_siae_interested_email_to_author(tender: Tender):
    """
    The author is notified (by intervals) when new Siaes show interest (contact_click_date set)
    Intervals:
    - first Siae
    - every 5 Siae
    """
    tender_siae_contact_click_count = TenderSiae.objects.filter(
        tender=tender, contact_click_date__isnull=False).count()

    if (tender_siae_contact_click_count >
            0) and (tender_siae_contact_click_count < 50):
        if (tender_siae_contact_click_count
                == 1) or (tender_siae_contact_click_count % 5 == 0):
            if tender_siae_contact_click_count == 1:
                email_subject = EMAIL_SUBJECT_PREFIX + "Une première structure intéressée !"
                template_id = settings.MAILJET_TENDERS_SIAE_INTERESTED_1_TEMPLATE_ID
            else:
                email_subject = EMAIL_SUBJECT_PREFIX + "5 nouvelles structures intéressées !"
                template_id = settings.MAILJET_TENDERS_SIAE_INTERESTED_5_TEMPLATE_ID
            recipient_list = whitelist_recipient_list(
                [tender.author.email])  # tender.contact_email ?
            if recipient_list:
                recipient_email = recipient_list[0] if recipient_list else ""
                recipient_name = tender.author.full_name

                variables = {
                    "TENDER_AUTHOR_FIRST_NAME":
                    tender.author.first_name,
                    "TENDER_TITLE":
                    tender.title,
                    "TENDER_SIAE_INTERESTED_LIST_URL":
                    f"{get_share_url_object(tender)}/structures-interessees",  # noqa
                }

                api_mailjet.send_transactional_email_with_template(
                    template_id=template_id,
                    subject=email_subject,
                    recipient_email=recipient_email,
                    recipient_name=recipient_name,
                    variables=variables,
                )
예제 #7
0
def send_siae_user_request_email_to_assignee(siae_user_request):
    """
    Send request to the assignee
    """
    email_subject = EMAIL_SUBJECT_PREFIX + "Nouveau collaborateur"
    recipient_list = whitelist_recipient_list(
        [siae_user_request.assignee.email])
    recipient_email = recipient_list[0] if recipient_list else ""
    recipient_name = siae_user_request.assignee.full_name

    variables = {
        "ASSIGNEE_FULL_NAME":
        siae_user_request.assignee.full_name,
        "INITIATOR_FULL_NAME":
        siae_user_request.initiator.full_name,
        "SIAE_NAME":
        siae_user_request.siae.name_display,
        "SIAE_USERS_URL":
        f"https://{get_domain_url()}{reverse_lazy('dashboard:siae_users', args=[siae_user_request.siae.slug])}",  # noqa
    }

    api_mailjet.send_transactional_email_with_template(
        template_id=settings.MAILJET_SIAEUSERREQUEST_ASSIGNEE_TEMPLATE_ID,
        subject=email_subject,
        recipient_email=recipient_email,
        recipient_name=recipient_name,
        variables=variables,
    )

    # log email
    log_item = {
        "action": "email_sent",
        "email_to": recipient_email,
        "email_subject": email_subject,
        # "email_body": email_body,
        "email_timestamp": timezone.now().isoformat(),
    }
    siae_user_request.logs.append(log_item)
    siae_user_request.save()
예제 #8
0
def send_tender_email_to_siae(tender: Tender, siae: Siae):
    email_subject = f"{EMAIL_SUBJECT_PREFIX}{tender.author.company_name} a besoin de vous sur le marché de l'inclusion"
    recipient_list = whitelist_recipient_list([siae.contact_email])
    if recipient_list:
        recipient_email = recipient_list[0] if recipient_list else ""
        recipient_name = siae.contact_full_name

        variables = {
            "SIAE_CONTACT_FIRST_NAME": siae.contact_first_name,
            "TENDER_AUTHOR_COMPANY": tender.author.company_name,
            "TENDER_KIND": tender.get_kind_display(),
            "TENDER_SECTORS": tender.get_sectors_names,
            "TENDER_PERIMETERS": tender.get_perimeters_names,
            "TENDER_URL": get_share_url_object(tender),
        }

        api_mailjet.send_transactional_email_with_template(
            template_id=settings.MAILJET_TENDERS_PRESENTATION_TEMPLATE_ID,
            subject=email_subject,
            recipient_email=recipient_email,
            recipient_name=recipient_name,
            variables=variables,
        )
예제 #9
0
 def should_filter_out_non_betagouv_emails_when_not_in_prod(self):
     email_list = ["*****@*****.**", "*****@*****.**"]
     email_list_filtered = whitelist_recipient_list(email_list)
     self.assertTrue("*****@*****.**" in email_list_filtered)
     self.assertTrue("*****@*****.**" not in email_list_filtered)