From fa42ef17428032c1f5c18a6f0badc1a680220fde Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=92=D0=B0=D1=81=D0=B8=D0=BB=D1=8C=20=D0=A1=D0=B2=D1=96?= =?UTF-8?q?=D0=B4=D1=80=D1=96=D0=BA?= Date: Tue, 27 Jun 2023 13:18:22 +0300 Subject: [PATCH] add k2site compatibility --- __pycache__/main.cpython-310.pyc | Bin 807 -> 1010 bytes __pycache__/routes.cpython-310.pyc | Bin 532 -> 366 bytes components/__pycache__/__init__.cpython-310.pyc | Bin 166 -> 168 bytes components/k2adm/.gitignore | 5 - components/k2adm/__init__.py | 0 components/k2adm/k2adm/__init__.py | 0 .../k2adm/languages/en/LC_MESSAGES/messages.mo | Bin 409 -> 0 bytes .../k2adm/languages/en/LC_MESSAGES/messages.po | 23 --- .../k2adm/languages/uk/LC_MESSAGES/messages.mo | Bin 510 -> 0 bytes .../k2adm/languages/uk/LC_MESSAGES/messages.po | 24 --- components/k2adm/k2adm/models.py | 98 ------------ components/k2adm/k2adm/views.py | 104 ------------- components/k2adm/reguirments-components.txt | 0 components/k2adm/requirements.txt | 47 ------ components/k2adm/setup.py | 15 -- components/k2auth/.gitignore | 8 - components/k2auth/README.md | 45 ------ components/k2auth/__init__.py | 0 components/k2auth/k2auth/__init__.py | 0 components/k2auth/k2auth/models.py | 112 -------------- components/k2auth/k2auth/views.py | 66 -------- components/k2auth/reguirments-components.txt | 0 components/k2auth/requirements.txt | 47 ------ components/k2auth/setup.py | 15 -- .../k2test/__pycache__/__init__.cpython-310.pyc | Bin 173 -> 175 bytes .../k2test/__pycache__/__init__.cpython-310.pyc | Bin 180 -> 182 bytes .../k2test/__pycache__/views.cpython-310.pyc | Bin 2065 -> 2067 bytes db/database.db | Bin 36864 -> 36864 bytes k2/__pycache__/__init__.cpython-310.pyc | Bin 158 -> 160 bytes k2/__pycache__/k2admmenu.cpython-310.pyc | Bin 3221 -> 3223 bytes k2/__pycache__/k2cfg.cpython-310.pyc | Bin 2757 -> 2781 bytes k2/__pycache__/k2comp.cpython-310.pyc | Bin 1978 -> 1980 bytes k2/__pycache__/k2obj.cpython-310.pyc | Bin 509 -> 511 bytes k2/__pycache__/k2rout.cpython-310.pyc | Bin 14310 -> 14779 bytes k2/k2cfg.py | 3 +- k2/k2rout.py | 168 +++++++++++++-------- languages/en/LC_MESSAGES/messages.mo | Bin 823 -> 841 bytes languages/en/LC_MESSAGES/messages.po | 23 ++- languages/pl/LC_MESSAGES/messages.mo | Bin 0 -> 903 bytes languages/pl/LC_MESSAGES/messages.po | 34 +++++ languages/uk/LC_MESSAGES/messages.mo | Bin 991 -> 1011 bytes languages/uk/LC_MESSAGES/messages.po | 28 ++-- main.py | 12 +- routes.py | 8 +- templates/base.html | 2 +- templates/component-info.html | 7 +- templates/dashboard-add.html | 90 +++++++++++ templates/dashboard-list.html | 127 ++++++++++++++++ templates/dashboard.html | 50 ++++-- 49 files changed, 437 insertions(+), 724 deletions(-) delete mode 100644 components/k2adm/.gitignore delete mode 100644 components/k2adm/__init__.py delete mode 100644 components/k2adm/k2adm/__init__.py delete mode 100644 components/k2adm/k2adm/languages/en/LC_MESSAGES/messages.mo delete mode 100644 components/k2adm/k2adm/languages/en/LC_MESSAGES/messages.po delete mode 100644 components/k2adm/k2adm/languages/uk/LC_MESSAGES/messages.mo delete mode 100644 components/k2adm/k2adm/languages/uk/LC_MESSAGES/messages.po delete mode 100644 components/k2adm/k2adm/models.py delete mode 100644 components/k2adm/k2adm/views.py delete mode 100644 components/k2adm/reguirments-components.txt delete mode 100644 components/k2adm/requirements.txt delete mode 100644 components/k2adm/setup.py delete mode 100644 components/k2auth/.gitignore delete mode 100644 components/k2auth/README.md delete mode 100644 components/k2auth/__init__.py delete mode 100644 components/k2auth/k2auth/__init__.py delete mode 100644 components/k2auth/k2auth/models.py delete mode 100644 components/k2auth/k2auth/views.py delete mode 100644 components/k2auth/reguirments-components.txt delete mode 100644 components/k2auth/requirements.txt delete mode 100644 components/k2auth/setup.py create mode 100644 languages/pl/LC_MESSAGES/messages.mo create mode 100644 languages/pl/LC_MESSAGES/messages.po create mode 100644 templates/dashboard-add.html create mode 100644 templates/dashboard-list.html diff --git a/__pycache__/main.cpython-310.pyc b/__pycache__/main.cpython-310.pyc index 6e824b9f3d9fa325138547f36d78314ca86668a9..f42685141e3a8e0c10dd53e7ab4e350334cea725 100644 GIT binary patch delta 410 zcmZ3^_KBS@pO=@50SK=3&q~?PJdsa^@zX@@zIx6q(Nyj%-V_cSh7`^et`zPRo;l25 z5ndaHRL(3hFq;p^28uQ_Mv142XGx@T17##r_i>sSs zs82||kH52{kLxXV*Sz$c%;Jnv5unZsi!bcD*l=OP#pxIJUTnPBb79wo4Y$|=@^gx_ zGc}oSF{S3+Vk*tP#Z-`UiyvZ|kE5S^sH3}U@GUV^<3l`sU8DT{T!D_@&&f|toE*n! z$S5;;0^?h0ft1v=#L}FS_?*PN^wPxi)LR@SnYpP|`FW|6YnXJob%8D^0ujG#CU0TV zU`@_RP0X8opGnTl2q?(Iz{3cHOgxMntUQcdj6AFyj6lc?5@ljyVq{|E`3n*g0E%%i J2{E$#2LK;jazFq8 delta 176 zcmeywzMPFOpO=@50SH_UPD;7KG?7n+@x(;!K6~a=?qh(3TDvco>*X~uE}_dE!!xuv?Qa7T_3^#3b6uNDY;c_ zAd!?@KcLc$Az@K+$@#ej`FW{%CB=FWr7)^2Gqt?9hz;nrC>c~mDY+muKoX*a9jIg_ qLlMXuVB(j}WMM`P=DgJM$qtMPVnRT19!4HUE+FP(@dteA@ delta 31 lcmZ3%xQvlIpO=@50SH_UPMXMV!{|BDLxVXlwR~c!F#vQP2rmEt diff --git a/components/k2adm/.gitignore b/components/k2adm/.gitignore deleted file mode 100644 index 04cda04..0000000 --- a/components/k2adm/.gitignore +++ /dev/null @@ -1,5 +0,0 @@ - idea -__pycache__/ -*/__pycache__/ -*.py[cod] -.pyc diff --git a/components/k2adm/__init__.py b/components/k2adm/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/components/k2adm/k2adm/__init__.py b/components/k2adm/k2adm/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/components/k2adm/k2adm/languages/en/LC_MESSAGES/messages.mo b/components/k2adm/k2adm/languages/en/LC_MESSAGES/messages.mo deleted file mode 100644 index 54827c7cb4840029cbf751cf499f2be860d9d3fe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 409 zcmZXPJx&8L5Jo3t1Cb~~LXn2THC;%cp`u1Y2$F_oWqC(gOJ1+!ag-C#(Q+5=z#Vc2 zZop^75=b8T&67X*_b{tI33Udpz#5!`4=@8?+27fR?4Rsva9lTsFOXfs6Zjq;!;kO? zUc*!PEzcdC&JXY<{0?K#2^fM3qe%mU8@ZF(wAMBCf{N&-jFx4zDx=#n zx}#{L`Dh####1J=%sfo^k58&sMxF6vP$RC RD?Xxh(^+pN1|4nh=@+^jT^0ZU diff --git a/components/k2adm/k2adm/languages/en/LC_MESSAGES/messages.po b/components/k2adm/k2adm/languages/en/LC_MESSAGES/messages.po deleted file mode 100644 index 207f11b..0000000 --- a/components/k2adm/k2adm/languages/en/LC_MESSAGES/messages.po +++ /dev/null @@ -1,23 +0,0 @@ -msgid "title_menu_items" -msgstr "Site administration" - -msgid "menu_items_child_1" -msgstr "Password change" - -msgid "menu_items_child_2" -msgstr "New user" - -msgid "menu_items_child_3" -msgstr "Users" - - -msgid "menu_items_child_4" -msgstr "Users are clients" - - -msgid "menu_items_child_5" -msgstr "Roles" - - -msgid "menu_items_child_6" -msgstr "Access to the menu" \ No newline at end of file diff --git a/components/k2adm/k2adm/languages/uk/LC_MESSAGES/messages.mo b/components/k2adm/k2adm/languages/uk/LC_MESSAGES/messages.mo deleted file mode 100644 index 0272e33ca3ff8f5de9e63fc604d398233613b8b6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 510 zcmZ{eyGjF55QaxxFJL1n42a-qEVT35_!!!6p$je~Hd*^57J`Uc=n8`1BOF9w*JL*j zkmesqopxSo+apO=@50SGusXHDd`VGNq+p~0G*lbV<}vDgX#eU=D@ delta 31 lcmZ3_xR#MSpO=@50SH_UPMXMV!x%8pLxVXlwR~c!6##Y?2ulC} diff --git a/components/k2test/k2test/__pycache__/__init__.cpython-310.pyc b/components/k2test/k2test/__pycache__/__init__.cpython-310.pyc index d22ac90da52074b0a15633ba5a76ca2268b9ef81..7e53605125c0f70800df5314885b111174c8cc8c 100644 GIT binary patch delta 33 ncmdnOxQ&rJpO=@50SGusXHDd`VT_#Up~0G*lbV<}vDgs+f4B&u delta 31 lcmdnSxP_5BpO=@50SH_UPMXMV!x%o%LxVXlwR~c!BLH{~2xkBQ diff --git a/components/k2test/k2test/__pycache__/views.cpython-310.pyc b/components/k2test/k2test/__pycache__/views.cpython-310.pyc index bf1b147fd30ca3ddb8a5a628deb30aa36e1b4722..13e8056c01202c2ea4a89266caaaa7676b3c8177 100644 GIT binary patch delta 37 rcmbOzFj;^*pO=@50SGusXKmzu!^9Xi`3I8*YjRF%V%}zD=65Uru5k*3 delta 35 pcmbO%Fj0UzpO=@50SKBuP1?x)hKVs`@((5r=DgJM&8p1rSOBgF3b+6O diff --git a/db/database.db b/db/database.db index cc755d79f1809aa48c354ac885e4221e191f6b8d..5d21e314d370e6e23113ec5c99ab732e7ffb7b92 100644 GIT binary patch delta 114 zcmZozz|^pSX@WFk_e2?I#_o*?OXPVN`8^r?>(69_YxiIZ9R~h8{C76R~aOXPW&dD9vAJ^8|T)4AVm78H2Ez4?Q7IU{dl4l|dp zxU0CoBWI)kqdRLS;pO=@50SHbmnw3(qk#{|#xOhfMNr9EVzM+Mwo}sx35F61*7#A|uGLH3#$?DAEjI5LEnZ?;}u@)3%=9NsI#_Y=nat{v^ z7b72|%s)Qn$?usP7{wk delta 304 zcmcaBdQ_A*pO=@50SH_UPD-)e$h)3VOe~|Mq`*pF-_Xch&j1Jwtt<=-j3!@ZoXco8 zxsXYNIWM(*@;oLl9Vei+5{4AU6sBgTe%@Nf62=8gHH-@xYnj3sQW#i(u$h^WA&nw*oGn76r>(UuJWqTmS` delta 35 pcmdnPzl)zcpO=@50SH_UPTI)r#>i+tIfzk%IWM(*b3LOi8vvUw2;Kky diff --git a/k2/__pycache__/k2obj.cpython-310.pyc b/k2/__pycache__/k2obj.cpython-310.pyc index f2c786d3575948598f6beae6061252efc9c80472..2e67d3c9d350d7dc685a5fc0e65c2b30f74d92df 100644 GIT binary patch delta 36 qcmey%{GXXSpO=@50SGusXKm#6W@L1j9L}i0nw*oGm^ZnJu^IrWLJ6$^ delta 34 ocmey*{Fj+KpO=@50SH_UPTI)r&B$msIh;|0IWM(*atmWM0HECoasU7T diff --git a/k2/__pycache__/k2rout.cpython-310.pyc b/k2/__pycache__/k2rout.cpython-310.pyc index a37535e4dd4d173b61012dc6d7058b139ee5f337..1cb9695773e823e8e8c51d818c8f2c5d6498bbe4 100644 GIT binary patch delta 3806 zcmb7Hdu&tJ8NcWH`uZ8iIEe!x33-~BV23;)5K>+tyq8hJ3Z;X@_*@bvekAAKB+Rpy zGSU{Pc=bq?+KDb%HCEQGWlJYu6Kl~nRcldKrb$yhu@z}Asne>7KQ?u0*!LY5JKI3o zY~A1a&g;A1>zwbqe@y&HcO?o6>=OKnuDnRQ!slJ(K!1o^t4Pj(2Y~ladMzttC{xGO*2HRIxf*Jx*11dd^PQ+Tc)G~YsCE4 z8A7+w?P5oV7})_MJLxVQnY}D~WU`U}L}@UGqgp6F`&Xq^>1XXASw`9Y`QE)@6!QL0 z2EqhS7d(0!fFTW$X?aFUOO#M~N=iwafoqyjQ;LjB%xjnog(@gjuVk308C$>F!*4kk zajl>$wikHZMXnwxxo|KM(}JDRL^u@H*8vgHjc_71vM!?zx9AZ=OO_0`7@BSbenLw53i*z3s`d8MO*?B<=0RZADb;uI)KNhh|XPe!GNvZ}~E86_Hu5BOC+ z?WpnCU~R_Av?Cg08uJtOC|^)p#BV#?lM$HGQ5dVN5<6k2Iok&CZw5v|t?;0c^`8R# zKL$>E4fC{WSca@$lc@QEJVVlQN}jfXdrXs575*^^|0w&UxJo4aQz@-HKL0hA`F=F) zLyl>cT4%^fX+TPwPe`oy8R-b2Hdtj%DT13hE~k{V8D8v6t40B}r=%1~!P=Bc9j8_B zxKnt10mHaql?a;=y7~EnQmc;S7D?jE3#uB}R_G8EE6H^L1cj4S+0{x@%s|D~{(e1UIp_mFOW*4;o}yjv&MuLQ05Lh%cHa`|~iPW7vCSD_IDK zlA*ZCKvN{H8=+`4yOe*$Yny#(!3RW$R^G}6kl`SL;E!Ho;w7Rhd=`bVZ{m0iAnE6$ zUN660^g^QuzXLFqv4G=r@c!OQs)z}Oqih0U6k&|d6i<}(Bl!T;S%SBeTp+{z{gPtG zJf-=^B@<+b4|uD{OZ(k4Eq6uV+ar8ZO-x*CKbGeh0kDKYH^1s?W5X=7N=S~9MSYqG#1`KPLl#=QXo}1 zWv5&|r<(0(wrjKDh9MHlTTDcfh#plR95W(O2%nh2G>zp{%&1h0YH(els%!>9M8{`J zi|7#2ox-VS5zeA?9yils2?&v#^`GLs%a)Ssd_2%ZR`82~U2DB*lcA=du2=+B$Fv1< zoMlE%D==bO1lh`f43&~o=Hn(Jjn)~qA^Wrgk|E?XYU9tRuFt71n1cTOWwL}6B&pzr+Ff7}`H#ao} zT&y2;%pcP?u)7ukFH>QhjD=|<(NI|9&oy~>p3#T-*2tOnTQ0Q^?=4$?nIco*Sq zUfR}a{uz*e=lk0#RMk#oS>eapiuk!Ur9&p_U8mbcls_f!MNs3Tuk;IBl zNYl~`)Ir!oYFyHNaoI*}I3~l2I$r3inPiW{UiJh+H-gCB`TXUFu?7%NuK~g;$prrQ zUyH2VFexi4d~R5YJg0oB+*9oA4(@n_y};jF8O&y`A98usDzzWR*(6`L>Xh1p zj`- delta 3436 zcmbVOeQZQ&t)?Niz`rfHhQTDo(tJI6)s zKeP3I@7#0Gz3+V8bMAHfkC|X*)-0b3e?M1%@7w=ua2|W^do7*JXD#CM`25qZQw&mU zB@G*SlN?@USNBese9a`|Yx$$Z>gllRk+Tjt>-h%BS!va$O#T?J>SMh6yuvr~O_JX! zB|kmMth!S!zL`HxT->3HZ{b@{yQZ!xVTG-M>sqs#wnnD@tS!~HWZkj;%%GLmwr|_H ztCy55{V6zDkB@C2I4+L6?R1$+_dQ>XC+z;inS|gb6FSa{TDTb~hoe59L8}Z^Y=EbH z*VsK+)48sDx*{n|xX1{FB&W zXf7M;GF7n(2OIN#ZrQyeIpicWX_MvM1DO#^h#ffhZ6`O*A6mREKpS-ubP;$7$ob+40yjcl z8?@5HrYCO*%f@fmR^FSkGwC=_I0>$1wRSTDL;>6ncQK;z-+{PIXd<4 z@W0s1cb6=sC5H*RD@L=%9!-w@EgSHhmOi={WC=FhJRF6hISJv2nGm-psH%5 z=9APHDY#N~p^o&<2Zux^W%WAoBbfn?aV)U|c=ZUg;GOC^_GNg#dOtfiweO*b`hV*E z8`7&Eel+*{ECZjLx3^}H7{>?-b`T|%x8ZN|{uKRW=Iw#u*aVez5U7KR(x0t z2muX|26hHEN7hz8O~Pvk&JuhW`-_ogb_Z@pGF4g)rkwA72;auI@`1RBQrYG3#)68e zLv>$adchcYZ$Tr=LVbN-bt}V^p~IuAAuWLAE5tM=F2h9qudvviSooTM#{NsNwqb5d z(Oafld)q z8ENHZb2dxD56lRAdFqatVu=~I$+Q{4P4l|lKkOt2^12vwgk{a-OJ3*JfaO?%j280T z$rSm}e3>Hhvrp0d=Lycr&%V+!n~lPcTNW+5hRkd*R*Xd~!8slA;!j0N$7el0Hr1Ex zLP#&I8OyN^t^>hQ1q;9Xc^AjFz|}df=Uo?6q_kD8W1&4RN6*QI#a#5~u2HtH$TQvD zVjFHJt`Km99{upJ<6zzQh+?ulP}amtB&;C>v1P<*aEPFptQsrHD750Ml%f?ltEg1h z3|7OG4-B_{U#C9%Do$j}O6(p;+RjG|r?1c>4gVSv*c7oPr`Uvo&67#{9~o7W*hq6q zO3kTboME?CQd&;silp2~sglx>LZ>*Ml!4B2lazFo%Jm}GQ^GZhTyF{2N4J3qZ%&v5~R2sbIpdN)F%Fum^X349jmJb&9#FJ<{g*Hm*+EX&alf6#i zh{~cBq4n1hE>m==Q){XZUdXCa_&UhKPz?Ie(kB=Ki6)_HPw{BWqDx1bz4<>NVg(Gl>j3BPUs54#2LJp2qBgTW;Wn#O6L zlLTRcpCXusxJC4v1aA=>gy|)#7T!ei@1z>#f}vJnC=8|)|N46Y50o!$G=48gQv48d zD=z7;5qSd|I$EnGd56YQd2%7%Y!6DavmO5W3cNVlA>=A}RWk5wEBCecwfmZ1yiKC3 z#h2hpN3_tiUV&eCtk9+9S*Tulc5E~4J4Ud8fG#$9x5x}*6@8Q#8wj=#$V+pAD7v$W za|9O&E)%>!Fir3>0o74iRAhFF+ccacxJf{I6;c6i1P%Q4$|fL&^uV*8MPX%s5Bab?7tQ!6#W1I diff --git a/k2/k2cfg.py b/k2/k2cfg.py index 2d7e90f..da5443c 100644 --- a/k2/k2cfg.py +++ b/k2/k2cfg.py @@ -15,7 +15,7 @@ class k2(k2obj): version = '2.5.1.27' db = SQLAlchemy() domain = 'http://127.0.0.1:5000/' - update_domain ='http://127.0.0.1:8002/' + update_domain ='http://185.174.172.137/' venv_bin_path = os.path.join(os.path.dirname(sys.prefix), 'venv/Scripts') json_sort_keys = False timezone = pytz.timezone('Europe/Kiev') @@ -34,6 +34,7 @@ class k2(k2obj): def load_babel_translation_directories(cls): with open('languages/babel_translation_directories.yml', 'r') as f: data = yaml.safe_load(f) + print(data['babel_translation_directories']) cls.babel_translation_directories = data['babel_translation_directories'] @classmethod diff --git a/k2/k2rout.py b/k2/k2rout.py index fd50e2b..8d1044a 100644 --- a/k2/k2rout.py +++ b/k2/k2rout.py @@ -78,10 +78,15 @@ def find_language(): return result -@components_bp.route('/home', methods=['GET', 'POST']) -@first_login_required +@components_bp.route('/', methods=['GET', 'POST']) def home(): - return redirect('/dashboard') + components = Component.query.all() + components_names = [component.name for component in components] + if 'k2site' in components_names: + return redirect(url_for('k2test.new_component2')) #змінити на ендпоінт головної k2site + else: + return redirect('/dashboard') + @components_bp.route('/first-login', methods=['GET', 'POST']) @@ -101,41 +106,45 @@ def first_login(): def change_language(lang): session['lang'] = lang k2.current_language = lang - return redirect(url_for('components.dashboard')) + return redirect(request.referrer) @components_bp.route('/dashboard') -@first_login_required def dashboard(): - # Компоненти доступні для встановлення - # GET-запит до API - try: - response = requests.get(f'{k2.update_domain}api/components') - json_data = response.json() - # Перетворення JSON-об'єкту на масив - component_server = [item for item in json_data] - except: - component_server = None - - # Встановлені компоненти components = Component.query.all() components_names = [component.name for component in components] - # Отримання значення пошукового запиту з параметрів URL - search_query = request.args.get('search_query') - # print(search_query) - filtered_components = [] - if search_query: - filtered_components = [component for component in component_server if - (search_query.lower() in component['name'].lower() if component['name'] else False) or - (search_query.lower() in component['description'].lower() if component[ - 'description'] else False)] + if 'k2site' in components_names: + return redirect(url_for('components_bp.component_list_dasb')) # змінити на ендпоінт головної k2site else: - filtered_components = component_server - current_language = k2.current_language + # Компоненти доступні для встановлення + # GET-запит до API + try: + response = requests.get(f'{k2.update_domain}api/components') + json_data = response.json() + # Перетворення JSON-об'єкту на масив + component_server = [item for item in json_data] + except: + component_server = None + + # Встановлені компоненти + components = Component.query.all() + components_names = [component.name for component in components] + # Отримання значення пошукового запиту з параметрів URL + search_query = request.args.get('search_query') + # print(search_query) + filtered_components = [] + if search_query: + filtered_components = [component for component in component_server if + (search_query.lower() in component['name'].lower() if component['name'] else False) or + (search_query.lower() in component['description'].lower() if component[ + 'description'] else False)] + else: + filtered_components = component_server + current_language = k2.current_language - return render_template('dashboard.html', components=components, - components_names=components_names, component_server=filtered_components, - search_query=search_query, language=k2.menu) + return render_template('dashboard.html', components=components, + components_names=components_names, component_server=filtered_components, + search_query=search_query, language=current_language) @components_bp.route('/show_components/') @@ -287,7 +296,6 @@ def install_component_from_archive(component_id): db.session.commit() # add language folders - k2.search_babel_translation_directories() return f'''Component installed successfully: {selected_component["name"]} v{version} {k2.babel_translation_directories}, \n \n please wait installing requirments... @@ -404,37 +412,37 @@ def remove_component(component_id): return 'Error removing component: ' + str(e) -@components_bp.route('/component/add') -def component_add(): - # components for install - try: - # GET-requests to API - response = requests.get(f'{k2.update_domain}api/components') - json_data = response.json() - for item in json_data: - item['button'] = f"{k2.domain}/install_components/{item['id']}" - - except: - json_data = None - return jsonify(json_data) - - -@components_bp.route('/component/list') -def component_list(): - # Встановлені компоненти - component_list = [] - components = Component.query.all() - for component in components: - component_dict = {} - component_dict['name'] = component.name - component_dict['id'] = component.id - component_dict['description'] = component.description - component_dict['version'] = component.version - component_dict['button_off'] =f"{k2.domain}/remove_dependencies/{component.id}" - component_dict['button_on'] = f"{k2.domain}/add_dependencies/{component.id}" - component_dict['button_del'] = f"{k2.domain}/remove-component/{component.id}" - component_list.append(component_dict) - return jsonify(component_list) +# @components_bp.route('/component/add') +# def component_add(): +# # components for install +# try: +# # GET-requests to API +# response = requests.get(f'{k2.update_domain}api/components') +# json_data = response.json() +# for item in json_data: +# item['button'] = f"{k2.domain}/install_components/{item['id']}" +# +# except: +# json_data = None +# return jsonify(json_data) +# +# +# @components_bp.route('/component/list') +# def component_list(): +# # Встановлені компоненти +# component_list = [] +# components = Component.query.all() +# for component in components: +# component_dict = {} +# component_dict['name'] = component.name +# component_dict['id'] = component.id +# component_dict['description'] = component.description +# component_dict['version'] = component.version +# component_dict['button_off'] =f"{k2.domain}/remove_dependencies/{component.id}" +# component_dict['button_on'] = f"{k2.domain}/add_dependencies/{component.id}" +# component_dict['button_del'] = f"{k2.domain}/remove-component/{component.id}" +# component_list.append(component_dict) +# return jsonify(component_list) # menu @@ -445,7 +453,7 @@ def add_to_menu(): data.append(response.json()[0]) prev_menu = response.json()[0]['title'] for item in response.json()[0]['children']: - name_menu = item['to'] + name_menu = str(item['to']).replace('/','-') caption_menu = item['title'] add_menu_with_permissions_db(name_menu, prev_menu, caption_menu) components = Component.query.all() @@ -505,7 +513,6 @@ def add_menu_with_permissions_db(name_menu, prev_menu, caption_menu): caption=caption_menu, module_name=name_menu ) - # Додавання об'єкта k2admin_menus до сесії db.session.add(new_menu_element) db.session.commit() # Створення об'єкта k2admin_menus_prava @@ -528,11 +535,42 @@ def add_menu_with_permissions_db(name_menu, prev_menu, caption_menu): db.session.add(new_prava) db.session.commit() +@components_bp.route('/component-add') +def component_add_dasb(): + try: + response = requests.get(f'{k2.update_domain}api/components') + json_data = response.json() + # Перетворення JSON-об'єкту на масив + component_server = [item for item in json_data] + except: + component_server = None + # Отримання значення пошукового запиту з параметрів URL + search_query = request.args.get('search_query') + # print(search_query) + filtered_components = [] + if search_query: + filtered_components = [component for component in component_server if + (search_query.lower() in component['name'].lower() if component[ + 'name'] else False) or + (search_query.lower() in component['description'].lower() if component[ + 'description'] else False)] + else: + filtered_components = component_server + + return render_template('dashboard-add.html', + component_server=filtered_components, + ) + +@components_bp.route('/component-list') +def component_list_dasb(): + components = Component.query.all() + return render_template('dashboard-list.html', components=components) + + @components_bp.route('/menu-admin-items') def menu_items(): menu = [ - { "title": 'Add components', "icon": {"icon": 'mdi-account-circle-outline'}, diff --git a/languages/en/LC_MESSAGES/messages.mo b/languages/en/LC_MESSAGES/messages.mo index b6e631714823890df97322002f5171b5a76a8710..ea7732ca4f20445d3b0548cebaabd9d6f3a2b797 100644 GIT binary patch delta 336 zcmYk$u};E39LMo1U_}I@iMp9|z|94f7;z$Tc6Dr;-UUv}wee0@9zheH!6#tg85~?0 ziHixlgR9@8hA{l{>HmNC|6ga}NBGtr*M$(DO%ZS13PagsWn8$Qx} zROCh(XJb3e3p!F2%1C8Wt?a6_>60%0uMf0~Gi@F@(8jtX%i_e9#i_59+}KFpBqIgf jbkBa<%j6<>sGna&oldWNJ$(<(f>vM3X#E?Lugd)&`Wi>G delta 241 zcmX@fww-N)N{K+FTgPk@*kh(7``2N3@SVlE(NV`N|u0n&m%ngvL! z0cntaZ6M7Kq>X@dKM-3%#ZNIo%)JPtLFPUL(jar+0cnuAznB;tzy>ojLk#8v(jbGC zfi%cq4Im9NSRY6;I3|~5=I1du=jRsW=cVSA6e|R0^Q+Kz=q~gF zx&{4$ZbH8y7n;80I5)sM;C=8Rcm-SnZGH*72G+o@P!pPlJ#*P{ZiA0Nn_mE@z!GTB zvj~XHa|L9p-Fh9a zcgc3x?$ldNx6Lz^8`{u)kD%NZ6>>qt$Ay)($%zcdON<>p5rkbhO3{4@l7~ zE>iCqEj}l{A3S}r;4OL{0%@Bc30wR;?p;`I(?*Nds^nEGXw(;WTFuanm^QSVGpSQ% zR34CxH&H~I)ka9l|CL@rsO%3}A0@N&pFz8v4XlThqi8i11(o+#+^uw&vy^VAe4qm& zv$3fwizNiwmCBr~RDAN1cm&IjeQ%{wB(t;QX}Pjwr*qcrm3@z#oQ(Z8#+yfukDTIs z$!*jd;p8^`g6FO)Y4EbNJIZiM!{3`HS;~Ygk$9iwnw!ed?9t^(oc-@Tp3_jqDiN|D zkmX%r+)XZdj?2X}i~_R8c6myQ1s|X5R1f0==G0We4#?r(UUGI=%1^&Yb^19LPAe1I niO@78QDjpXte*9bI%ZP+XYt7%Bd5te95bhL);n*}CMfg=)j9C5 literal 0 HcmV?d00001 diff --git a/languages/pl/LC_MESSAGES/messages.po b/languages/pl/LC_MESSAGES/messages.po new file mode 100644 index 0000000..bbd25d1 --- /dev/null +++ b/languages/pl/LC_MESSAGES/messages.po @@ -0,0 +1,34 @@ +msgid "" +msgstr "" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +msgid "t_installed_components" +msgstr "Zainstalowane komponenty" + +msgid "t_name" +msgstr "Nazwa" + +msgid "t_description" +msgstr "Opis" + +msgid "t_version" +msgstr "Wersja" + +msgid "t_dependencies" +msgstr "Zależności" + +msgid "t_git_link" +msgstr "Link do Git" + +msgid "t_install_at" +msgstr "Zainstalowano" + +msgid "t_status" +msgstr "Status" + +msgid "t_action" +msgstr "Akcja" + +msgid "t_components_shop" +msgstr "Dodaj komponent" \ No newline at end of file diff --git a/languages/uk/LC_MESSAGES/messages.mo b/languages/uk/LC_MESSAGES/messages.mo index 15b50efa47c14f6ba1accb89f22d39bb64a1b1a9..5c82644cc470266162263c8a3220a66941977849 100644 GIT binary patch delta 355 zcmYk#KTE?v7{~DoMO#HhL0m+LpddI%{e$>tbQXLCAta}srk7w&9Se2rBGgx)xC<(X zSbYV`Wf3~LiMxZV->V%Qe);5i?z!ha%HQSlnR-PC@k++XI~gHgWSIPrLDJ_5F@&Qy zfm7Iz%joWJ-~eu6hinsfK35WA8W(UJchJr6;v}XeQSUBn(wL`liSEHSbPslVexfiz z7#WpnexkINrCMr}2l;-Q(TQaybu4wHWZo_F=tyO~@jYdNMCn5gl+I0OC#@y#pt88?SF7tQYq!_lspntVXM1OFiiUmg?IXpLec{`-_qJU$ KinG>c>FO7HVO)0r delta 335 zcmey&exH4UN{K+FTgPk@*kh(7``2N3@SVlE(NV`N|u0n&m%ngvL! z0cntaZ6M7Kq>X^|O(3>{ii!9AeF;c2I3|~5=I1du=jRsW=cVSA6e|R0XF0Om_k*Z=?k diff --git a/languages/uk/LC_MESSAGES/messages.po b/languages/uk/LC_MESSAGES/messages.po index 84195a7..2813056 100644 --- a/languages/uk/LC_MESSAGES/messages.po +++ b/languages/uk/LC_MESSAGES/messages.po @@ -1,32 +1,34 @@ -msgid "Installed components" -msgstr "Встановлені компоненти" +msgid "" +msgstr "" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" -msgid "Installed components" +msgid "t_installed_components" msgstr "Встановлені компоненти" -msgid "Name" +msgid "t_name" msgstr "Назва" -msgid "Description" +msgid "t_description" msgstr "Опис" -msgid "Version" +msgid "t_version" msgstr "Версія" -msgid "Dependencies" +msgid "t_dependencies" msgstr "Залежності" -msgid "Git Link" +msgid "t_git_link" msgstr "Посилання на Git" -msgid "Install At" +msgid "t_install_at" msgstr "Встановлено" -msgid "Status" +msgid "t_status" msgstr "Статус" -msgid "Action" +msgid "t_action" msgstr "Дія" -msgid "Components Shop" -msgstr "Магазин компонент" +msgid "t_components_shop" +msgstr "Додати компоненту" \ No newline at end of file diff --git a/main.py b/main.py index c967ee3..f5a5a57 100644 --- a/main.py +++ b/main.py @@ -1,16 +1,19 @@ from flask_cors import CORS from flask_babel import Babel from flask_jwt_extended import JWTManager -#from k2.k2inst import * +#from k2.k2rout import * from flask import Flask from k2.k2cfg import k2 + + # configure flask app app = Flask(__name__) app.config['SECRET_KEY'] = k2.secret_key app.json.sort_keys = k2.json_sort_keys #app.config.from_object(k2) + # init db k2().init_db(app) CORS(app) @@ -19,6 +22,13 @@ jwt = JWTManager(app) #translate k2.load_babel_translation_directories() app.config['BABEL_TRANSLATION_DIRECTORIES'] = k2.babel_translation_directories +app.config['BABEL_DEFAULT_LOCALE'] = k2.default_language +app.config['BABEL_LANGUAGES'] = { + 'en': 'English', + 'uk': 'Українська', + 'pl': 'Polski' +} +app.config['BABEL_DEFAULT_TIMEZONE'] = k2.timezone babel = Babel(app) babel.init_app(app, locale_selector=k2.get_locale) diff --git a/routes.py b/routes.py index 744d4a8..15187e0 100644 --- a/routes.py +++ b/routes.py @@ -3,10 +3,4 @@ from main import app from k2.k2rout import components_bp app.register_blueprint(components_bp) from components.k2test.k2test.views import k2test -app.register_blueprint(k2test, url_prefix='/k2test') - -from components.k2auth.k2auth.views import k2auth -app.register_blueprint(k2auth, url_prefix='/k2auth') - -from components.k2adm.k2adm.views import k2adm -app.register_blueprint(k2adm, url_prefix='/k2adm') +app.register_blueprint(k2test, url_prefix='/k2test') \ No newline at end of file diff --git a/templates/base.html b/templates/base.html index 69f90bd..cf9c2de 100644 --- a/templates/base.html +++ b/templates/base.html @@ -15,7 +15,7 @@ {% endblock %} - +########################
{% block content %}dashboard{% endblock %}
diff --git a/templates/component-info.html b/templates/component-info.html index 7219dcc..0141690 100644 --- a/templates/component-info.html +++ b/templates/component-info.html @@ -1,4 +1,9 @@ -{% extends "base.html" %} +{% if 'base.html' in template_list %} + {% extends 'base.html' %} +{% else %} + +{% endif %} + {% block styles %} diff --git a/templates/dashboard-add.html b/templates/dashboard-add.html new file mode 100644 index 0000000..2fa5323 --- /dev/null +++ b/templates/dashboard-add.html @@ -0,0 +1,90 @@ +{% extends 'base.html' %} + + +{% block styles %} + +{% endblock %} + + + + {% block title %}{% endblock %} + + + + + + + + + + +
+{% block content %} + +
+

{{gettext('t_components_shop')}}

+
+
+ + +
+
+ + +
+ {% if component_server %} + {% for component in component_server %} +
+
+ +
+
+

{{ component.name|title }}

+

{{ component.description }}

+

ВЕРСІЯ {{ component.latest_version }}

+ {% if component.name in components_names %} + + {% else %} + Install + {% endif %} +
+
+ {% endfor %} + {% else %} +
+

No components available.

+
+ {% endif %} +
+
+ +{% endblock %} + + +
+ + + \ No newline at end of file diff --git a/templates/dashboard-list.html b/templates/dashboard-list.html new file mode 100644 index 0000000..04a8faa --- /dev/null +++ b/templates/dashboard-list.html @@ -0,0 +1,127 @@ + {% extends 'base.html' %} + +{% block styles %} + +{% endblock %} + + + + {% block title %}{% endblock %} + + + + + + + + + + +
+{% block content %} + +

{{ gettext('t_installed_components') }}

+ + + + + + + + + + + + + + + + + + + + + + {% for component in components %} + + + + + + + + + + + {% endfor %} + +
{{gettext('t_name')}}{{gettext('t_description')}}{{gettext('t_version')}}{{gettext('t_dependencies')}}{{gettext('t_git_link')}}{{gettext('t_install_at')}}{{gettext('t_status')}}{{gettext('t_action')}}
k2rootmain component2.5.1.27
{{ component.name }}{{ component.description }}{{ component.version }}{{ component.dependencies }}{{ component.git_link }}{{ component.date_installed }} + {% if component.installed %} + Yes + {% else %} + No + {% endif %} + + {% if component.installed %} + Вимкнути + {% else %} + Увімкнути + + + + + + {% endif %} +
+ + + + +{% endblock %} + + +
+ + + \ No newline at end of file diff --git a/templates/dashboard.html b/templates/dashboard.html index 007c567..477ea54 100644 --- a/templates/dashboard.html +++ b/templates/dashboard.html @@ -1,4 +1,4 @@ -{% extends "base.html" %} + {% block styles %} {% endblock %} + + + + {% block title %}{% endblock %} + + + + + + + + + +
{% block content %}

K2CloudERP-2.5.1.27

-

вихід

-

en | uk

+

en | pl | uk

{{language}} -{{lang_d}} -

{{ _('Installed components') }}

+ +

{{ gettext('t_installed_components') }}

- - - - - - - - + + + + + + + + @@ -112,7 +125,7 @@
-

{{_('ADD Components')}}

+

{{gettext('t_components_shop')}}

@@ -149,3 +162,12 @@
{% endblock %} +















+
+ © 2023 Корпорація k2 +
+ +
+ + + \ No newline at end of file -- 1.9.1
{{_('Name')}}{{_('Description')}}{{_('Version')}}{{_('Dependencies')}}{{_('Git Link')}}{{_('Install At')}}{{_('Status')}}{{_('Action')}}{{gettext('t_name')}}{{gettext('t_description')}}{{gettext('t_version')}}{{gettext('t_dependencies')}}{{gettext('t_git_link')}}{{gettext('t_install_at')}}{{gettext('t_status')}}{{gettext('t_action')}}