|
|
|
|
@ -1,23 +1,44 @@ |
|
|
|
|
# -*- coding: utf-8 -*- |
|
|
|
|
from datetime import timedelta |
|
|
|
|
|
|
|
|
|
from django.conf import settings |
|
|
|
|
from django.core.mail import EmailMessage |
|
|
|
|
from django.template.loader import render_to_string |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def check_one_profile(profile, License, now): |
|
|
|
|
SUPPORT_EMAIL = getattr(settings, 'SUPPORT_EMAIL', '') |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def check_one_profile(profile, License, now, manual=False): |
|
|
|
|
profile_is_active = profile.active |
|
|
|
|
licenses = License.objects.filter(user=profile.user, date_from__lte=now, date_to__gte=now, status__in=[-1, 1, 2], deleted=False) |
|
|
|
|
licenses.filter(status=1).update(status=2) |
|
|
|
|
|
|
|
|
|
if licenses: |
|
|
|
|
profile.active = True |
|
|
|
|
else: |
|
|
|
|
profile.active = False |
|
|
|
|
profile.save() |
|
|
|
|
licenses.filter(status=1).update(status=2) |
|
|
|
|
|
|
|
|
|
licenses = License.objects.filter(user=profile.user, date_to__lt=now, status=2, deleted=False) |
|
|
|
|
licenses.update(status=3) |
|
|
|
|
if profile.active and not profile_is_active: |
|
|
|
|
template_name = 'myauth/license_activated.txt' |
|
|
|
|
subject = u'Документор: Профиль активирован' |
|
|
|
|
dict_context = {'user_email': licenses[0].user, |
|
|
|
|
'support_email': SUPPORT_EMAIL, |
|
|
|
|
'license_starts': licenses[0].date_from, |
|
|
|
|
'license_ends': licenses[0].date_to, |
|
|
|
|
} |
|
|
|
|
email_body = render_to_string(template_name, dict_context) |
|
|
|
|
email = EmailMessage(subject=subject, to=(licenses[0].user.email,), body=email_body) |
|
|
|
|
email.send() |
|
|
|
|
|
|
|
|
|
licenses_remain = License.objects.filter(user=profile.user, date_from__gt=now + timedelta(1), status=1, deleted=False) |
|
|
|
|
licenses_to_pay = License.objects.filter(user=profile.user, status=0, deleted=False) |
|
|
|
|
|
|
|
|
|
if not licenses_remain and not manual: |
|
|
|
|
licenses = License.objects.filter(user=profile.user, date_to__lt=now, status__in=[-1, 2], deleted=False) |
|
|
|
|
licenses.update(status=3) |
|
|
|
|
|
|
|
|
|
if licenses: |
|
|
|
|
template_name = 'myauth/license_ended.txt' |
|
|
|
|
subject = u'Документор: срок действия лицензии окончен' |
|
|
|
|
@ -31,10 +52,8 @@ def check_one_profile(profile, License, now): |
|
|
|
|
email.send() |
|
|
|
|
|
|
|
|
|
licenses = License.objects.filter(user=profile.user, date_to=now + timedelta(1), status__in=[-1, 2], deleted=False) |
|
|
|
|
licenses_remain = License.objects.filter(user=profile.user, date_from__gt=now + timedelta(1), status=1, deleted=False) |
|
|
|
|
licenses_to_pay = License.objects.filter(user=profile.user, status=0, deleted=False) |
|
|
|
|
|
|
|
|
|
if licenses and not licenses_remain: |
|
|
|
|
if licenses: |
|
|
|
|
template_name = 'myauth/license_ends.txt' |
|
|
|
|
subject = u'Документор: окончание срока действия лицензии' |
|
|
|
|
dict_context = {'user_email': licenses[0].user, |
|
|
|
|
@ -46,4 +65,17 @@ def check_one_profile(profile, License, now): |
|
|
|
|
email = EmailMessage(subject=subject, to=(licenses[0].user.email,), body=email_body) |
|
|
|
|
email.send() |
|
|
|
|
|
|
|
|
|
if not manual: |
|
|
|
|
|
|
|
|
|
licenses = License.objects.filter(user=profile.user, order_date=now - timedelta(9), status=0, deleted=False) |
|
|
|
|
|
|
|
|
|
if licenses: |
|
|
|
|
template_name = 'myauth/license_to_pay.txt' |
|
|
|
|
subject = u'Документор: есть неоплаченные счета' |
|
|
|
|
dict_context = {'user_email': licenses[0].user, |
|
|
|
|
'support_email': SUPPORT_EMAIL, |
|
|
|
|
} |
|
|
|
|
email_body = render_to_string(template_name, dict_context) |
|
|
|
|
email = EmailMessage(subject=subject, to=(licenses[0].user.email,), body=email_body) |
|
|
|
|
email.send() |
|
|
|
|
|
|
|
|
|
|