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, })
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)