myauth: moved license creation to its manager

remotes/origin/license
Andrey 9 years ago
parent 85db2217e6
commit d8eb9cc7a4
  1. 23
      project/customer/managers.py
  2. 1
      project/customer/models.py
  3. 14
      project/myauth/views.py

@ -1,7 +1,13 @@
# -*- coding: utf-8 -*-
from datetime import datetime
from django.db import models
from django.core.exceptions import ObjectDoesNotExist
from dateutil.relativedelta import relativedelta
from . import consts
class UserProfileManager(models.Manager):
def create_profile(self, profile_type):
@ -68,3 +74,20 @@ class ClientManager(models.Manager):
return self.filter(company=company)
except:
return self.none()
class LicenseManager(models.Manager):
def create_test_period_license(self, company):
"""Создать лицензию на пробный период."""
now_ = datetime.now()
license = self.model(
company=company,
date_from = now_.today(),
date_to = now_.today() + relativedelta(days = consts.LICENSE_TEST_PERIOD_DAYS - 1),
pay_sum=0,
term=consts.LICENSE_TEST_PERIOD_TERM,
status=consts.LICENSE_TEST_PERIOD,
payform=consts.PAYFORM_FREE
)
license.save()
return license

@ -424,6 +424,7 @@ class License(models.Model):
pay_sum= models.IntegerField(verbose_name=u'сумма оплаты')
deleted = models.BooleanField(u'удалено', default=False)
objects = managers.LicenseManager()
class Meta:
verbose_name = u'Лицензия'

@ -1,7 +1,5 @@
# -*- coding: utf-8 -*-
import hashlib
from datetime import datetime
from dateutil.relativedelta import relativedelta
from random import random
from django.shortcuts import render, redirect, get_object_or_404
@ -16,8 +14,9 @@ from django.contrib.sessions.models import Session
from django.contrib.auth.views import logout as django_logout
from project.customer.models import UserProfile, UserProfileFilters, License
from project.customer import consts
from . import forms, models, emails
from . import forms, models, emails
REGISTRATION_OPEN = getattr(settings, 'REGISTRATION_OPEN', True)
@ -94,17 +93,14 @@ def confirm_registered_email(request, key):
user = get_object_or_404(models.DokUser, username__iexact = key) # ключ = имя пользователя
models.ConfirmEmail.objects.confirm(user)
messages.add_message(request, messages.INFO, success_msg)
licenses = License.objects.filter(company=user.profile)
if not licenses:
license = License(company=user.profile, date_from=datetime.today(),
date_to=datetime.today() + relativedelta(days=44),
pay_sum=0,
term=0,
status=-1, payform=-1)
license.save()
license = License.objects.create_test_period_license(company=user.profile)
user.profile.confirmed = True
user.profile.active = True
user.profile.save()
auth.logout(request)
return redirect(success_url)

Loading…
Cancel
Save