stc

a simple time card webapp
git clone _git@git.brennen.work:stc.git
Log | Files | Refs | README

commit 7711c16ac48e77183cf63e33ed3407ffaf08e4b0
parent f741189ca31dc5cda0db9513b01c689a8145b035
Author: Brennen T. Mazur <brennen@madis.cool>
Date:   Thu,  9 Mar 2023 18:15:46 -0700

form default structure

Diffstat:
Mapp/forms.py | 18++++++------------
Mapp/routes.py | 32+++++++++++++++++++++++++++++---
2 files changed, 35 insertions(+), 15 deletions(-)

diff --git a/app/forms.py b/app/forms.py @@ -13,15 +13,13 @@ class LoginForm(FlaskForm): login = SubmitField('Login') class NewUserForm(FlaskForm): - branches=['Dillon','Salmon'] - roles=['Crew','Assistant Crew Lead','Crew Lead','Project Manager','Accounting'] fname = StringField('First Name', validators=[DataRequired()]) mname = StringField('Middle Initial', validators=[DataRequired(),length(max=1)]) lname = StringField('Last Name', validators=[DataRequired()]) birthday = DateField('Birthday',validators=[DataRequired()])# Ought to change this to some validation for age range accepted - role = SelectField('Role',validators=[DataRequired()],choices=roles) + role = SelectField('Role',validators=[DataRequired()]) address = StringField('Address',validators=[DataRequired()])# Require some sort of validator for check... - branch = SelectField('Branch',validators=[DataRequired(),length(max=200)],choices=branches) + branch = SelectField('Branch',validators=[DataRequired(),length(max=200)]) phonenumber = TelField('Phone Number',validators=[DataRequired(),length(max=12)])# Require some sort of validator for check... email = EmailField('Email',validators=[DataRequired()])# Require some sort of validator for check... payPeriod = StringField('Pay Period Override',validators=[optional()])# May not need this at all? @@ -30,8 +28,7 @@ class NewUserForm(FlaskForm): createNewUser = SubmitField('Create New User') class PunchclockoutWidget(FlaskForm): - projects=['Project 1','Project 2','Project 3'] - projectsSel = SelectField('Project', validators=[DataRequired()],choices=projects) + projectsSel = SelectField('Project', validators=[DataRequired()]) #clockout = currenttime lunchBox = BooleanField('Lunch') per_diemBox = BooleanField('Per Diem') @@ -39,8 +36,7 @@ class PunchclockoutWidget(FlaskForm): clockout = SubmitField('Clock Out') class PunchclockinWidget(FlaskForm): - projects=['Project 1','Project 2','Project 3'] - projectsSel = SelectField('Project', validators=[DataRequired()],choices=projects) + projectsSel = SelectField('Project', validators=[DataRequired()]) #clockin = currenttime # IFF user.role is_in(trusted_role[]) then allow lunch minute definition clockin = SubmitField('Clock In') @@ -63,10 +59,8 @@ class AdmnPermissionsForm(FlaskForm):# for each module make Boolean field. Gets updaterole = SubmitField('Update')#Update to take role name for pass to write fn class FleetCheckoutForm(FlaskForm): - vehicles=['Vehicle 1','Vehicle 2', 'Vehicle 3'] - startingmiles=0 - vehicle = SelectField('Vehicle', validators = [DataRequired()], choices = vehicles) - start_milage = IntegerField('Starting Milage', validators=[DataRequired()], default=startingmiles)# Require some sort of validator for check... + vehicle = SelectField('Vehicle', validators = [DataRequired()]) + start_milage = IntegerField('Starting Milage', validators=[DataRequired()])# Require some sort of validator for check... horn = BooleanField('Horn') signals = BooleanField('Signals') tires = BooleanField('Tires') diff --git a/app/routes.py b/app/routes.py @@ -149,10 +149,26 @@ def dashboard(): clocked_out = True #End isUserClockedIn() +# Temp values, change to db dependent values + availableProjects = ['Project 1', 'Project 2', 'Project 3'] + availableVehicles = ['Vehicle 1', 'Vehicle 2', 'Vehicle 3', 'Vehicle 4'] + currentProject = 'Project 2' + lastMilage = 103483 + clockinform=PunchclockinWidget() clockoutform=PunchclockoutWidget() fleetoutform=FleetCheckoutForm() fleetinform=FleetCheckinForm() + + clockinform.projectsSel.choices = availableProjects + clockoutform.projectsSel.choices = availableProjects + clockoutform.projectsSel.default = currentProject + fleetoutform.vehicle.choices = availableVehicles + fleetoutform.start_milage.default = lastMilage + + clockinform.process() + clockoutform.process() + fleetoutform.process() if clockoutform.validate_on_submit(): mongo.db.time_collection.insert({'clock_out' : [datetime.datetime.utcnow()], @@ -167,8 +183,6 @@ def dashboard(): 'project' : clockinform.project.data}) return redirect(url_for('dashboard')) - available_projects = {'STC Webapp':'stcapp','YEP Website':'yepsite','Volunteer Day':'volday'} #not used/not working - if fleetoutform.validate_on_submit(): mongo.db.fleet_collection.insert_one({'date':datetime.datetime.today(), # NEED to work on modular way of storing safety checks... might condence to single true if all checked. else returns false and records false datavalue.label in incident_report[] If incident report, remove vehicle from available pool and display widget in admin layout 'vehicle':fleetoutform.vehicle.data, @@ -176,7 +190,7 @@ def dashboard(): 'operator':current_user.username, 'additional_notes':fleetoutform.additionalnotes.data}) return redirect(url_for('dashboard')) - return render_template('dashboard/layout.html',permissions=dashperms,projects=available_projects,clocked_out=clocked_out,clockoutform=clockoutform,clockinform=clockinform,fleetinform=fleetinform,fleetoutform=fleetoutform,clocked_in_users=clocked_in_users,ORGNAME=OrganizationName) + return render_template('dashboard/layout.html',permissions=dashperms,clocked_out=clocked_out,clockoutform=clockoutform,clockinform=clockinform,fleetinform=fleetinform,fleetoutform=fleetoutform,clocked_in_users=clocked_in_users,ORGNAME=OrganizationName) @app.route("/admin") #@admin_required @@ -244,7 +258,19 @@ def inactiveusers(): @app.route("/admin/newuser", methods=["GET","POST"]) @login_required def newuser(): +# Temp values, change to modular db dependent values + availableBranches = ['Dillon','Salmon'] + availableRoles = ['Crew', 'Assistant Crew Lead', 'Crew Lead', 'Project Manager', 'Accounting'] + defaultBranch = 'Dillon' + defaultRole = 'Crew' +# END TMP Values + form = NewUserForm() + form.branch.choices = availableBranches + form.branch.default = defaultBranch + form.role.choices = availableRoles + form.role.default = defaultRole + form.process() if form.validate_on_submit(): genpasswd = ''.join(random.choice(string.ascii_letters) for _ in range(14))