From 64cf31f939d47cbe5f2be079007d5ea349fe9644 Mon Sep 17 00:00:00 2001 From: kerem Date: Wed, 14 Aug 2024 18:47:38 +0200 Subject: [PATCH] A small revolution with forms and routes ! need to redo all the classes and models so that their articles have exactly the same name and then it will implement itself --- web/2 | 139 ------------------ web/instance/test.db | Bin 19292160 -> 19292160 bytes .../company/__pycache__/forms.cpython-311.pyc | Bin 5256 -> 10066 bytes .../__pycache__/models.cpython-311.pyc | Bin 6706 -> 6725 bytes .../__pycache__/routes.cpython-311.pyc | Bin 12556 -> 8005 bytes web/minibase/blueprints/company/forms.py | 55 +++++-- web/minibase/blueprints/company/models.py | 47 +++--- web/minibase/blueprints/company/routes.py | 51 ++----- .../company/templates/company/account.html | 4 +- .../__pycache__/routes.cpython-311.pyc | Bin 4496 -> 4496 bytes web/minibase/blueprints/geography/routes.py | 2 +- .../main/__pycache__/utils.cpython-311.pyc | Bin 2796 -> 3667 bytes web/minibase/blueprints/main/utils.py | 17 +++ 13 files changed, 94 insertions(+), 221 deletions(-) delete mode 100644 web/2 diff --git a/web/2 b/web/2 deleted file mode 100644 index bb1f3817..00000000 --- a/web/2 +++ /dev/null @@ -1,139 +0,0 @@ -from flask import render_template, Blueprint, request, flash, redirect, url_for -import minibase.theme as theme -from minibase.blueprints.sensor.models import nbiotDevice -import minibase.blueprints.sensor.utils as sensorUtils -from minibase.blueprints.sensor.forms import updateNbioDeviceUpdateForm, updateNbioDeviceAddForm -import minibase.blueprints.database.utils as dbUtils -import minibase.blueprints.company.utils as companyUtils -import minibase.blueprints.user.utils as userUtils -from minibase.app import db -import json -import os - -sensor = Blueprint('sensor', __name__, template_folder='templates') - -DATA_FILE = 'data.json' - -sensor.route('/callback', methods=['POST']) -def callback(): - data = request.json - - if not data: - return jsonify({"error": "Invalid data"}), 400 - - # Read existing data - if os.path.exists(DATA_FILE): - with open(DATA_FILE, 'r') as f: - stored_data = json.load(f) - else: - stored_data = [] - - # Append new data - stored_data.append(data) - - # Write data back to file - with open(DATA_FILE, 'w') as f: - json.dump(stored_data, f, indent=4) - - return 'Callback received', 200 - - -@sensor.route('/data', methods=['GET']) -def get_data(): - if os.path.exists(DATA_FILE): - with open(DATA_FILE, 'r') as f: - stored_data = json.load(f) - else: - stored_data = [] - - return jsonify(stored_data) - - -@sensor.route('/list', methods=['GET','POST']) -def list(): - page=request.args.get('page', 1, type=int) - table=dbUtils.table_printable_paginate(nbiotDevice, page, 20, 'edit/', 'id') - return(render_template('view.html', theme=theme, table=table, title="Devices List")) - - -@sensor.route("/edit/", methods=['GET', 'POST']) -def edit(deviceId): - if deviceId: - device = nbiotDevice.query.get_or_404(deviceId) - form = updateNbioDeviceUpdateForm(current_device_id=device.id) - form.user_id.choices = [(row.id, row.username) for row in userUtils.queryUserNamesWithDefault(device.user_id)] - form.owner_id.choices = [(row.id, row.username) for row in userUtils.queryUserNamesWithDefault(device.user_id)] - form.manufacturer_id.choices = [(row.id, row.name) for row in companyUtils.queryNamesWithDefault(device.manufacturer_id)] - form.company_id.choices = [(row.id, row.name) for row in companyUtils.queryNamesWithDefault(device.company_id)] - form.status_id.choices = [(row.id, row.name) for row in sensorUtils.queryStatusNamesWithDefault(device.status_id)] - form.type_id.choices = [(row.id, row.name) for row in sensorUtils.queryTypeNamesWithDefault(device.type_id)] - form.area_id.choices = [(row.id, row.name) for row in sensorUtils.queryAreaNamesWithDefault(device.area_id)] - if form.validate_on_submit(): - device.name=form.name.data - device.serial_no = form.serial_no.data - device.device_id=form.device_id.data - device.imsi=form.imsi.data - device.iccid=form.iccid.data - device.ip=form.ip.data - device.port=form.port.data - device.registration_date=form.registration_date.data - device.activation_date=form.activation_date.data - device.deactivation_date=form.deactivation_date.data - device.owner_id=form.owner_id.data - device.user_id=form.user_id.data - device.status_id=form.status_id.data - device.type_id=form.type_id.data - device.area_id=form.area_id.data - device.manufacturer_id = form.manufacturer_id.data - device.company_id = form.manufacturer_id.data - db.session.commit() - flash('Device has been successfully updated', 'success') - return redirect(url_for('sensor.edit', deviceId=deviceId)) - elif request.method == 'GET': - form.name.data = device.name - form.serial_no.data = device.serial_no - form.device_id.data = device.device_id - form.imsi.data = device.imsi - form.iccid.data = device.iccid - form.ip.data = device.ip - form.port.data = device.port - form.registration_date.data = device.registration_date - form.activation_date.data = device.activation_date - form.deactivation_date.data = device.deactivation_date - - return render_template('sensor/account.html', - theme=theme, - form=form) - else: - flash('You need to select a Device id', 'alarm') - return redirect(url_for('sensor.list')) - - -@sensor.route('/add', methods=['GET', 'POST']) -def add(): - form = updateNbioDeviceAddForm() - form.user_id.choices = [(row.id, row.username) for row in userUtils.queryUserChoices(1)] - form.status_id.choices = [(row.id, row.name) for row in sensorUtils.queryStatusChoices(1)] - form.type_id.choices = [(row.id, row.name) for row in sensorUtils.queryTypeChoices(1)] - form.area_id.choices = [(row.id, row.name) for row in sensorUtils.queryAreaChoices(1)] - if form.validate_on_submit(): - dev = nbiotDevice( - name=form.name.data, - device_id=form.device_id.data, - imsi=form.imsi.data, - iccid=form.iccid.data, - ip=form.ip.data, - port=form.port.data, - registration_date=form.registration_date.data, - activation_date=form.activation_date.data, - deactivation_date=form.deactivation_date.data, - user_id=form.user_id.data, - status_id=form.status_id.data, - type_id=form.type_id.data, - area_id=form.area_id.data) - dbUtils.dbAddAndCommit(dev) - flash('Device has been successfully added', 'success') - - return render_template('sensor/account.html', - theme=theme, - form=form) diff --git a/web/instance/test.db b/web/instance/test.db index ebe7fd6960bf23587429d2d4f6c68edcf1d85362..5086d0b211f00004c4fe7e3ad2d20ac45f2d9d6c 100644 GIT binary patch delta 1314 zcmWmE_gmHl6vkn{yg0ytiVGQ{Xxbt{B*C)CmTB9z6=ZK^X5)pXrO>jnQd^|$r41WY zW?Qqp_a0i<()KP}_xa)eT-W&np3}T?VNNsi3zL!sMdOo_milG&$>P=7Z5>i=%X8Nx zOHz3)Ba-|M#bZY$S;K4U>T+6FwI^i-1mmUsngS$#->a|V`I9sVq`isrFBDl zG9jxsG*jzY{k}$ zV;i=mj_nxF_Uyop?8MGYU>7DbiCx)^-PwaZ*^9lI%s%YPe(cWy9LPaT;b0EoQ0i&m zFs5=iX^!AXj$#@|Go53Y!Lc02@ti=0Mw&R0lQ@}EIF-|w$?2TIEN0V83ukf`XLAnc zGKcdxp9`4FgG9F+#5AqNX^9Yaf7>~1pl{~>Jp5!T><{6&lIiBYQUgRZS z<`rJ$HD2cp-sCOb<{jSUJ>KU7KI9`l<`Y)4hEMs7cGmJaU+^Vg@ipsM&o_L_cYMze z{K!xI%rE@PZ~V?5{K;Qz;BWrnU;dkG`}2roMN*OMNXJO0NaskGNKPa-(lyd8(mm26 zk{9V2=@sc6$&d7j^o{h3^p6aP6hsC_3L{04;z&tkP^2_6I5H$s78#nX@FS9?GyezX CoTU2z delta 1314 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 delta 1009 zcmZwFO-~a+7zgm#?R%jp1;e&L*-}t8L_z{8QK(XoLeUyfF#)kD?IMk|!0a|y5~C&_ zI2p)z;0vf}G+vr`;ljnpu@J(cC;bKxIC0VWx1bQ+bbm8Xo|)-0GrJvLRw_O^9CpH= z-G%jOZ^debBz`5UEsK3M<23>iNsz?NZ%Evt3LgxFeBy8E8JCJVE6>^f$+_aD`$Vy` zfbda@oy*pJ?9=q9t}?UvEqhk;E>tLw%_Zlfsmwz?F{>5MFQiqP31q_2q&kqGnoiI0 zKg}8nMopca{xdj|;`xH*c&dhd$!yo&#{!aH@UYjC-+F*z!%98-E_GBFjF>>Nfr4dG zozfD#gm1FUF1kGIP;L(u*Gj4>of`QVYAOz#PsH>zRjCD$SxZkP6FTkYL6%TIhTQ;_ zCt!6g&K`MRDESGxM@T>%5_vNsgibY8!{R<6+(VfANed-CMWZ_nrw#)Licf7fjL#mwR9d>5;{)MG?- FzX5nb>T>`9 diff --git a/web/minibase/blueprints/company/__pycache__/models.cpython-311.pyc b/web/minibase/blueprints/company/__pycache__/models.cpython-311.pyc index 3aea788066856f0a13b4299f1b9e23f6d7cc0a98..aaae00e593b17b0603bc0e293e000b3a45c14b01 100644 GIT binary patch delta 1305 zcmaiyUr19?9LIO==A6?_ccv$8(rWzy^J-AmL%DSqceF)Ky01-RY3X}QK_n-Vy~?|j6| zu*+QyXII;<^=*g`y4`ilJK9(8xTcX?tJuC=QM{@`P)dx`_-qdFnYLMuaP8OiiLSN+ z&57zdsp}728?BEUYJ>qNALV1Al0MTtbYZZ@tgi>kG}G31aj0ME9!!5%`0^geqb6Kh z=rdog>cI;xlsjE`9pL(+efXO#gq5OS!$0`psKzx{?p5V4$UB-EJ2xrZv1eniEd&ZeKWzeo}kqbSBuOg*wTmpsdo7YXX4sE?sOVkw`un%vc+zOkC|;COQ; zIN381#p=1eGCL7<;PKZAZX_&?w1o(X58 z1U6CF#9))!vQ(GPrzYf#oDGme9RwyQOfZ;GL-TgihRylu@l5gNVPjzXv^?EBE0d<9 zRFs)0llD%6x+v;msEc=A%N?g;gozQ7=q4ydQHr6|%0n{x$y5w8F-%T%5tO7T$xxC{ z_^016{|5PuAMK)Ih>0N*ixbpAQ3pdE>-2k6PsJb;gCu&2pg2WwhT>{ysoiq7S}ICR zlt|*o~W>(>!Pm2QaQJ= zW{Fcca0vu-PSQC^&^SrR`5ggZb@P9ApaNfWhCm&D=WGOfu(dQ`6*apKM@kz(ZSF?t zPXior-2?}485Ds(w;z5r{2k?2fz17__I9mQlf$|9<=+k9IT`_R9q7~mO(MC04ZQ$_ e@ux~*g)!TLo?Bc=v;sU-_4GF?Y=FQ3 delta 1175 zcmZ`%O>7fK6!xr*;~#eRCmY)dDX9`W*nl`hjuna$BP)qbg5@OOgb>97Y9ks!ZMj%# z4%n{RLk^K@I<91-t+WR#xM~iY`p_Ryl>?R1+l)E~ivvBB3sR+m%8g6Mo5cN5I;;6+ z_Py`D_wC#FQ}F8`|B&Y$CbsgQJ-Qj&;eQ6`M?Qga-C~b9-L-AoGMh|avAwshI?xUu z22S)5-;Z1_2}L;peagf39q`QeR=0f%un4yIR@%I6MIUlQ=uMBK$MGK@mv(O3(D&T& z!Hi{1?1XR`X-z(OJCJ}>v**nJ)BY85bj!jtSkN=`6tE(%WtL&iz()q!j-Q59^WMa_4C&187G$S^D69s+wwKuro-ULFx>aCtJ|Habxqnn!U!U zc5UbZRH3eXo5wIhV1&X*Ioje~8w;DumGw%#x~_HKFIJ2C5zL1OAEJDyJlzs|D_qrH z8&pp=3RoN^;wTkI%NGu@m-ZZomBcVaV2HvHD=76<O(JWu3#D$kc^Tkf|FrE>k4UU+=#NfuwbMXzPC zJ4YPu9ChcgMR{pOb!VWoFN9MaT3n0N<9K9}c&Dg$3eP1mTqJOj!bK*iQ*EZfH@Iyc zhb|I-ociPV$|{yqL{3pT#VY^Z3GI${qkabmqhvTnhhzBC6)Y|jahZzCtTX%hN)dHG zp`IoFY3iTG^NUzsBJvWImsr02MvSQMX!o>y{hpp8Cno8M$=w2$l0-^UDam>vcsBBz z>or;J(^j>G`l^18_`=i|-t}Q&jtFy9m@CH){&VMB^;1OjPEhZ}ZV!eD0uvM_(6gfh z;r>&s@8QNcj^2K0G8MsPjvf6;?v;VB4a62tOBt#}stGNQ&!=#nK|FYs*e zB{rUU1y$h;2%ul#7&wDG!j#qDHV4qV!WbBCs=}Wg;^)#PIETJbh8&mLls1es6Y_5z z!kAJ7F-ABI!p-N(i;n#l*T*17%Q6rNqL?X|tOH~&p)$4(q4aY#+m1SG1)h&UxplQxRdiUS~P?cKPW+TJj` zE*Nd)N+2#o$YOwUf}TR9_7D^O_XC}MhAz{ec@H+nhz@*Uu0FwM&!6SCm^hHfFGA1W8MP?gkbq{Z6F<@)J=xb~EO#%HL=+B-!xRF`ewasE5yq(1WBicR#V8jm2 zGG~JOZU>Eq_}=;&FyaU1js3)A&vhCO#%R)!|0Lbn_Axn=Ir_NC<@U?66+QB}SLThe zwkM|24bY__FRpq|-FGy|O}FvV0Z{fElLwmVHre}uZ4NWW+gX^#;fe@y@MygMsYqy> z0f4>7kaBdafmHai?N`fEQOT{VB?bN6^Qjw>q|ukXv-Lh0z(?EtUR8lL+h0_SoCb3< zr)OZ0+>4vqX0;?4O0IBCQwxf2cixans!VRQN=~ol%c?=6*&M!j1!$gom+QQy5l%mb4hEk?k>7-TTbio7xdZj`^t5yt{!CEig`X@nL zu3Mnx0er`EFo@g(i8?Pl=A)1J=-0(2KWg!#5Bbq&f$-zN@T0(RGcaNWMp_``%RC8p zZPl%Cq6OICnWwRFEB4Bc{DWq_da)T>vSLdO;Yo6;;kCr!XD1>pzy!05BOBaPvELFC zcNXqm*;(GnG{refoO?)re+XS@FuE|}cw~q}2IC`1E0Vrz?7Y>C%vzDz2KR-p;oEIR zeI7Iro<^(56HEq8kLZy%Fex}k#5|!#nm!(<|wn|ZIeLl095dFsCX2x;v*5Nx)W6^mofgs z#OJ+(f+Wj|499T}FpaLI#$P8rn@YkE$%-#3n$zzcwBNI|J!_YxGM+Z?UZ(iq%paV_ zKImNEg-dXTcy~H8vX`vm#J6*YX9=W-LY4`I^OS*u5)P9>Jrk)#n{TtRMe4Ig`8aTo zLk^z7A?Y^*lA6L5BG!nwLc~=f-bVF_nK(c7L77yF8Rc0*UEv zw30r_yo0W%Cz-QY4xt~@qo>G}QaGe-og^xmfhe f#!R&U7SCOP6+a#%fAfsRWLq4u%rWS}>4kp*VWz!z literal 12556 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 - +
- +
diff --git a/web/minibase/blueprints/geography/__pycache__/routes.cpython-311.pyc b/web/minibase/blueprints/geography/__pycache__/routes.cpython-311.pyc index a2ff5a8fe27e3a75d85388b3d8925275047d866e..3b9705bb21c53b72ac3f45e01258636f576c3fc1 100644 GIT binary patch delta 93 zcmbQBJVBXvIWI340}zRx{L;LVqRRNpl*wPX)LDy6fbx^ox$PNE uCZ}_!@#t&~z96W0QPA>=pylS9+(nFxW|Mt*jTucgH}LW>0jXYoW+nhqJsZIQ delta 93 zcmbQBJVBXvIWI340}upB?oMmo$oq(kwMY}lo&1|io#z%;a(-!ENl|5dX3AuBZhJ0}>XV@9*h4ZJ)|K&qFYnF#>+q8i=+ diff --git a/web/minibase/blueprints/geography/routes.py b/web/minibase/blueprints/geography/routes.py index 56df846a..d07e3e29 100644 --- a/web/minibase/blueprints/geography/routes.py +++ b/web/minibase/blueprints/geography/routes.py @@ -37,7 +37,7 @@ def test(): @geography.route("/get_cities", methods=['GET', 'POST']) def get_cities(): global country_id - country_id = request.args.get("country", type=int) + country_id = request.args.get("country_id", type=int) print(f"/get_cities -> country_id: {country_id}") cities = City.query.filter_by(country_id=country_id).all() print(len(cities)) diff --git a/web/minibase/blueprints/main/__pycache__/utils.cpython-311.pyc b/web/minibase/blueprints/main/__pycache__/utils.cpython-311.pyc index 93615439ec51b120df56885b650d40d7cbb1e2f2..e10b71eefad39076eedfbf55b126d38d9b0be5b9 100644 GIT binary patch delta 1179 zcmZ8g%}*0S6rb7MvP;`-kwUvB2nEB(UJONyDKUaUh{S{#OVn_|rMtjlKX7(S(gacu zByu1IvImJFkwk(bCqIs!O}w?S2ePpVe}IP?PIB_imR8DS=FOY;-u(LJ_uKw%{n_Sw zFN$si27w4No^ao&a7zZCpdsEvg%AtLgz8RJ~wBDvlvp z-1L%yS(T~ebJZYes)MQ(RP!;o6hkViESa4=U~Eq;Gn>@Saa~KOwr@1{aC|ELOiNYH zTuMo5GG}vUc1a^5;Mn}UW-6vhY<@v8s3UWIHm93f(sr53Y(lde&Gd{upGp&OX@NeQ zF*SqoVm)9-bHZGjB**ncf&?Mtfn}&*UZ5l1vzEb^84ia@E9`b-GOcO} zhvYUm)0puX%tew*g1D}3=mkM43Q}H>>PhzoHpjLHccQ!Mo?h_w7rp)Y%53%am-z~@ z$BsTE1mK@eEsQ&?SIqazl`g!7vaHQ4>2WhdG;$qE+N^zcn<1euBV0QZxCs%PO&at6 zo41}f1YN@r@3S@!ol*9D}GqRid<5KZL8U`*4U_e}pcPHY`h|3pNtA!i^vA-lH!4BnhR=X_wGW z2n8qf<^giv={)XKxCI<%654I@2vW2eBY-W={dNF#_m&ZlJ1?3R)YDf+9FANxKI@%( IjH4a>1B|{4N&o-= delta 359 zcmcaC^G1|!IWI340}yaz?@rTYoyaG_*fvo;S1yIUg&|5Pg#$Gfu zGQ(s6Mv=+>T(jA3vE(J@rcQp(B`ycnDpXjST2$$omr`0>QdH>&lq)VW1!_^Atio*q z(aZ?eT*Ph9s6TlVw<)g)P`a22NPw)L{DoVY)e6Ybm@LDi#0#=bQ>=&&NEPu+_U2h- zWe#F0fC!MAz-AYL)URYH0x1T2;1`EYZhlH>PO4pzD^QFPh>IUGOt$2mKbecql?9{@ E0LWZcm;e9( diff --git a/web/minibase/blueprints/main/utils.py b/web/minibase/blueprints/main/utils.py index b274630b..9557d5f1 100644 --- a/web/minibase/blueprints/main/utils.py +++ b/web/minibase/blueprints/main/utils.py @@ -8,6 +8,23 @@ from minibase.blueprints.main.models import Industries import minibase.blueprints.database.utils as dbUtils +def formFill(item, table, to_ignore=[]): + if item.type not in ["SubmitField", "CSRFTokenField"]: + if item.name not in to_ignore: + attribute = getattr(table, item.name) + if hasattr(attribute, 'name'): + return getattr(attribute, 'name') + else: + return attribute + + +def modelFill(table, item, to_ignore=[]): + if item.type not in ["SubmitField", "CSRFTokenField"]: + print(item.type) + if item.name not in to_ignore: + setattr(table, item.name, item.data) + + def save_picture(form_picture): random_hex = secrets.token_hex(8) _, f_ext = os.path.splitext(form_picture.filename)