stc

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

commit 778f0b691c76255515543c3a7626ca34995ee687
parent 472a37883bb9d2fd6cdf3903eb0eab3daeba6ca5
Author: Brennen T. Mazur <brennen@madis.cool>
Date:   Sun,  2 Apr 2023 22:41:58 -0600

crew clockin list now has functional toggle lunch and per diem buttons

Diffstat:
Mapp/routes.py | 27+++++++++++++++++++--------
Mapp/templates/dashboard/activeusers/widget.html | 23++++++++++++++++++-----
2 files changed, 37 insertions(+), 13 deletions(-)

diff --git a/app/routes.py b/app/routes.py @@ -288,16 +288,28 @@ def dashboard(): @app.route("/toggle-lunch/<timeid>",methods=['GET','POST']) def toggle_lunch(timeid): - #query timeid - #if lunch exists, toggle true if false, and vice versa - #else set lunch: True + timeid = ObjectId(timeid) + + if mongo.db.time_collection.find_one({'_id': timeid, 'lunch':{'$exists':False}}): + mongo.db.time_collection.update_one({'_id':timeid},{'$set':{'lunch':True}}) + if mongo.db.time_collection.find_one({'_id': timeid})['lunch'] == True: + mongo.db.time_collection.update_one({'_id':timeid},{'$set':{'lunch':False}}) + else: + mongo.db.time_collection.update_one({'_id':timeid},{'$set':{'lunch':True}}) + return redirect(url_for('dashboard')) @app.route("/toggle-per-diem/<timeid>",methods=['GET','POST']) def toggle_per_diem(timeid): - #query timeid - #if perdiem exists, toggle true if false, and vice versa - #else set perdiem: True + timeid = ObjectId(timeid) + + if mongo.db.time_collection.find_one({'_id': timeid, 'per_diem':{'$exists':False}}): + mongo.db.time_collection.update_one({'_id':timeid},{'$set':{'per_diem':True}}) + if mongo.db.time_collection.find_one({'_id': timeid})['per_diem'] == True: + mongo.db.time_collection.update_one({'_id':timeid},{'$set':{'per_diem':False}}) + else: + mongo.db.time_collection.update_one({'_id':timeid},{'$set':{'per_diem':True}}) + return redirect(url_for('dashboard')) @app.route("/clockinuser/<modusernm>/<usertoinid>/<project>/<intime>", methods=['GET','POST']) @@ -604,8 +616,7 @@ def project_report(): def pay_period_report(): pay = mongo.db.time_collection.find({}) users = mongo.db.user_collection.find({}) - time = mongo.db.time_collection.find({}) - return render_template ('admin/reports/pay_period_report.html', users=users, pay=pay, time=time, ORGNAME=OrganizationName) + return render_template('admin/reports/pay_period_report.html', users=users, pay=pay, ORGNAME=OrganizationName) # @app.route("/dev/fleetdata") # @login_required diff --git a/app/templates/dashboard/activeusers/widget.html b/app/templates/dashboard/activeusers/widget.html @@ -11,18 +11,30 @@ {% for user in clocked_in_users %} <tr> <td><button><a href="{{ url_for('hours',username=user.modified_by.0) }}">{{ user.modified_by.0 }}</a></button></td> - <td><button><a href="{{ url_for('toggle_lunch',timeid=user._id) }}">Clock Out</a></button></td> - <td><input type="checkbox" name="lunch"><label for="lunch">Lunch</label></td> - <td><input type="checkbox" name="per_diem"><label for="per_diem">Per Diem</label></td> + <td><a href="{{ url_for('toggle_lunch',timeid=user._id) }}"> + {% if user.lunch %} + <input type="checkbox" name="lunch" checked><label for="lunch">Lunch</label> + {% else %} + <input type="checkbox" name="lunch"><label for="lunch">Lunch</label> + {% endif %} + </a></td> + <td><a href="{{ url_for('toggle_per_diem',timeid=user._id) }}"> + {% if user.per_diem %} + <input type="checkbox" name="per_diem" checked><label for="per_diem">Per Diem</label> + {% else %} + <input type="checkbox" name="per_diem"><label for="per_diem">Per Diem</label> + {% endif %} + </a></td> <td><button><a href="{{ url_for('hours',username=user.modified_by.0) }}">{{ user.clock_in.0.time().isoformat(timespec='minutes') }}</a></button></td><!-- can format/display non-military time with format %I:%M%p --> <td><button><a href="{{ url_for('clockout_by_id',modusernm=current_user.username,timeid=user._id) }}">Clock Out</a></button></td> </tr> {% endfor %} </table> </form> - <form> +<!-- clock in clocked out user MIGHT NEED TO COMMENT OUT... DOES NOT GET DATA FROM FORMS ON SUBMIT... ONLY USES DEFAULT.data --> +<!-- <form> <table> - <tr><!-- clock in clocked out user MIGHT NEED TO COMMENT OUT... DOES NOT GET DATA FROM FORMS ON SUBMIT... ONLY USES DEFAULT.data --> + <tr> <td>{{ crewform.userSel.label }} {{ crewform.userSel() }}</td> <td>{{ crewform.projectSel.label }} {{ crewform.projectSel() }}</td> <td>{{ crewform.time.label }} {{ crewform.time() }}</td> @@ -30,4 +42,5 @@ </tr> </table> </form> +--> </section>