admin fixes, 15 days to license end

remotes/origin/yandex
Bachurin Sergey 12 years ago
parent 0ee9b5fb6d
commit 21620ebd4f
  1. 2
      project/customer/admin.py
  2. 26
      project/customer/context_processors.py
  3. 22
      project/customer/models.py
  4. 15
      project/myauth/views.py
  5. 1
      project/settings.py
  6. 5
      project/templates/base.html

@ -11,7 +11,7 @@ class UserProfileAdmin(admin.ModelAdmin):
form = forms.UserProfileAdminForm
class LicenseAdmin(admin.ModelAdmin):
list_display = ('get_email', 'term', 'status', 'order_date', 'date_from', 'date_to')
list_display = ('get_company', 'term', 'status', 'order_date', 'date_from', 'date_to')
list_display_links = list_display
search_fields = ('user__email', )

@ -0,0 +1,26 @@
# -*- coding: utf-8 -*-
from datetime import datetime, timedelta
from django.core.cache import cache
from .models import License
def license_check_soon_ends(request):
try:
now = datetime.today()
license_15days = cache.get('license_15_%s' % (request.user.username,), None)
if license_15days is None:
licenses_ends = License.objects.filter(company=request.user.profile, date_to__gte=now - timedelta(15), status__in=[-1, 1, 2], deleted=False)
next_licenses = License.objects.filter(company=request.user.profile, date_from__gte=now - timedelta(15), status=1, deleted=False)
if licenses_ends and not next_licenses:
days_to_end = licenses_ends[0].date_to
cache.set('license_15_%s' % (request.user.username,), days_to_end)
license_15days = days_to_end
else:
license_15days = ''
return {
#'license_15days': license_15days == 'Y'
'license_15days': license_15days
}
except:
return { }

@ -12,6 +12,7 @@ from django.db.models import Max
from django.core.urlresolvers import reverse
from . import consts, managers, utils
from project.myauth.models import DokUser
PROFILE_IMAGES_UPLOAD_DIR = 'customer/profile/' # куда сохранять загруженные изображения
@ -167,7 +168,7 @@ class UserProfile(models.Model):
def get_first_user(self):
try:
first_user = DokUser.objects.filter(profile=self)
first_user = DokUser.objects.filter(profile=self)[0]
return first_user
except:
return None
@ -234,7 +235,10 @@ class UserProfile(models.Model):
return (u'%s %s' % (phone_code, self.phone,)).strip()
def get_email(self):
return self.user.email
try:
return self.get_first_user().email
except:
return None
def get_full_fax(self):
"""(Код города) Номер факса."""
@ -405,7 +409,7 @@ class License(models.Model):
def __unicode__(self):
return u'%s - %s %s (%d %s)' % (
self.user.profile.get_company_name(),
self.company.get_company_name(),
self.term,
numeral.choose_plural(self.term, u"месяц, месяца, месяцев"),
self.pay_sum,
@ -414,21 +418,21 @@ class License(models.Model):
def save(self, *args, **kwargs):
if not self.__prev_date and self.paid_date:
max_date_license = License.objects.filter(user=self.user).aggregate(Max('date_to'))['date_to__max']
max_date_license = License.objects.filter(company=self.company).aggregate(Max('date_to'))['date_to__max']
today = datetime.now().date()
if max_date_license < today:
max_date_license = today - timedelta(1)
self.date_from = max_date_license + relativedelta(days=1)
self.date_to = self.date_from + relativedelta(months=self.term, days=-1)
self.user.profile.active = True
self.user.profile.save()
self.company.active = True
self.company.save()
self.status = 1
utils.check_one_profile(self.user.profile, License, datetime.now(), manual=True)
utils.check_one_profile(self.company, License, datetime.now(), manual=True)
super(License, self).save(*args, **kwargs)
def get_email(self):
return self.user.email
def get_company(self):
return self.company.get_company_name()
def get_action_link(self):

@ -209,14 +209,15 @@ def change_email(request):
@csrf_protect
def login(request):
"""Вход в систему."""
if request.session.get('login_count', None):
request.session['login_count'] += 1
else:
form_class = forms.LoginForm
if request.session.get('login_count', None) is None:
request.session['login_count'] = 0
if request.session['login_count'] > 0:
if request.session['login_count'] > 1:
form_class = forms.CaptchedLoginForm
form_prefix = 'login'
else:
form_class = forms.LoginForm
#form_prefix = 'login'
form_prefix = ''
template_name = 'myauth/login.html'
success_url = 'customer_index'
if request.method == 'POST':
@ -232,6 +233,8 @@ def login(request):
return redirect(success_url)
else:
request.session['login_count'] += 1
if request.session['login_count'] > 1:
form = forms.CaptchedLoginForm(data=request.POST, prefix=form_prefix)
else:
form = form_class(prefix=form_prefix)

@ -130,6 +130,7 @@ TEMPLATE_CONTEXT_PROCESSORS = (
'cms.context_processors.cms_settings',
'sekizai.context_processors.sekizai',
'project.callback.context_processors.add_forms',
'project.customer.context_processors.license_check_soon_ends',
)

@ -12,12 +12,15 @@
</head>
<body>
{% cms_toolbar %}
{% if messages %}
{% if messages or license_15days %}
<div id="content" class="clear">
<ul class="messagelist">
{% for message in messages %}
<li{% if message.tags %} class="{{ message.tags }}"{% endif %}>{{ message }}</li>
{% endfor %}
{% if license_15days %}
<li class="error">{{ license_15days }} заканчивается срок действия лицензии.</li>
{% endif %}
</ul>
</div>
{% endif %}

Loading…
Cancel
Save