add the crud forms for services
This commit is contained in:
parent
d132dc72de
commit
dd11419305
66
app/forms.py
66
app/forms.py
|
@ -1,5 +1,6 @@
|
||||||
from flask_wtf import Form
|
from flask_wtf import Form
|
||||||
from wtforms import DateField, IntegerField, DecimalField, StringField, SelectField, SubmitField, SelectMultipleField, BooleanField
|
from wtforms import DateField, IntegerField, DecimalField, StringField, SelectField, SubmitField, SelectMultipleField, \
|
||||||
|
BooleanField, TextAreaField
|
||||||
from wtforms.validators import ValidationError, Length
|
from wtforms.validators import ValidationError, Length
|
||||||
from datetime import date
|
from datetime import date
|
||||||
|
|
||||||
|
@ -167,3 +168,66 @@ class EditConsumableForm(Form):
|
||||||
|
|
||||||
class DeletConsumableForm(Form):
|
class DeletConsumableForm(Form):
|
||||||
submit = SubmitField(label='Do it!')
|
submit = SubmitField(label='Do it!')
|
||||||
|
|
||||||
|
|
||||||
|
class CreateServiceForm(Form):
|
||||||
|
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
|
||||||
|
|
||||||
|
|
||||||
|
class DeleteServiceForm(Form):
|
||||||
|
submit = SubmitField(label='Really delete this service!')
|
||||||
|
|
||||||
|
|
||||||
|
class EditServiceForm(Form):
|
||||||
|
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
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,30 @@
|
||||||
|
{% extends "layout.html" %}
|
||||||
|
|
||||||
|
{% block body %}
|
||||||
|
<div class="col-md-2" ></div>
|
||||||
|
<div class="col-md-8">
|
||||||
|
<div class="panel panel-default">
|
||||||
|
<div class="panel-body">
|
||||||
|
<h3>New Service for '{{ vehicle.name }}'</h3>
|
||||||
|
<form class='form-horizontal' method="POST">
|
||||||
|
{{ form.hidden_tag() }}
|
||||||
|
{{ render_field_with_errors(form.date) }}
|
||||||
|
<span id="{{form.date.id}}_help" class="help-block">
|
||||||
|
{{messages['date']}}
|
||||||
|
</span>
|
||||||
|
{{ render_field_with_errors(form.odometer) }}
|
||||||
|
<span id="{{form.odometer.id}}_help" class="help-block">
|
||||||
|
{{messages['odometer']}}
|
||||||
|
</span>
|
||||||
|
{{ render_field_with_errors(form.costs) }}
|
||||||
|
<span id="{{form.costs.id}}_help" class="help-block">
|
||||||
|
{{messages['costs']}}
|
||||||
|
</span>
|
||||||
|
{{ render_field_with_errors(form.description) }}
|
||||||
|
{{ render_field_with_errors(form.submit) }}
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-2" ></div>
|
||||||
|
{% endblock %}
|
|
@ -0,0 +1,42 @@
|
||||||
|
{% extends 'layout.html' %}
|
||||||
|
|
||||||
|
{% block body %}
|
||||||
|
<div class='col-md-2' ></div>
|
||||||
|
<div class='col-md-8'>
|
||||||
|
<div class='panel panel-default'>
|
||||||
|
<div class='panel-body'>
|
||||||
|
<h3>Delete service?</h3>
|
||||||
|
<table style='width: 100%'>
|
||||||
|
<tr>
|
||||||
|
<th style='text-align:right'>Date of Pitstop</th>
|
||||||
|
<td style='text-align: left'>{{ service.date }}</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th style='text-align:right'>Odometer</th>
|
||||||
|
<td style='text-align: left'>{{ service.odometer }} km</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th style='text-align:right'>Description</th>
|
||||||
|
<td style='text-align: left'>{{ service.description }}</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th style='text-align:right'>Costs (overall)</th>
|
||||||
|
<td style='text-align: left'>
|
||||||
|
{% if service.costs %}
|
||||||
|
{{service.costs}}
|
||||||
|
{% else %}
|
||||||
|
--
|
||||||
|
{% endif %}
|
||||||
|
€
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<form class='form-horizontal' method='POST'>
|
||||||
|
{{ form.hidden_tag() }}
|
||||||
|
{{ render_field_with_errors(form.submit) }}
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class='col-md-2' ></div>
|
||||||
|
{% endblock %}
|
|
@ -0,0 +1,29 @@
|
||||||
|
{% extends "layout.html" %}
|
||||||
|
|
||||||
|
{% block body %}
|
||||||
|
<div class="col-md-2" ></div>
|
||||||
|
<div class="col-md-8">
|
||||||
|
<div class="panel panel-default">
|
||||||
|
<div class="panel-body">
|
||||||
|
<h3>Edit Pitstop for '{{ vehicle.name }}'</h3>
|
||||||
|
<form class='form-horizontal' method="POST">
|
||||||
|
{{ form.hidden_tag() }}
|
||||||
|
{{ render_field_with_errors(form.date) }}
|
||||||
|
<span id="{{form.date.id}}_help" class="help-block">
|
||||||
|
{{messages['date']}}
|
||||||
|
</span>
|
||||||
|
{{ render_field_with_errors(form.odometer) }}
|
||||||
|
<span id="{{form.odometer.id}}_help" class="help-block">
|
||||||
|
{{messages['odometer']}}
|
||||||
|
</span>
|
||||||
|
{{ render_field_with_errors(form.description) }}
|
||||||
|
{{ render_field_with_errors(form.costs) }}
|
||||||
|
<span id="{{form.costs.id}}_help" class="help-block">
|
||||||
|
{{messages['costs']}}
|
||||||
|
</span>
|
||||||
|
{{ render_field_with_errors(form.submit) }}
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% endblock %}
|
Loading…
Reference in New Issue