npm install -g .
$ sudo -E xfwd
class Payment(models.Model): | |
is_started = models.BooleanField(default=True) | |
is_captured = models.BooleanField(default=False) | |
is_completed = models.BooleanField(default=False) | |
def can_capture(self): | |
return self.is_started and not self.is_captured and not self.is_completed | |
def can_complete(self): | |
return self.is_captured |
class Payment(models.Model): | |
STATE_CHOICES = ( | |
('started', 'Started'), | |
('captured', 'Captured'), | |
('completed', 'Completed'), | |
) | |
state = models.CharField(choices=STATE_CHOICES, default='started', max_length=16) | |
def can_capture(self): |
class Payment(models.Model): | |
STATE_CHOICES = ( | |
('started', 'Started'), | |
('captured', 'Captured'), | |
('completed', 'Completed'), | |
# we introduce a new "incomplete" state | |
('incomplete', 'Incomplete'), | |
) | |
def can_complete(self): |
class Payments(models.Model): | |
STATES = { | |
'started': 'Started', | |
'captured': 'Captured', | |
'completed': 'Completed', | |
} | |
state = models.CharField(default='started', choices=STATES.items(), max_length=16) | |
def __init__(self, *args, **kwargs): |
class Payments(models.Model): | |
STATES = { | |
'started': 'Started', | |
'captured': 'Captured', | |
'completed': 'Completed', | |
'incomplete': 'Incomplete', # new incomplete state for us | |
} | |
def __init__(self, *args, **kwargs): | |
super(Payments, self).__init__(*args, **kwargs) |