From 83ecf65abf310995b7d583ec3aa0f2b6e6d238fe Mon Sep 17 00:00:00 2001 From: Macbook Date: Sat, 20 Dec 2025 23:22:51 +0300 Subject: [PATCH] =?UTF-8?q?=D0=BA=D0=BE=D0=BC=D0=BC=D0=B5=D0=BD=D1=82?= =?UTF-8?q?=D0=B0=D1=80=D0=B8=D0=B8=20=D0=BD=D0=B0=20=D0=B8=D0=BD=D1=81?= =?UTF-8?q?=D1=82=D1=80=D1=83=D0=BC=D0=B5=D0=BD=D1=82=D0=B0=D1=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../__pycache__/toolbox.cpython-313.pyc | Bin 4869 -> 4924 bytes .../__pycache__/toolkit.cpython-313.pyc | Bin 13792 -> 15125 bytes api/routers/toolkit.py | 18 ++ api/static/js/index.js | 147 +++++++++++++ db/__pycache__/initialize.cpython-313.pyc | Bin 11319 -> 13778 bytes .../__pycache__/actions.cpython-313.pyc | Bin 26557 -> 26563 bytes .../__pycache__/toolkit.cpython-313.pyc | Bin 16824 -> 18932 bytes db/handlers/toolkit.py | 27 ++- db/initialize.py | 197 +++++++++++++----- .../__pycache__/toolkit.cpython-313.pyc | Bin 2721 -> 2732 bytes db/schemas/toolkit.py | 12 +- 11 files changed, 336 insertions(+), 65 deletions(-) diff --git a/api/routers/__pycache__/toolbox.cpython-313.pyc b/api/routers/__pycache__/toolbox.cpython-313.pyc index 4b966de4f50c74067d2ec774fe522766af15a142..b604a3713d621dfcf8f8222501a78bb203386e6f 100644 GIT binary patch delta 297 zcmZow+oQ(&nU|M~0SI3GbI3fhk@p=pn1z%9&rlh3*`vn1}Q)Vrckam zBLhPU69a>9B?Ch!TQI*aF9Sm!n{NXH12=;LP$ZgnvOb@*xIidlFq1k^Pbi}bL$F{d z8y`ck5Ku0WPgGLam=!210+Z!n@Cz_!PGi&*o!rkC&3B6@wWuh+$TzjPI59nS@+-dS zjO>$}_?1~%vQsOICokbo;j#dlYX-!{ev^d+ZV7x4V&IWlAii8?q0C~rtK9mNKMNEH z3o#zHXLJ={JHjC5D#Un1%G_0Ga+%;98IazU44;7{Ly;7axW!?Uo1apelWJGwJXufZ JGK&*X5CGswLN)*Z delta 236 zcmdm^)~d$)nU|M~0SI0lvCUk*k@p=pW8daK+-{7Fg_E6mk7$H)Xn;Wd%{|$ZPui6~lrfk|9jG>xQH3E`Ae4=dAy_b)8>}59 z%4*68VFSg5j9G!Ig<+~W82p^gnbR0GMJBK0i=HgRKb?_n@+yAi$(Q+)xy*pNK)Bd- zvV*`a_U}RrJi;C3leGj3gjpF6+cUZ{vmIgJbY*2c!fWozI(e<&97eOrUP4lgj+0Y` KF0(iQwE_UFU@r0i diff --git a/api/routers/__pycache__/toolkit.cpython-313.pyc b/api/routers/__pycache__/toolkit.cpython-313.pyc index 324d490ff4855456199254c1381b9c197f776b75..db09add1286cbd5fcd6361e719bfd0dcca0b0aee 100644 GIT binary patch delta 1364 zcmZ8gZA@EL7(VCT-rLd({cdkRfZMWu(6y{Bf{blQu-#CZu+bqpj01sA#-Q72Q5K^R z{IO=4f#&GIm?-hb!Vf<%HzqStV}yT3(^?D@iQ&iom?-H)6O;MFa|-CfxjD~y&hx(K zIUjlN*67Xdn5&m(^I|_NTsHnEgZ4TkYVI;u376VbV}F?uVk;7PrUs z%}m^32meJR8euErRoQLFBh?3%IiDB1_cM2$N*I^o&XSSK4)8JNR>`6^?k5)J!v`$f z7X$vFyvBTAA*e!w$+5BF@$_E-Y_mCxU**0a-)Ffm^E0{S{B-V4eilodg-I|N>W?$9 z8b_o$TrWBCHvy-*5$>MA39vfYiglJU{IOJlt1T^L-i?nsU7WjzZDes?6!C;pa=JjD zX8+JiFyI1UobTHgK(`Jrdreb4{QtfZh?A5yz6ZMZSOO+M3oC&Hbb%h2Vw@nwNWi_P zHL(fkS9PK&F-0N;vIjr`3Wo@62z&QEH$0g}L8AD}kd{V06uboRR*0V}CuBoCFf

q&E)~`eoU8Sc`a#!xTmzdcZO!x(MMmJPn<~w$a6`yh+SXLjy~$kr zd`GrpkuR8hYpU8!lenOKUwB7YJXNp;)~%tuHMA@gtS1VlmQ2}QgKa*L4J;%I2G6>| zpEvlI>I#OV8Re$lG}k-dm+f1$6wFh#>*iqI99(*~V1BfqZ_4nSqGw$U{~(5!ZC|$+ z#MA5g(?m2%WLIM(qbjO^&YIEQ7l7eu`1d`*v;*MoVason&z+ssX0%&cF{6D@R1*C` zktgXlwg05zWi9K|111^Cj! zbNH94dTxwlVA)(9WML9N?(%V0iEvvUcirJ2!aiTG;{_sYCPuAw7@q6-xI2~0$A zxTYR|>l<|qP>og_dXYju0YCpxouzSa?Qw33$g(_No9E5bgdQyQG=41xMHJvI3r82gcQT%IgA<;KZ%PEuKqVNsc2*5dRP;H!fBiH=T>knVK*$s%*Y&&c-MY3ap|85CQUi5y+!OAh#8Plmf&1 ZuZ0BHR3MWPh>Q13mbcuwnahfs5dc)Yc{>0A 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} +
+
+ +
+
+
+ Комментарий будет сохранен для этого инструмента +
+ +
+