예제 #1
0
def project_non_payment(project: 'Project'):  # 9
    from payment_system.models import Subscription
    default_subscription = Subscription.get_default_subscription()
    owner = project.owner
    with translation.override(owner.language):
        owner.notify(
            message=
            _("Due to non-payment of the project %(project)s, "
              "it has been transferred to the free subscription without the possibility of its change. "
              "To resume work with previous conditions, please connect our support."
              ) % {'project': project.name},
            link=project.frontend_link,
        )
        send_template_mail(
            to=[owner.email],
            subject=
            _('Your project has been transferred to a free subscription due to non-payment'
              ),
            template='payment_system/emails/project_non_payment.html',
            context={
                'user': owner,
                'project': project,
                'default_subscription': default_subscription,
            },
        )
예제 #2
0
def new_invitation(invitation: 'Invitation'):  # 2
    invited_email = invitation.email
    project = invitation.project
    user = DataOceanUser.objects.filter(email=invited_email).first()
    if user:
        user.notify(
            message=_(
                'The user {owner} has invited you to the project "{project}"').
            format(
                owner=project.owner.get_full_name(),
                project=project.name,
            ),
            link=project.frontend_projects_link,
        )
    frontend_link = settings.FRONTEND_SITE_URL
    if user:
        lang = user.language
    else:
        lang = project.owner.language
    with translation.override(lang):
        send_template_mail(
            to=[invited_email],
            subject=_('You have been invited to a new project'),
            template='payment_system/emails/new_invitation.html',
            context={
                'project': project,
                'is_user_exists': bool(user),
                'frontend_link': frontend_link,
            },
        )
예제 #3
0
def send_question_received_message(question):
    send_template_mail(to=[settings.SUPPORT_EMAIL],
                       subject='Нове запитання від користувача отримано',
                       template='users/emails/question_received.html',
                       context={
                           'question': question,
                       })
예제 #4
0
def new_invoice(invoice: 'Invoice', project: 'Project'):  # 7
    owner = project.owner
    with translation.override(owner.language):
        owner.notify(
            message=_('According to the terms of your subscription '
                      'today you need to pay for the project %(project)s') %
            {'project': project.name},
            link=f'{settings.BACKEND_SITE_URL}{invoice.link}')
        pdf = invoice.get_pdf()
        send_template_mail(
            to=[owner.email],
            subject=_('Invoice for payment'),
            template='payment_system/emails/new_invoice.html',
            context={
                'user': owner,
                'project': project,
            },
            attachments=[
                (
                    pdf.name,
                    pdf.read(),
                    'application/pdf',
                ),
            ],
        )
예제 #5
0
def send_new_company_type_message(company_type: CompanyType):
    send_template_mail(
        to=settings.DEVELOPER_EMAILS,
        subject='Новий тип компанії додано',
        template='business_register/emails/new_company_type.html',
        context={
            'company_type': company_type,
        })
예제 #6
0
def send_reset_password_message(user: '******', confirm_link):
    send_template_mail(to=[user.email],
                       subject=_('Password reset'),
                       template='users/emails/reset_password.html',
                       context={
                           'user': user,
                           'confirm_link': confirm_link
                       })
예제 #7
0
def send_confirm_email_message(user: '******', confirm_link: str):
    send_template_mail(to=[user.email],
                       subject=_('Confirmation of registration in Data Ocean'),
                       template='users/emails/confirm_email.html',
                       context={
                           'user': user,
                           'confirm_link': confirm_link
                       })
예제 #8
0
def send_project_token_message(user: DataOceanUser, link):
    send_template_mail(to=[user.email],
                       subject='Доступ до токена',
                       template='payment_system/emails/project_token.html',
                       context={
                           'user': user,
                           'link': link
                       })
예제 #9
0
def send_registration_confirmed_message(user: '******',
                                        default_project: 'Project'):
    send_template_mail(to=[user.email],
                       subject=_('Welcome to Data Ocean!'),
                       template='users/emails/registration_confirmed.html',
                       context={
                           'user': user,
                           'default_project': default_project,
                       })
