31 lines
951 B
Python
31 lines
951 B
Python
from flask_wtf import Form
|
|
from wtforms import DateField, IntegerField, DecimalField
|
|
from wtforms.validators import ValidationError
|
|
|
|
|
|
def date_check(form, field):
|
|
if field.data < form.pitstop.date:
|
|
raise ValidationError('The new date must after %s' % form.pitstop.date)
|
|
|
|
|
|
def odometer_check(form, field):
|
|
if field.data <= form.pitstop.odometer:
|
|
raise ValidationError('The new odometer value must be higher than %i km' % form.pitstop.odometer)
|
|
|
|
|
|
def litres_check(form, field):
|
|
if field.data is not None and field.data <= 0:
|
|
raise ValidationError('You must fuel at least 0.1 l')
|
|
|
|
|
|
class CreatePitstopForm(Form):
|
|
date = DateField('Date of Pitstop', validators=[date_check])
|
|
odometer = IntegerField('Odometer (km)', validators=[odometer_check])
|
|
litres = DecimalField('Litres (l)', places=1, validators=[litres_check])
|
|
pitstop = None
|
|
|
|
def set_pitstop(self, pitstop):
|
|
self.pitstop = pitstop
|
|
|
|
|