コード例 #1
0
ファイル: views.py プロジェクト: panuta/openreader
def remove_organization(request, organization_slug):
    organization = get_object_or_404(Organization, slug=organization_slug)

    if not UserOrganization.objects.filter(organization=organization, user=request.user, is_admin=True).exists():
        raise Http404

    if organization.contract_type != Organization.MONTHLY_CONTRACT:
        raise Http404

    if request.method == 'POST':
        domain_functions.remove_organization(organization)
        return redirect('view_user_home')

    return render(request, 'organization/organization_remove.html', {
        'organization': organization,
    })
コード例 #2
0
ファイル: tasks.py プロジェクト: panuta/openreader
def send_notification_email_to_pay_service():
    from domain.models import Organization, UserOrganization
    organizations = Organization.objects.all()

    for organization in organizations:
        invoice = organization.get_latest_invoice()

        if settings.TEST_PAYMENT_REMIND_EVERY_HOUR:
            diff_date_days = (24 + datetime.datetime.now().hour - invoice.attempt) % 24
        else:
            diff_date_days = (datetime.date.today() - invoice.end_date).days
        if diff_date_days in [1, 4, 7, 10, 13, 16]:
            html_email_body = render_to_string('organization/emails/notify_payment.html', {
                'organization': organization,
                'settings': settings,
                'invoice': invoice,
            })
            text_email_body = strip_tags(html_email_body)
            subject = 'Invoice for %s on Openreader from %s to %s' % (organization.name, format_abbr_date(invoice.start_date), format_abbr_date(invoice.end_date))
            send_to_emails = list(UserOrganization.objects.filter(organization=organization, is_admin=True).values_list('user__email', flat=True))

            if organization.email not in send_to_emails:
                send_to_emails.append(organization.email)

            msg = EmailMultiAlternatives(
                subject,
                text_email_body,
                settings.EMAIL_ADDRESS_NO_REPLY,
                send_to_emails
            )
            msg.attach_alternative(html_email_body, "text/html")

            try:
                msg.send()
                print True
            except:
                import sys
                print sys.exc_info()
        elif diff_date_days == 17:
            from domain import functions as domain_functions
            domain_functions.remove_organization(organization)