From 2af52808c2c79397afe8251f91a7e5dafd564244 Mon Sep 17 00:00:00 2001 From: Atharva Phand <143048460+ahphand-tamu@users.noreply.github.com> Date: Sat, 18 Nov 2023 01:14:28 +0000 Subject: [PATCH 01/21] my cases 1 --- app/controllers/my_requests.py | 82 +++- app/controllers/new_requests_controller.py | 2 +- app/seeds/users.py | 2 +- app/templates/my_cases.html | 107 ----- app/templates/my_requests.html | 441 +++++++++++++++++---- testfiles/valid_csv.csv | 12 +- 6 files changed, 433 insertions(+), 213 deletions(-) delete mode 100644 app/templates/my_cases.html diff --git a/app/controllers/my_requests.py b/app/controllers/my_requests.py index bc818f2..c7e9c40 100644 --- a/app/controllers/my_requests.py +++ b/app/controllers/my_requests.py @@ -1,12 +1,13 @@ -from flask import Blueprint, render_template +from flask import request, Blueprint, render_template from flask import redirect, url_for from flask_login import current_user from flask_wtf import FlaskForm from wtforms import StringField, IntegerField, SubmitField from wtforms.fields import DateField - from app import db -from app.models import Case +from app.models import Case, User, PacketReturnStatus, Decision +from flask import jsonify +from datetime import datetime # from wtforms.ext.sqlalchemy.fields import QuerySelectField @@ -30,28 +31,71 @@ class RequestForm(FlaskForm): submit = SubmitField('Save Changes') -@my_req_bp.route('/my-requests', methods=['GET', 'POST']) +@my_req_bp.route('/my_cases', methods=['GET', 'POST']) def view_requests(): - requests_data = Cases.query.order_by(Cases.id).all() + cases = User.query.get(current_user.id).user_cases + return render_template('my_requests.html', cases=cases, user=current_user) + +@my_req_bp.route('/my_cases/edit/', methods=['POST']) +def edit_case(): + data = request.json + num_children_enrolled = data.get('numChildrenEnrolled') + + print(num_children_enrolled) + decision_date_str = data.get('decisionDate') + packet_received_date_str = data.get('packetReceivedDate') + case_id = data.get('caseId') + case_to_edit = Case.query.filter_by(id=case_id).first() - forms = [] + if not case_to_edit: + return jsonify({"status": "Error", "message": "Case not found"}), 404 - for request_data in requests_data: - form = RequestForm(obj=request_data) - forms.append((request_data.id, form)) + outreach_date = case_to_edit.outreach_date + if num_children_enrolled != "": + try: + int(num_children_enrolled) + except: + return jsonify({"status": "Error", "message": "no. of children enrolled must be integer"}), 400 + num_children_enrolled = int(num_children_enrolled) if num_children_enrolled != "" else 0 - return render_template('my_requests.html', forms=forms, user=current_user) + try: + decision_date = datetime.strptime( + decision_date_str, '%Y-%m-%d') if decision_date_str and decision_date_str.lower() != 'none' else None + packet_received_date = datetime.strptime( + packet_received_date_str, '%Y-%m-%d') if packet_received_date_str and packet_received_date_str.lower() != 'none' else None + except ValueError as e: + return jsonify({"status": "Error", "message": "Decision/Package dates must be valid dates"}), 400 + print(decision_date, packet_received_date) + # Validate that decision and packet_received_date are not before outreach_date + if decision_date and decision_date.date() < outreach_date: + return jsonify({"status": "Error", "message": "Decision date cannot be before outreach date"}), 400 + if packet_received_date and packet_received_date.date() < outreach_date: + return jsonify({"status": "Error", "message": "Packet received date cannot be before outreach date"}), 400 -@my_req_bp.route('/my-requests/', methods=['POST']) -def update_request(request_id): - request_data = Cases.query.get_or_404(request_id) - form = RequestForm(obj=request_data) + # Get the case ID from the data + case_to_edit.packet_return_status = data.get('packetReturnStatus') + case_to_edit.packet_received_date = data.get('packetReceivedDate') + case_to_edit.decision = data.get('decision') + case_to_edit.num_children_enrolled = num_children_enrolled + case_to_edit.decision_date = decision_date + case_to_edit.not_enrolled_reason = data.get('notEnrolledReason') - if form.validate_on_submit(): - form.populate_obj(request_data) + try: db.session.commit() - print(f"Updating request {request_id} with data: {form.data}") + return jsonify({"status": "OK"}), 200 + except Exception as e: + return jsonify({"status": "Error", "message": e}), 400 + +# @my_req_bp.route('/my-requests/', methods=['POST']) +# def update_request(request_id): +# request_data = Case.query.get_or_404(request_id) +# form = RequestForm(obj=request_data) + +# if form.validate_on_submit(): +# form.populate_obj(request_data) +# db.session.commit() +# print(f"Updating request {request_id} with data: {form.data}") - # Redirect to avoid form resubmission on page refresh - return redirect(url_for('my-requests.view_requests')) +# # Redirect to avoid form resubmission on page refresh +# return redirect(url_for('my-requests.view_requests')) diff --git a/app/controllers/new_requests_controller.py b/app/controllers/new_requests_controller.py index 02b6bba..38e1690 100644 --- a/app/controllers/new_requests_controller.py +++ b/app/controllers/new_requests_controller.py @@ -50,7 +50,7 @@ def populateDatabase(upload_file, file_path): except Exception as e: return jsonify({'message': 'Unsupported file format', 'error': str(e)}), 501 - df = df.iloc[:, :5] + #df = df.iloc[:, :5] df.rename(columns={'Outreach_Date': 'outreach_date'}, inplace=True) valid_data, invalid_data = validateData(df) diff --git a/app/seeds/users.py b/app/seeds/users.py index 484a62b..87827a3 100644 --- a/app/seeds/users.py +++ b/app/seeds/users.py @@ -1,7 +1,7 @@ from werkzeug.security import generate_password_hash from app import db -from app.models import User, Role +from app.models import User, Role, Case import logging import uuid diff --git a/app/templates/my_cases.html b/app/templates/my_cases.html deleted file mode 100644 index cf6a233..0000000 --- a/app/templates/my_cases.html +++ /dev/null @@ -1,107 +0,0 @@ -{% extends 'base.html' %} - -{% block header %} -

