Skip to content

Instantly share code, notes, and snippets.

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)

Installation

npm install -g .

Run

$ sudo -E xfwd