stc

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

commit c0d30adf3e696f4572454d1f2224ec6d4d1100f2
parent b8cdb9560a3dcbe82ed914a3aa6c126068391af1
Author: Brennen T. Mazur <brennen@madis.cool>
Date:   Fri, 24 Feb 2023 15:38:43 -0700

punchclock in and out setup

Diffstat:
Mapp/forms.py | 11++++++++++-
Mapp/routes.py | 15+++++++++++++--
2 files changed, 23 insertions(+), 3 deletions(-)

diff --git a/app/forms.py b/app/forms.py @@ -29,7 +29,16 @@ class NewUserForm(FlaskForm): setActive = BooleanField('Active',default="checked")# Require some sort of validator for check... createNewUser = SubmitField('Create New User') -class PunchclockWidget(FlaskForm): +class PunchclockoutWidget(FlaskForm): + projects=['Project 1','Project 2','Project 3'] + projectsSel = SelectField('Project', validators=[DataRequired()],choices=projects) + #clockin = currenttime + lunchBox = BooleanField('Lunch') + per_diemBox = BooleanField('Per Diem') + # IFF user.role is_in(trusted_role[]) then allow lunch minute definition + clockout = SubmitField('Clock Out') + +class PunchclockinWidget(FlaskForm): projects=['Project 1','Project 2','Project 3'] projectsSel = SelectField('Project', validators=[DataRequired()],choices=projects) #clockin = currenttime diff --git a/app/routes.py b/app/routes.py @@ -4,7 +4,7 @@ from app import app from flask_pymongo import PyMongo from flask_login import LoginManager from flask import render_template, url_for, request, flash, redirect -from app.forms import LoginForm, PunchclockWidget, FleetCheckoutForm, FleetCheckinForm, NewUserForm, AdmnPermissionsForm, DashPermissionsForm +from app.forms import LoginForm, PunchclockinWidget, PunchclockoutWidget, FleetCheckoutForm, FleetCheckinForm, NewUserForm, AdmnPermissionsForm, DashPermissionsForm from flask import request from werkzeug.urls import url_parse from werkzeug.security import generate_password_hash, check_password_hash @@ -109,12 +109,23 @@ def dashboard(): # all_permissions=mongo.db.permissions_collection.find_one('current_user.role') # dashperms=all_permissions['dashboard'] - clockform=PunchclockWidget() + clockinform=PunchclockinWivdget() + clockoutform=PunchclockoutWidget() fleetoutform=FleetCheckoutForm() fleetinform=FleetCheckinForm() currenttime=datetime.datetime.utcnow() + if clockform.validate_on_submit(): + mongo.db.fleet_collection.insert_one({'clock_in' : datetime.datetime.utcnow(), + 'modified_by' : [current_user.username], + 'date' : datetime.datetime.today(), + 'project' : clockform.project.data, + 'lunch' : clockform.lunch.data, + 'per_diem' : clockform.perdiem.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,