rollerverbrauch/app/forms/service.py

76 lines
2.4 KiB
Python
Raw Normal View History

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):
date = DateField('Date of Pitstop')
odometer = IntegerField('Odometer (km)', validators=[odometer_date_check])
2016-11-01 16:36:28 +01:00
costs = DecimalField('Costs (€, overall)', places=2, validators=[costs_check])
description = TextAreaField('Description', validators=[Length(1, 4096)])
submit = SubmitField(label='Do it!')
pitstops = []
2016-11-01 16:36:28 +01:00
def set_pitstops(self, pitstops):
self.pitstops = pitstops
2016-11-01 16:36:28 +01:00
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
elif len(self.pitstops) > 0:
self.odometer.default = self.pitstops[-1].odometer
2016-11-01 16:36:28 +01:00
else:
self.odometer.default = 0
2016-11-01 16:36:28 +01:00
if self.costs.data:
self.costs.default = self.costs.data
else:
self.costs.default = 0
if self.description.data:
self.description.default = self.description.data
2016-11-01 16:36:28 +01:00
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
if self.description.data:
self.description.default = self.description.data
2016-11-01 16:36:28 +01:00