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:
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