예제 #10
0
def send_export_url_file_path_message(user: DataOceanUser, link: str):
    send_template_mail(
        to=[user.email],
        subject=_('Generation of .xlsx export file completed'),
        template='data_ocean/emails/export_to_xlsx_completed.html',
        context={
            'user': user,
            'link': link
        })
예제 #11
0
def send_invited_member_message(user: DataOceanUser, project: Project,
                                member: DataOceanUser):
    send_template_mail(to=[user.email],
                       subject='Ви додали нового користувача до проєкту',
                       template='payment_system/emails/invited_member.html',
                       context={
                           'user': user,
                           'project': project,
                           'member': member
                       })
예제 #12
0
def send_new_invoice_message(user: DataOceanUser, invoice: Invoice,
                             invoice_link: str):
    send_template_mail(to=[user.email],
                       subject='Новий рахунок',
                       template='payment_system/emails/new_invoice.html',
                       context={
                           'user': user,
                           'invoice': invoice,
                           'invoice_link': invoice_link,
                       })
예제 #13
0
def send_removed_member_message(user: DataOceanUser, member: DataOceanUser,
                                project: Project):
    send_template_mail(to=[user.email],
                       subject='Ви видалили користувача з проєкту',
                       template='payment_system/emails/removed_member.html',
                       context={
                           'user': user,
                           'member': member,
                           'project': project
                       })
예제 #14
0
def send_membership_removed_message(user: DataOceanUser, owner: DataOceanUser,
                                    project: Project):
    send_template_mail(
        to=[user.email],
        subject='Вас видалили із проєкту',
        template='payment_system/emails/membership_removed.html',
        context={
            'user': user,
            'owner': owner,
            'project': project
        })
예제 #15
0
def send_membership_confirmed_message(user: DataOceanUser,
                                      member: DataOceanUser):
    send_template_mail(
        to=[user.email],
        subject=
        'Користувач, якого Ви додали до проєкту, підтвердив ваше запрошення',
        template='payment_system/emails/membership_confirmed.html',
        context={
            'user': user,
            'member': member,
        })
예제 #16
0
def new_custom_sub_request(
        custom_subscription_request: 'CustomSubscriptionRequest'):
    send_template_mail(
        to=[settings.SUPPORT_EMAIL],
        subject=
        f'Запит на тарифний план Custom від {custom_subscription_request.full_name}',
        template='payment_system/emails/new_custom_sub_request.html',
        context={
            'csr': custom_subscription_request,
        },
    )
예제 #17
0
def send_confirm_membership_message(user: DataOceanUser, owner: DataOceanUser,
                                    project: Project, confirm_link):
    send_template_mail(
        to=[user.email],
        subject='Вас запросили до нового проєкту',
        template='payment_system/emails/confirm_membership.html',
        context={
            'user': user,
            'owner': owner,
            'project_name': project,
            'confirm_link': confirm_link
        })
예제 #18
0
def member_removed(user: '******', project: 'Project'):  # 4
    with translation.override(user.language):
        user.notify(message=gettext('You have been removed from the project') +
                    f' "{project.name}"')
        send_template_mail(
            to=[user.email],
            subject=_('You were expelled from the project'),
            template='payment_system/emails/member_removed.html',
            context={
                'user': user,
                'project': project,
            },
        )
예제 #19
0
def send_reports_mail():
    reports = Report.collect_last_day_reports()
    not_updated_registers = Register.objects.exclude(
        name_in_daily_report__in=[report.registry_name
                                  for report in reports]).exclude(
                                      name_in_daily_report='')
    send_template_mail(
        to=settings.REPORT_EMAILS,
        subject='Звіт про оновлення реєстрів за останні 24 години',
        template='data_ocean/emails/report.html',
        context={
            'reports': reports,
            'not_updated_registers': not_updated_registers
        })
예제 #20
0
def send_new_subscription_message(
    user: DataOceanUser,
    project_subscription: ProjectSubscription,
    subscription_link,
):
    send_template_mail(to=[user.email],
                       subject='Ви підписалися на новий пакет послуг',
                       template='payment_system/emails/new_subscription.html',
                       context={
                           'user': user,
                           'subscription_link': subscription_link,
                           'project_subscription': project_subscription,
                           'FUTURE': ProjectSubscription.FUTURE,
                       })
