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
Beispiel #3
0
 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