fix issue with creating the first ever pitstop for vehicle
This commit is contained in:
parent
889a3e6476
commit
b3cb88e870
|
@ -14,17 +14,20 @@ def odometer_date_check(form, field):
|
|||
date = form.date.data
|
||||
pitstops = form.pitstops
|
||||
|
||||
if date < pitstops[0].date and odometer >= pitstops[0].odometer:
|
||||
raise ValidationError('The new odometer value must be less than %i km' % pitstops[0].odometer)
|
||||
if len(pitstops) > 0:
|
||||
if date < pitstops[0].date and odometer >= pitstops[0].odometer:
|
||||
raise ValidationError('The new odometer value must be less than %i km' % pitstops[0].odometer)
|
||||
|
||||
for index in range(0, len(pitstops)-1):
|
||||
if pitstops[index].date <= date < pitstops[index + 1].date:
|
||||
if odometer <= pitstops[index].odometer or odometer >= pitstops[index+1].odometer:
|
||||
raise ValidationError('The new odometer value must be greater than %i km and less than %i km'
|
||||
% (pitstops[index].odometer,pitstops[index+1].odometer))
|
||||
if date >= pitstops[-1].date and odometer <= pitstops[-1].odometer:
|
||||
raise ValidationError('The new odometer value must be greater than %i km' % pitstops[-1].odometer)
|
||||
|
||||
if len(pitstops) > 1:
|
||||
for index in range(0, len(pitstops)-1):
|
||||
if pitstops[index].date <= date < pitstops[index + 1].date:
|
||||
if odometer <= pitstops[index].odometer or odometer >= pitstops[index+1].odometer:
|
||||
raise ValidationError('The new odometer value must be greater than %i km and less than %i km'
|
||||
% (pitstops[index].odometer,pitstops[index+1].odometer))
|
||||
|
||||
if date >= pitstops[-1].date and odometer <= pitstops[-1].odometer:
|
||||
raise ValidationError('The new odometer value must be greater than %i km' % pitstops[-1].odometer)
|
||||
|
||||
|
||||
def date_check(form, field):
|
||||
|
|
|
@ -54,18 +54,27 @@ class CreatePitstopForm(FlaskForm):
|
|||
self.date.default = self.date.data
|
||||
else:
|
||||
self.date.default = date.today()
|
||||
|
||||
if self.odometer.data:
|
||||
self.odometer.default = self.odometer.data
|
||||
else:
|
||||
elif len(self.pitstops) > 0:
|
||||
self.odometer.default = self.pitstops[-1].odometer
|
||||
else:
|
||||
self.odometer.default = 0
|
||||
|
||||
if self.litres.data:
|
||||
self.litres.default = self.litres.data
|
||||
else:
|
||||
elif len(self.pitstops) > 0:
|
||||
self.litres.default = self.pitstops[-1].amount
|
||||
else:
|
||||
self.litres.default = 0
|
||||
|
||||
if self.costs.data:
|
||||
self.costs.default = self.costs.data
|
||||
else:
|
||||
elif len(self.pitstops) > 0:
|
||||
self.costs.default = self.pitstops[-1].costs
|
||||
else:
|
||||
self.costs.default = 0
|
||||
|
||||
def get_hint_messages(self):
|
||||
messages = {
|
||||
|
|
|
@ -67,7 +67,7 @@ def create_pit_stop_form(vid, cid):
|
|||
form.set_pitstops(vehicle.pitstops)
|
||||
form.same_odometer_allowed = (type(data[-1]) != Pitstop) or (data[-1].consumable.id != cid)
|
||||
else:
|
||||
form.set_pitstops([Pitstop(date(1970, 1, 1), 0, vid, 0, ''),Pitstop(0, 0, date(1970, 1, 1), 0, cid)])
|
||||
form.set_pitstops([])
|
||||
form.same_odometer_allowed = True
|
||||
|
||||
# set the label of the litres field to make the user comfortable
|
||||
|
|
Loading…
Reference in New Issue