Browse Source

Include available states to transition to.

feature/bike-tracking
Drew Larson 8 years ago
parent
commit
1e0f1cd496
  1. 10
      bikeshop_project/bike/models.py
  2. 1
      bikeshop_project/bike/serializers.py

10
bikeshop_project/bike/models.py

@ -78,7 +78,8 @@ class Bike(models.Model):
return self.stolen is False and self.cpic_searched_at is not None and self.serial_number is not None return self.stolen is False and self.cpic_searched_at is not None and self.serial_number is not None
def can_claim(self): def can_claim(self):
return self.claimed_by is None or not (self.claimed_by is not None and self.last_worked_on > timezone.now() - timedelta( return self.claimed_by is None or not (
self.claimed_by is not None and self.last_worked_on > timezone.now() - timedelta(
weeks=4)) or self.last_worked_on is None weeks=4)) or self.last_worked_on is None
def can_purchase(self): def can_purchase(self):
@ -122,3 +123,10 @@ class Bike(models.Model):
@transition(field=state, source=[BikeState.ASSESSED, BikeState.RECEIVED], conditions=[can_transfer_to_police]) @transition(field=state, source=[BikeState.ASSESSED, BikeState.RECEIVED], conditions=[can_transfer_to_police])
def transfer_to_police(self): def transfer_to_police(self):
pass pass
@property
def available_states(self):
states = [state_transition.name
for state_transition in self.get_available_state_transitions()]
return states

1
bikeshop_project/bike/serializers.py

@ -10,3 +10,4 @@ class BikeSerializer(serializers.HyperlinkedModelSerializer):
created_at = serializers.ReadOnlyField() created_at = serializers.ReadOnlyField()
state = serializers.ReadOnlyField() state = serializers.ReadOnlyField()
available_states = serializers.ReadOnlyField()

Loading…
Cancel
Save