Convert into MVC and optimize the code
This commit is contained in:
80
app/Controllers/dropdown_controller.py
Normal file
80
app/Controllers/dropdown_controller.py
Normal file
@@ -0,0 +1,80 @@
|
||||
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})
|
||||
Reference in New Issue
Block a user