2016-11-06 18:53:13 +01:00
|
|
|
from flask_wtf import FlaskForm
|
2016-11-01 16:36:28 +01:00
|
|
|
from wtforms import DateField, IntegerField, DecimalField, SubmitField, TextAreaField
|
|
|
|
from wtforms.validators import Length
|
|
|
|
|
|
|
|
from .checks import *
|
|
|
|
|
|
|
|
|
2016-11-06 18:53:13 +01:00
|
|
|
class CreateServiceForm(FlaskForm):
|
2016-11-01 16:36:28 +01:00
|
|
|
date = DateField('Date of Service', validators=[date_check])
|
|
|
|
odometer = IntegerField('Odometer (km)', validators=[odometer_check])
|
|
|
|
costs = DecimalField('Costs (€, overall)', places=2, validators=[costs_check])
|
|
|
|
description = TextAreaField('Description', validators=[Length(1, 4096)])
|
|
|
|
submit = SubmitField(label='Do it!')
|
|
|
|
last_pitstop = None
|
|
|
|
|
|
|
|
def set_pitstop(self, last_pitstop):
|
|
|
|
self.last_pitstop = last_pitstop
|
|
|
|
|
|
|
|
def preinit_with_data(self):
|
|
|
|
if self.date.data:
|
|
|
|
self.date.default = self.date.data
|
|
|
|
else:
|
|
|
|
self.date.default = date.today()
|
|
|
|
|
|
|
|
if self.odometer.data:
|
|
|
|
self.odometer.default = self.odometer.data
|
|
|
|
else:
|
|
|
|
self.odometer.default = self.last_pitstop.odometer
|
|
|
|
|
|
|
|
if self.costs.data:
|
|
|
|
self.costs.default = self.costs.data
|
|
|
|
else:
|
|
|
|
self.costs.default = 0
|
|
|
|
|
|
|
|
|
2016-11-06 18:53:13 +01:00
|
|
|
class DeleteServiceForm(FlaskForm):
|
2016-11-01 16:36:28 +01:00
|
|
|
submit = SubmitField(label='Really delete this service!')
|
|
|
|
|
|
|
|
|
2016-11-06 18:53:13 +01:00
|
|
|
class EditServiceForm(FlaskForm):
|
2016-11-01 16:36:28 +01:00
|
|
|
date = DateField('Date of Service', validators=[date_check])
|
|
|
|
odometer = IntegerField('Odometer (km)', validators=[odometer_check])
|
|
|
|
costs = DecimalField('Costs (€, overall)', places=2, validators=[costs_check])
|
|
|
|
description = TextAreaField('Description', validators=[Length(1, 4096)])
|
|
|
|
submit = SubmitField(label='Do it!')
|
|
|
|
last_pitstop = None
|
|
|
|
same_odometer_allowed = True
|
|
|
|
|
|
|
|
def set_pitstop(self, last_pitstop):
|
|
|
|
self.last_pitstop = last_pitstop
|
|
|
|
|
|
|
|
def preinit_with_data(self):
|
|
|
|
if self.date.data:
|
|
|
|
self.date.default = self.date.data
|
|
|
|
else:
|
|
|
|
self.date.default = date.today()
|
|
|
|
|
|
|
|
if self.odometer.data:
|
|
|
|
self.odometer.default = self.odometer.data
|
|
|
|
else:
|
|
|
|
self.odometer.default = self.last_pitstop.odometer
|
|
|
|
|
|
|
|
if self.costs.data:
|
|
|
|
self.costs.default = self.costs.data
|
|
|
|
else:
|
|
|
|
self.costs.default = 0
|
|
|
|
|
|
|
|
|