From f127435b40c038ac8a9f305e47af64c028d733ee Mon Sep 17 00:00:00 2001 From: Kseninia Mikhaylova Date: Tue, 19 Nov 2024 13:16:44 +0300 Subject: [PATCH] format status --- app/main.py | 34 +++++++++++++++++++++++++++++----- templates/deal_tab.html | 4 ++-- 2 files changed, 31 insertions(+), 7 deletions(-) diff --git a/app/main.py b/app/main.py index 447fbb2..fabab44 100644 --- a/app/main.py +++ b/app/main.py @@ -14,18 +14,34 @@ from app.constants import * app = FastAPI() templates = Jinja2Templates(directory="templates") try: - locale.setlocale(locale.LC_TIME, 'ru_RU') + locale.setlocale(locale.LC_TIME, "ru_RU") except Exception as e: logger.error(e) + # Создаем кастомный фильтр для форматирования дат def format_datetime(value, format="%d %B %Y, %H:%M:%S"): """Форматирует дату в человекочитаемый вид.""" date = datetime.fromisoformat(value) return date.strftime(format) +statuses = [] +def get_statuses(): + get_status_hook = f"{WEBHOOK}/crm.status.list" + status_data = requests.get(get_status_hook) + status_data_json = status_data.json() + global statuses + statuses = status_data_json["result"] + +# Создаем кастомный фильтр для форматирования дат +def format_status(value): + res = [r["NAME"] for r in statuses if r["ID"] == value] + return res[0] if len(res) else value + + # Регистрируем фильтр в Jinja2Templates -templates.env.filters['format_datetime'] = format_datetime +templates.env.filters["format_status"] = format_status +templates.env.filters["format_datetime"] = format_datetime @app.get("/") @@ -142,17 +158,25 @@ async def deal_tab( deal_id = 49 select = [ - 'ID', 'TITLE', 'RESPONSIBLE_ID', 'CREATED_DATE', 'DEADLINE', 'STAGE_ID', 'GROUP_ID' + "ID", + "TITLE", + "RESPONSIBLE_ID", + "CREATED_DATE", + "DEADLINE", + "STATUS", + "GROUP_ID", ] get_task_hook = f"{WEBHOOK}/tasks.task.list?{'&'.join([f'select[]={s}' for s in select])}&filter[UF_CRM_TASK]=D_{deal_id}" task_data = requests.get(get_task_hook) task_data_json = task_data.json() - + # logger.info(task_data_json["result"]["tasks"]) parts = WEBHOOK.split("/") domain = f"https://{parts[2]}" return templates.TemplateResponse( - request=request, name="deal_tab.html", context={"tasks": task_data_json["result"]["tasks"], "domain":domain} + request=request, + name="deal_tab.html", + context={"tasks": task_data_json["result"]["tasks"], "domain": domain}, ) return {"status": "success", "result": task_data_json} diff --git a/templates/deal_tab.html b/templates/deal_tab.html index 20a75da..2bd20f2 100644 --- a/templates/deal_tab.html +++ b/templates/deal_tab.html @@ -10,7 +10,7 @@ ID Название - Стадия + Статус Исполнитель Дата создания Крайний срок @@ -23,7 +23,7 @@ {{ item.title }} - {{ item.stageId }} + {{ item.status | format_status }} {{ item.responsible.name }} {{ item.createdDate | format_datetime }} {{ item.deadline | format_datetime}}