freezed status, some admin look, celery task for email

remotes/origin/yandex
Bachurin Sergey 12 years ago
parent 55f0f92b4f
commit 23c2d0c40a
  1. 2
      project/customer/admin.py
  2. 3
      project/customer/consts.py
  3. 4
      project/customer/tasks.py
  4. 4
      project/myauth/emails.py
  5. 1
      project/myauth/tasks.py
  6. 8
      project/myauth/views.py
  7. 4
      project/templates/customer/profile/license_list.html

@ -14,6 +14,8 @@ class LicenseAdmin(admin.ModelAdmin):
list_display = ('get_email', 'term', 'status', 'order_date', 'date_from', 'date_to') list_display = ('get_email', 'term', 'status', 'order_date', 'date_from', 'date_to')
list_display_links = list_display list_display_links = list_display
search_fields = ('user__email', )
list_filter = ('status', 'term', 'order_date', 'date_from', 'date_to')
#TODO прописать fieldsets #TODO прописать fieldsets
# fieldsets = [ # fieldsets = [

@ -13,7 +13,8 @@ LICENSE_STATUSES = (
(0, u'Не оплачен'), (0, u'Не оплачен'),
(1, u'Оплачен'), (1, u'Оплачен'),
(2, u'Активирован'), (2, u'Активирован'),
(3, u'Заморожен'), (3, u'Срок действия истёк'),
(4, u'Заморожен'),
) )
PAYFORMS = ( PAYFORMS = (

@ -1,6 +1,6 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
from __future__ import absolute_import from __future__ import absolute_import
from datetime import datetime from datetime import datetime, timedelta
from celery import shared_task from celery import shared_task
from .models import License, UserProfile from .models import License, UserProfile
@ -22,6 +22,8 @@ def check_license():
licenses = License.objects.filter(user=profile.user, date_to__lt=now, status__in=[-1, 2]) licenses = License.objects.filter(user=profile.user, date_to__lt=now, status__in=[-1, 2])
licenses.update(status=3) licenses.update(status=3)
licenses = License.objects.filter(user=profile.user, order_date__lt=now - timedelta(10), status=0)
licenses.update(status=4)
return None return None

@ -2,11 +2,13 @@
from django.template.loader import render_to_string from django.template.loader import render_to_string
from django.core.mail import EmailMessage from django.core.mail import EmailMessage
from django.conf import settings from django.conf import settings
from celery.decorators import task
SUPPORT_EMAIL = getattr(settings, 'SUPPORT_EMAIL', '') SUPPORT_EMAIL = getattr(settings, 'SUPPORT_EMAIL', '')
@task
def send_registration_email(user_email, confirm_url): def send_registration_email(user_email, confirm_url):
"""Отправить письмо о регистрации нового пользователя.""" """Отправить письмо о регистрации нового пользователя."""
template_name = 'myauth/registration_email.txt' template_name = 'myauth/registration_email.txt'
@ -17,6 +19,7 @@ def send_registration_email(user_email, confirm_url):
return email.send() return email.send()
@task
def send_reset_password_email(user_email, confirm_url): def send_reset_password_email(user_email, confirm_url):
"""Отправить письмо с ключём для восстановления пароля.""" """Отправить письмо с ключём для восстановления пароля."""
template_name = 'myauth/reset_key_email.txt' template_name = 'myauth/reset_key_email.txt'
@ -27,6 +30,7 @@ def send_reset_password_email(user_email, confirm_url):
return email.send() return email.send()
@task
def send_new_password_email(user_email, new_password): def send_new_password_email(user_email, new_password):
"""Отправить письмо с новым паролем.""" """Отправить письмо с новым паролем."""
template_name = 'myauth/reset_new_password_email.txt' template_name = 'myauth/reset_new_password_email.txt'

@ -0,0 +1 @@
from emails import send_reset_password_email, send_registration_email, send_new_password_email

@ -16,7 +16,7 @@ from django.conf import settings
from project.customer.models import UserProfile, UserProfileFilters, License from project.customer.models import UserProfile, UserProfileFilters, License
from . import forms, models, emails from . import forms, models, emails
REGISTRATION_OPEN = getattr(settings, 'REGISTRATION_OPEN', True) REGISTRATION_OPEN = getattr(settings, 'REGISTRATION_OPEN', True)
@ -73,7 +73,7 @@ def register(request):
if form.is_valid(): if form.is_valid():
new_user = _create_user(request, **form.cleaned_data) new_user = _create_user(request, **form.cleaned_data)
confirm_url = reverse('myauth_confirm_email', args=[new_user.username,]) confirm_url = reverse('myauth_confirm_email', args=[new_user.username,])
emails.send_registration_email(new_user.email, confirm_url) emails.send_registration_email.delay(new_user.email, confirm_url)
messages.add_message(request, messages.INFO, success_msg) messages.add_message(request, messages.INFO, success_msg)
return redirect(success_url) return redirect(success_url)
else: else:
@ -123,7 +123,7 @@ def reset(request):
user = form.get_user() user = form.get_user()
key = models.ResetKey.objects.create_key(user) key = models.ResetKey.objects.create_key(user)
confirm_url = reverse('myauth_confirm_reset', args=[key.key,]) confirm_url = reverse('myauth_confirm_reset', args=[key.key,])
emails.send_reset_password_email(user.email, confirm_url) emails.send_reset_password_email.delay(user.email, confirm_url)
return redirect(success_url) return redirect(success_url)
else: else:
form = form_class(prefix=form_prefix) form = form_class(prefix=form_prefix)
@ -143,7 +143,7 @@ def confirm_reset(request, key):
new_password = User.objects.make_random_password() # новый пароль new_password = User.objects.make_random_password() # новый пароль
key.user.set_password(new_password) key.user.set_password(new_password)
key.user.save() key.user.save()
emails.send_new_password_email(key.user.email, new_password) emails.send_new_password_email.delay(key.user.email, new_password)
key.delete() # удалить ключ восстановления пароля key.delete() # удалить ключ восстановления пароля
messages.add_message(request, messages.INFO, success_msg) messages.add_message(request, messages.INFO, success_msg)

@ -19,10 +19,10 @@
</div> </div>
{% for license in licenses %} {% for license in licenses %}
<div class='license_{{ license.id }}'> <div class='license_{{ license.id }}'>
<div class='w100 left'>{{ license.id }}</div> <div class='w100 left'>{% if license.pay_sum > 0 %}{{ license.id }}{% else %}--{% endif %}</div>
<div class='w100 left'>{{ license.order_date }}</div> <div class='w100 left'>{{ license.order_date }}</div>
<div class='w100 left'>{{ license.get_term }}</div> <div class='w100 left'>{{ license.get_term }}</div>
<div class='w100 left'>{{ license.pay_sum|get_plural:"рубль,рубля,рублей" }}</div> <div class='w100 left'>{% if license.pay_sum > 0 %}{{ license.pay_sum|get_plural:"рубль,рубля,рублей" }}{% else %}Бесплатно{% endif %}</div>
<div class='w100 left'>{{ license.get_payform_display }}</div> <div class='w100 left'>{{ license.get_payform_display }}</div>
<div class='w100 left'>{{ license.get_status_display }}</div> <div class='w100 left'>{{ license.get_status_display }}</div>
<div class='w100 left'>{{ license.get_action_link|safe }}</div> <div class='w100 left'>{{ license.get_action_link|safe }}</div>

Loading…
Cancel
Save