Files
Client-Billing-software/app/Controllers/report_controller.py
2026-04-15 12:05:28 +05:30

61 lines
1.5 KiB
Python

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
)