From d8eb9cc7a45bce64f8a961da21c3ae93bab07d61 Mon Sep 17 00:00:00 2001 From: Andrey Date: Sun, 26 Mar 2017 21:16:13 +0300 Subject: [PATCH] myauth: moved license creation to its manager --- project/customer/managers.py | 23 +++++++++++++++++++++++ project/customer/models.py | 1 + project/myauth/views.py | 14 +++++--------- 3 files changed, 29 insertions(+), 9 deletions(-) diff --git a/project/customer/managers.py b/project/customer/managers.py index 5ee86d1..d4bbecf 100644 --- a/project/customer/managers.py +++ b/project/customer/managers.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 diff --git a/project/customer/models.py b/project/customer/models.py index 67c7037..913caa8 100644 --- a/project/customer/models.py +++ b/project/customer/models.py @@ -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'Лицензия' diff --git a/project/myauth/views.py b/project/myauth/views.py index 37e4202..304884d 100644 --- a/project/myauth/views.py +++ b/project/myauth/views.py @@ -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)