stc

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

commit f5ffcf12f2e638850d00185db592575869ff234f
parent b6fac98deccc417d70cb6b14484f49ce2ee5db2f
Author: Brennen T. Mazur <brennen@madis.cool>
Date:   Sat, 11 Feb 2023 11:11:07 -0700

added new user form

Diffstat:
Mapp/forms.py | 19+++++++++++++++++--
Mapp/routes.py | 13+++++++------
2 files changed, 24 insertions(+), 8 deletions(-)

diff --git a/app/forms.py b/app/forms.py @@ -1,6 +1,6 @@ from flask_wtf import FlaskForm -from wtforms import StringField, SubmitField, PasswordField, BooleanField, SelectField -from wtforms.validators import DataRequired, optional +from wtforms import StringField, SubmitField, PasswordField, BooleanField, SelectField, DateField, TelField, EmailField, FloatField +from wtforms.validators import DataRequired, optional, length # Login class currently assumes mongodb collection(Users) with structure # { @@ -12,6 +12,21 @@ class LoginForm(FlaskForm): password = PasswordField('Password', validators=[DataRequired()]) login = SubmitField('Login') +class NewUserForm(FlaskForm): + fname = StringField('First Name', validators=[DataRequired()]) + mname = StringField('Middle Initial', validators=[DataRequired()]) + 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()]) + address = StringField('Address',validators=[DataRequired()])# Require some sort of validator for check... + branch = SelectField('Branch',validators=[DataRequired(),length(max=200)]) + phonenumber = TelField('Phonenumber',validators=[DataRequired()])# 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? + payValue = FloatField('Pay Value Override',validators=[optional()])# Require some sort of validator for check... + setActive = BooleanField('Active',validators=[optional()])# Require some sort of validator for check... + createNewUser = SubmitField('Create New User') + class PunchclockWidget(FlaskForm): projectsSel = SelectField('Project', validators=[DataRequired()]) #clockin = currenttime diff --git a/app/routes.py b/app/routes.py @@ -3,7 +3,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 +from app.forms import LoginForm, PunchclockWidget, NewUserForm from flask import request from werkzeug.urls import url_parse from werkzeug.security import generate_password_hash, check_password_hash @@ -102,7 +102,7 @@ def load_user(username): return user_obj @app.route("/dashboard") -@login_required +#@login_required def dashboard(): form=PunchclockWidget() currenttime=datetime.datetime.utcnow() @@ -112,12 +112,12 @@ def dashboard(): return render_template('dashboard/layout.html',currenttime=currenttime,projects=available_projects,form=form,ORGNAME=OrganizationName) @app.route("/admin") -@login_required +#@login_required def admin(): return render_template ('admin/layout.html',ORGNAME=OrganizationName) @app.route("/hours")#modify to take userid ex. /hours<userid> for "admin" currently pulls from current_user... simply always pass username to hours(if possible set a default to current_user) -@login_required +#@login_required def hours():#userid goes into call to db to get user[] -> then returns formatted table (punchclock/index.html return render_template ('dashboard/punchclock/index.html',ORGNAME=OrganizationName) @@ -127,9 +127,10 @@ def hours():#userid goes into call to db to get user[] -> then returns formatted # return render_template('dashboard/fleet/index.html',ORGNAME=OrganizationName) @app.route("/admin/roles") -@login_required +#@login_required def roles(): - return render_template('admin/roles/index.html',ORGNAME=OrganizationName) + form = NewUserForm() + return render_template('admin/roles/index.html',form=form,ORGNAME=OrganizationName) @app.route("/admin/agreement") @login_required