Convert into MVC and optimize the code
This commit is contained in:
61
app/Controllers/report_controller.py
Normal file
61
app/Controllers/report_controller.py
Normal file
@@ -0,0 +1,61 @@
|
||||
from flask import request, render_template
|
||||
from flask_login import current_user
|
||||
from app import db
|
||||
from app.models import Task
|
||||
from app.service.logger import log_activity
|
||||
|
||||
|
||||
def generate_report_page_controller():
|
||||
|
||||
selected_district = request.args.get('district')
|
||||
selected_block = request.args.get('block')
|
||||
|
||||
# Get districts
|
||||
districts = [
|
||||
d[0] for d in db.session.query(Task.district).distinct().all()
|
||||
]
|
||||
|
||||
# Get blocks
|
||||
if selected_district:
|
||||
blocks = [
|
||||
b[0] for b in db.session.query(Task.block_name)
|
||||
.filter(Task.district == selected_district)
|
||||
.distinct().all()
|
||||
]
|
||||
else:
|
||||
blocks = []
|
||||
|
||||
# Get main tasks
|
||||
if selected_block:
|
||||
main_tasks = db.session.query(Task.task_name).filter(
|
||||
Task.serial_number.isnot(None),
|
||||
Task.block_name == selected_block
|
||||
).distinct().all()
|
||||
|
||||
main_tasks = [
|
||||
task[0].strip()
|
||||
.replace(",", "")
|
||||
.replace("(", "")
|
||||
.replace(")", "")
|
||||
.replace(".", "")
|
||||
.replace("&", "")
|
||||
.replace("\n", "")
|
||||
for task in main_tasks
|
||||
]
|
||||
else:
|
||||
main_tasks = []
|
||||
|
||||
log_activity(
|
||||
current_user.username,
|
||||
"Report Page",
|
||||
f"district={selected_district}, block={selected_block}"
|
||||
)
|
||||
|
||||
return render_template(
|
||||
'task_report.html',
|
||||
districts=districts,
|
||||
blocks=blocks,
|
||||
main_tasks=main_tasks,
|
||||
selected_district=selected_district,
|
||||
selected_block=selected_block
|
||||
)
|
||||
Reference in New Issue
Block a user