{% block title %}My Cases{% endblock %}

-{% endblock %} - - -{% block content %} - - - - - - - - {% request_id, form in forms %} - - - - - - - -
-
-

Edit Case Information

-

Case Number: {{ request_id }}

- - × - - -
-
-
- -
- -
- -
- -
- -
- -
- -
- -
- -
- -
- -
- -
- -
- -
- -
- -
- -
- -
- -
- - - -
-
-
-
- {% endfor %} -
IDFirst NameLast NameAction
{{ form.customer_id }}{{ form.first_name }}{{ form.last_name }} - Edit -
-{% endblock %} \ No newline at end of file diff --git a/app/templates/my_requests.html b/app/templates/my_requests.html index 760b547..c748e64 100644 --- a/app/templates/my_requests.html +++ b/app/templates/my_requests.html @@ -1,97 +1,374 @@ - - - - My Requests - - + Home Page + + + + + + + + + + + -
-
- {% for request_id, form in forms %} -
-
-
-
-
Request ID: {{ request_id }}
-

{{ form.customer_id.label }}: {{ form.customer_id() }}

-

{{ form.first_name.label }}: {{ form.first_name() }}

-

{{ form.last_name.label }}: {{ form.last_name() }}

-

{{ form.num_of_children.label }}: {{ form.num_of_children() }}

- {{ form.csrf_token }} - {{ form.hidden_tag() }} - -
-
-
-
- {% if loop.index % 3 == 0 %} -
- {% endif %} - {% endfor %} -
-
- - - - - - - - + .hidden-assign-button { + display: none; + } + +

Cases

