# -*- coding: utf-8 -*- from __future__ import absolute_import from datetime import datetime, timedelta import traceback from django.core.mail import mail_admins from celery import shared_task from project.customer.models import License, UserProfile from project.customer.utils import check_one_profile from project.customer import consts @shared_task def check_license(): profiles = UserProfile.objects.all() now_ = datetime.today() #licenses = License.objects.filter(date_to__lt=now_, status__in=[consts.LICENSE_TEST_PERIOD, consts.LICENSE_ACTIVE], deleted=False) #licenses.update(status=consts.LICENSE_EXPIRED) licenses = License.objects.filter(order_date__lte = now_ - timedelta(days=consts.LICENSE_PAY_DAYS), status=consts.LICENSE_UNPAID, deleted=False) licenses.update(status=consts.LICENSE_SUSPENDED) for profile in profiles: try: check_one_profile(profile, License, now_) except Exception as e: mail_admins(subject=u'customer: check_license error', message=u'Profile id=%s.\n\n%s' % (profile.pk, traceback.format_exc(e)) ) return None