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 )