+
+ + + + + + + + + + + + + + + {% for case in cases %} + + + + + + + + + {% endfor %} + +
IDFirst NameLast NameNo.of ChildrenOutreach DateActions
{{ case.customer_id }}{{ case.first_name }}{{ case.last_name }}{{ case.num_of_children }}{{ case.outreach_date }} + +
+ + + + +
- --> + diff --git a/testfiles/valid_csv.csv b/testfiles/valid_csv.csv index f891db2..84cfb18 100644 --- a/testfiles/valid_csv.csv +++ b/testfiles/valid_csv.csv @@ -1,3 +1,9 @@ -customer_id,first_name,last_name,num_of_children,outreach_date -12159122,Emily,Johnson,5,2023-05-03 -35286967631,Ethan,Smith,2,2023-05-11 \ No newline at end of file +customer_id,first_name,last_name,num_of_children,outreach_date,packet_return_status,assigned_to_user +121159122,Emily,Johnson,5,2023-11-03,RETURNED,1 +3526967631,Ethan,Smith,2,2023-11-11,RETURNED,1 +4526967631,Ethan,Smith,2,2023-11-12,RETURNED,2 +6526967631,Ethan,Smith,2,2023-11-13,RETURNED,2 +526967631,Ethan,Smith,2,2023-11-14,RETURNED,2 +326967631,Ethan,Smith,2,2023-11-15,RETURNED,2 +5967631,Ethan,Smith,2,2023-11-16,RETURNED,2 +526631,Ethan,Smith,2,2023-11-10,RETURNED,2 From f5377c2bb24e21be0b9dbebdddc4a25227616aab Mon Sep 17 00:00:00 2001 From: Atharva Phand <143048460+ahphand-tamu@users.noreply.github.com> Date: Sat, 18 Nov 2023 01:42:21 +0000 Subject: [PATCH 02/21] my cases 2 --- app/templates/my_requests.html | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/app/templates/my_requests.html b/app/templates/my_requests.html index c748e64..c94bc29 100644 --- a/app/templates/my_requests.html +++ b/app/templates/my_requests.html @@ -65,6 +65,13 @@

Cases

{{ case.last_name }} {{ case.num_of_children }} {{ case.outreach_date }} + {{ case.packet_return_status.value }} + {{ case.packet_received_date }} + {{ case.staff_initials }} + {{ case.decision.value }} + {{ case.num_children_enrolled }} + {{ case.decision_date }} + {{ case.not_enrolled_reason }} - - + - - +{% endblock %} - return daysDifference; - } - }); - - - - From db3d42710c23aec0fa7f887f0a0aa64f81e12071 Mon Sep 17 00:00:00 2001 From: Daehee Han Date: Sun, 19 Nov 2023 21:30:15 -0600 Subject: [PATCH 06/21] cases formatted --- app/static/css/cases.css | 21 ++ app/templates/base.html | 2 +- app/templates/cases.html | 486 +++++++++++++++++------------------- app/templates/my_cases.html | 179 +++++++------ 4 files changed, 334 insertions(+), 354 deletions(-) create mode 100644 app/static/css/cases.css diff --git a/app/static/css/cases.css b/app/static/css/cases.css new file mode 100644 index 0000000..de83e4b --- /dev/null +++ b/app/static/css/cases.css @@ -0,0 +1,21 @@ +.hidden { + display: none; +} +.purple-table { + background-color: #662484; + color: white; +} + +.purple-button { + background-color: #662484; + color: white; + border: none; +} + +.purple-button:hover { + background-color: #501c68; +} + +.hidden-assign-button { + display: none; +} \ No newline at end of file diff --git a/app/templates/base.html b/app/templates/base.html index 6ee19b5..ef03b24 100644 --- a/app/templates/base.html +++ b/app/templates/base.html @@ -15,7 +15,7 @@ - {% block addhead %}{% endblock %} + {% block addhead %}{% endblock %} diff --git a/app/templates/cases.html b/app/templates/cases.html index 292bde9..181263f 100644 --- a/app/templates/cases.html +++ b/app/templates/cases.html @@ -1,48 +1,14 @@ - - - - Home Page - - - - - - - - - - - - - -
- {% include 'include/_navbar.html' %} -
-
-

ChildCare Enrollment Management System

-
- -

Cases

+{% block content %}
@@ -138,34 +104,34 @@

Cases

-
- - + return daysDifference; + } + }); + +{% endblock %} \ No newline at end of file diff --git a/app/templates/my_cases.html b/app/templates/my_cases.html index 669b65f..6d47e56 100644 --- a/app/templates/my_cases.html +++ b/app/templates/my_cases.html @@ -10,107 +10,100 @@

{% block title %}My Cases{% endblock %}

{% block content %}
-
-
-

ChildCare Enrollment Management System

-
+ + + + + + + + + + + + + + + + + + + + {% for case in cases %} + + + + + + + + + + + + + + + + {% endfor %} + +
IDFirst NameLast NameNo.of ChildrenOutreach DateActions
{{ case.customer_id }}{{ case.first_name }}{{ case.last_name }}{{ case.num_of_children }}{{ case.outreach_date }} + +
-
- - - - - - - - - - - - - - - - - - - - {% for case in cases %} - - - - - - - - - - - - - - - - {% endfor %} - -
IDFirst NameLast NameNo.of ChildrenOutreach DateActions
{{ case.customer_id }}{{ case.first_name }}{{ case.last_name }}{{ case.num_of_children }}{{ case.outreach_date }} - -
- -