def activate(self, user): if not self.valid(): return False, _('Promocode is expired.') if self.period == 0: return False, _("It's a fake promocode on zero days.") # only 1 activataion per user is allowed if len(Transaction.objects.filter(user=user, promocode=self)) > 0: return False, _('You already activate this promocode.') us = user.get_usersubscription() if not us: return False, _('You dont have a subscription. Please contact with admins.') us.expires = utils.extend_date_by(us.expires, self.period, self.unit) us.save() Transaction(user=user, promocode=self, event='Extend subscription by promocode on %s' % self.get_promocode_display(), period=self.period ).save() self.counter += 1 self.save() return True, _('Promocode has been activated on %s.' % self.get_promocode_display())
def _extend(self, timedelta=None): """Extend subscription by `timedelta' or by subscription's recurrence period.""" if timedelta is not None: self.expires += timedelta else: if self.subscription.recurrence_unit: self.expires = utils.extend_date_by( self.expires, self.subscription.recurrence_period, self.subscription.recurrence_unit ) else: self.expires = None
def extend(self, timedelta=None): """Extend subscription by `timedelta' or by subscription's recurrence period.""" if timedelta is not None: self.expires += timedelta else: if self.subscription.recurrence_unit: self.expires = utils.extend_date_by( self.expires, self.subscription.recurrence_period, self.subscription.recurrence_unit) else: self.expires = None
def extend(self, timedelta=None, subscription=None): """Extend subscription by `timedelta' or by subscription's recurrence period.""" if timedelta is not None: self.expires += timedelta else: if subscription is not None: fl = False if subscription.unit and subscription.period: self.expires = utils.extend_date_by( self.expires, subscription.period, subscription.unit) fl = True if subscription.bonus_unit \ and subscription.bonus_period: self.expires = utils.extend_date_by( self.expires, subscription.bonus_period, subscription.bonus_unit) fl = True if not fl: self.expires = None