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

80 lines
1.7 KiB
Python

from flask import request, jsonify
from flask_login import current_user
from app import db
from app.models import Task, WorkDetail
from app.service.logger import log_activity
def get_blocks_by_district_controller():
district = request.args.get('district')
if not district:
return jsonify({'blocks': []})
blocks = (
db.session.query(Task.block_name)
.filter(Task.district == district)
.distinct()
.all()
)
return jsonify({'blocks': [b[0] for b in blocks]})
def get_tasks_by_block_controller():
block = request.args.get('block')
if not block:
return jsonify({'tasks': []})
tasks = (
db.session.query(Task.task_name)
.filter(Task.block_name == block)
.distinct()
.all()
)
task_list = [
task[0].strip()
.replace(",", "")
.replace("(", "")
.replace(")", "")
.replace(".", "")
.replace("&", "")
.replace("\n", "")
for task in tasks
]
log_activity(
current_user.username,
"Fetch Tasks",
f"Fetched tasks for block {block}"
)
return jsonify({'tasks': task_list})
def get_villages_for_block(block_name):
villages = (
db.session.query(WorkDetail.name_of_village)
.filter(WorkDetail.block == block_name)
.distinct()
.order_by(WorkDetail.name_of_village)
.all()
)
return [v[0] for v in villages if v[0]]
def get_villages_by_block_controller():
block = request.args.get('block')
villages = get_villages_for_block(block)
log_activity(
current_user.username,
"Fetch Villages",
f"Fetched villages for block {block}"
)
return jsonify({'villages': villages})