예제 #21
0
def membership_confirmed(user: '******', member: DataOceanUser):  # 3
    with translation.override(user.language):
        user.notify(message=f'{member.get_full_name()} ' +
                    gettext('confirm your invitation'))
        send_template_mail(
            to=[user.email],
            subject=_(
                'The user you added to the project will confirm your invitation'
            ),
            template='payment_system/emails/membership_confirmed.html',
            context={
                'user': user,
                'member': member,
            },
        )
예제 #22
0
def new_subscription(project_subscription: 'ProjectSubscription'):  # 1
    owner = project_subscription.project.owner
    with translation.override(owner.language):
        owner.notify(
            message=gettext('You have subscribed to the subscription') +
            f' "{project_subscription.subscription.name}"')
        send_template_mail(
            to=[owner.email],
            subject=_('You have subscribed to a new subscription'),
            template='payment_system/emails/new_subscription.html',
            context={
                'user': owner,
                'project_subscription': project_subscription,
            },
        )
예제 #23
0
def member_activated(user: '******', project: 'Project'):  # 5
    with translation.override(user.language):
        user.notify(
            message=gettext("You have been restored an access to the project")
            + f' "{project.name}"',
            link=project.frontend_link,
        )
        send_template_mail(
            to=[user.email],
            subject=_('Access to the project is restored'),
            template='payment_system/emails/member_activated.html',
            context={
                'user': user,
                'project': project,
            },
        )
예제 #24
0
def create_report(invoices: dict):
    send_template_mail(
        to=[settings.SUPPORT_EMAIL],
        subject=f'Підсумок оплати інвойсів за {timezone.localdate()}',
        template='payment_system/emails/daily_report.html',
        context={
            'should_complete_invoices':
            invoices['should_complete'],
            'was_overdue_invoices':
            invoices['was_overdue'],
            'was_overdue_grace_period_invoices':
            invoices['was_overdue_grace_period'],
            'was_complete_invoices':
            invoices['was_complete'],
        },
    )
예제 #25
0
def payment_confirmed(project_subscription: 'ProjectSubscription'):  # 10
    owner = project_subscription.project.owner
    with translation.override(owner.language):
        owner.notify(
            message=gettext('We confirm payment for the project') +
            f' "{project_subscription.project.name}"',
            link=
            f'{settings.BACKEND_SITE_URL}{project_subscription.latest_invoice.link}'
        )
        send_template_mail(
            to=[owner.email],
            subject=_('Payment confirmed'),
            template='payment_system/emails/payment_confirmed.html',
            context={
                'user': owner,
                'project': project_subscription.project,
                'subscription': project_subscription.subscription,
            },
        )
예제 #26
0
def tomorrow_payment_day(project_subscription: 'ProjectSubscription'):  # 8
    owner = project_subscription.project.owner
    invoice = project_subscription.latest_invoice
    if not invoice or invoice.is_paid:
        return
    pdf = invoice.get_pdf()
    with translation.override(owner.language):
        send_template_mail(
            to=[owner.email],
            subject=_('You have not paid the bill'),
            template='payment_system/emails/tomorrow_payment_day.html',
            context={
                'user': owner,
                'project': project_subscription.project,
            },
            attachments=[
                (
                    pdf.name,
                    pdf.read(),
                    'application/pdf',
                ),
            ],
        )
예제 #27
0
def token_has_been_changed(project: 'Project'):  # 6
    from payment_system.models import UserProject
    users = project.users.exclude(
        user_projects__role=UserProject.OWNER, ).exclude(
            user_projects__status=UserProject.DEACTIVATED, )

    for user in users:
        with translation.override(user.language):
            user.notify(
                message=
                _('Note that the token in the project {project} has been changed'
                  ).format(project=project.name, ),
                link=project.frontend_link,
            )

    send_template_mail(
        to=[user.email for user in users],
        subject=_('Token access has been changed in the project'),
        template='payment_system/emails/token_has_been_changed.html',
        context={
            'project': project,
        },
    )
예제 #28
0
def send_reports_mail():
    send_template_mail(
        to=settings.REPORT_EMAILS,
        subject='Звіт про оновлення реєстрів за останні 24 години',
        template='data_ocean/emails/report.html',
        context={'reports': Report.collect_last_day_reports()})