diff --git a/api/routers/__pycache__/toolbox.cpython-313.pyc b/api/routers/__pycache__/toolbox.cpython-313.pyc index 4b966de..b604a37 100644 Binary files a/api/routers/__pycache__/toolbox.cpython-313.pyc and b/api/routers/__pycache__/toolbox.cpython-313.pyc differ diff --git a/api/routers/__pycache__/toolkit.cpython-313.pyc b/api/routers/__pycache__/toolkit.cpython-313.pyc index 324d490..db09add 100644 Binary files a/api/routers/__pycache__/toolkit.cpython-313.pyc and b/api/routers/__pycache__/toolkit.cpython-313.pyc differ diff --git a/api/routers/toolkit.py b/api/routers/toolkit.py index 95fe0e3..c37001d 100644 --- a/api/routers/toolkit.py +++ b/api/routers/toolkit.py @@ -82,6 +82,24 @@ async def toolkit_request( return response +@router.post("/comment", summary="Добавление комментария") +async def add_comment(reqData: dict = Depends(requestDict)): + logger.info(f"Добавление комментария") + response = {"status": "error"} + try: + logger.info(f"Добавление комментария") + logger.info(reqData.get("body")) + toolkitId = int(reqData.get("body").get("toolkitId")) + comment = reqData.get("body").get("commentText") + userId = int(reqData.get("body").get("userId")) + result = await ToolkitHandler.addComment(toolkitId, userId, comment) + response = handleResult(result, response) + except Exception as e: + logger.error(e) + finally: + return response + + @router.post("/fill_prepare", summary="Подготовка заполнения ящика") async def fill_toolbox(): logger.info(f"Подготовка заполнения ящика") diff --git a/api/static/js/index.js b/api/static/js/index.js index 3f51fe6..803ce47 100644 --- a/api/static/js/index.js +++ b/api/static/js/index.js @@ -3823,6 +3823,7 @@ async function getToolkitStocks(toolkitId) { return resp.data; } +// Функция показа модального окна с деталями инструмента // Функция показа модального окна с деталями инструмента async function showToolkitDetailsModal(toolkitId) { const modalId = 'toolkitDetailsModal'; @@ -3920,6 +3921,36 @@ async function showToolkitDetailsModal(toolkitId) { let toolkitStocksData = null; let isStocksLoading = false; + // Форматирование даты комментария + let commentDateInfo = ''; + if (toolkitData.comment_at) { + const commentDate = new Date(toolkitData.comment_at); + commentDateInfo = ` +
+ + Последнее изменение: ${commentDate.toLocaleDateString('ru-RU')} ${commentDate.toLocaleTimeString('ru-RU', { hour: '2-digit', minute: '2-digit' })} +
+ `; + } else { + commentDateInfo = ` +
+ + Комментарии еще не оставляли +
+ `; + } + + // Информация о пользователе, оставившем комментарий + let commentUserInfo = ''; + if (toolkitData.comment_user_data && toolkitData.comment_user_data.username) { + commentUserInfo = ` +
+ + Автор: ${toolkitData.comment_user_data.username} +
+ `; + } + modal.innerHTML = ` + + +
+
Комментарий
+
+ ${commentDateInfo} + ${commentUserInfo} +
+
+ +
+
+
+ Комментарий будет сохранен для этого инструмента +
+ +
+