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 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | |||||||
							
								
								
									
										30
									
								
								app/templates/createServiceForm.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								app/templates/createServiceForm.html
									
									
									
									
									
										Normal file
									
								
							| @ -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 %} | ||||||
							
								
								
									
										42
									
								
								app/templates/deleteServiceForm.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										42
									
								
								app/templates/deleteServiceForm.html
									
									
									
									
									
										Normal file
									
								
							| @ -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 %} | ||||||
							
								
								
									
										29
									
								
								app/templates/editServiceForm.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								app/templates/editServiceForm.html
									
									
									
									
									
										Normal file
									
								
							| @ -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
	
	Block a user