From 1582e9363fa6859c26eb0b8b17f8f31a10bcaf7f Mon Sep 17 00:00:00 2001 From: Scheianu Ionut Date: Sat, 27 Sep 2025 00:23:35 +0300 Subject: [PATCH] Save current progress of Quality Print Desktop project --- py_app/app/__pycache__/routes.cpython-312.pyc | Bin 99274 -> 99270 bytes py_app/app/routes.py | 24 ++++++++++++++++++ py_app/app/templates/print_module.html | 24 +++++++++++++++--- 3 files changed, 44 insertions(+), 4 deletions(-) diff --git a/py_app/app/__pycache__/routes.cpython-312.pyc b/py_app/app/__pycache__/routes.cpython-312.pyc index ad5b5656abf26bd75c9fb26c9562aadf44e70704..ec4b99eab41d456357a95b63ed95df67bde9bc0f 100644 GIT binary patch delta 8002 zcmai333yaRw!WvgES-cTWZ!5YBy`9EG!ZZXvta@xfdDFmrRn5eNJB5Nxl1nU={L^sT;4g=aRL= z>eQ)oPMx}(-fek(w2P?4)LN_$?S?dKiJXG$rF!2BkY_H_(KnE0o~)xWhBWgO9W^1Es-w+_GIZ2y$TK^1 z^Z|}d(^0%J$6T(XYD8D*s0-0_9rYrbp`-K0H1kXySxsr?t93LJQH74ynsUsQI=Uax zEFHatXts`w<{a}iI+~8CN=NGvRqJR!q8c3yAga|-lqJnvr=xO2b9B^>Xo8ORA-Yya zFCnVe(N~rnbAyh?M&+32>gYN|^K`T~D$P7!M}3GIb@U0MCLN8A&M`OZs2 zr^inzSVk;yM52krAhE}>c4~*^Q)><%n_mfDzAArgywKL{@vn9J*rw2J`Q7Hh#bb)b z%~Xh8i0h!1E|WzO9A>o`*%jz$^ShYLws5(q1r7XMQJo|0A6eNF>Lb#N{{mJdJEV`T z*#p+xep4LO7O?q!o=v5!jqfbU%i2XO!^F`HHjY1EG8YfnSlVHZ9+bxej!Bj_8eYy1 zIc7m&=p)B!<1Cqa))EnB5k~hC^bzqR(JbwLuh$)9oz&ApJ?1%#`59CA_UWniUs3mN zB72DJC2}i~LL$E=(nZ9}k58XGwVRr^AqgZPv0d>K9?otd4k9lQ*Bk?P6{mz8Ge#S& zVOOHz&Ag=|E91(&YZg3ue^-#*!*8mnKx@8KQPa2$x$VGmY0@xuYdce1LB&aiWhyd6 zfh2u9cz}5WR$ITxCL*aPwoH-TLH<_dRaKV-=8PaPhM2H%aJg<{xmiL;zn&Z;lHJa^0pa}xuu4T@9Q7*sH#JQ%a= zcl_yD8EA^rv+65pVlS}tktQ-f241JayzW2%13bVULaq#2c|Wn2hni;pH^4zYrK-Z} zqMjW{E{)-*AIpjwbjjaVeGTb+Z*}?PM~LH5BEqL0qgKSH?j$ID=|*hXlUX{ySe;uJ znI!nbE`tnOj8IN?1zqe&1XIdjPmri5i9AK5n=h!z&JbxJF{lKBSM2C$XjjcoMmt3* zJ4EDRBKl_7?+J?dpbCUN&U>$Yz)B0Ur-?kn7uL5}L(~-dJxfZ@`2%5HbIr6afZ0)O z`pW%k7FTDd;*-U`HM891?F=xn{S5XPN!qRpVK0(Qef#V=f?QWUVcv2}3m>|p}u6CjA+AfdBR_m7)p1vY4mc5Vt8cge{;V-Q$47pZJ zGuU;0_72Vbh{(G{{zBwEB4>%53;l7`!-nm`Ga@P0ghQIq=kI2AVp52Rv`ZnP89j=R zO`|?D5lY1(`?5QzB?5?2s6C$j3IAv&as0a9Xy%|_c5PyB67vQkr4s+hHKSA`mW<8ruGvW~Bwf>HObAb2qt7*0-r6Y(IW{>#CSf5o<7=UF7-O zDxjaQ-c|&kg?_zlu>n5dAM7|GQgyFEGn7si$^;BT0ra=$cOFZhLDDWE(YvYR2ma*V zLaQ4&*^h*O3ca|i!wett34312k?{P(PC4?tgx<(JoXqofrSYb{^L}BeLwF-DzO~Nu zFGX|hjzZH<5uug2j8gqCX~XZov&a;WOhS(j?sWWu9)*12UG_wLpGi!letext%oy5x zS2Aq>oa`{niLUe-_CLfzUZX{0G1nP%W17@`MT@=O<>^wy?X4LDU0x(gP$Z&=YuVEn zIcC`FglokI@J?zEDl2623Wa@1!x2wQP&T>)LAP(M7!6$Ea>#g*xWB)w5!S6vIjC7M z7vf)LqRp9!B=8M)SH=kEOhaCNupuo&cS@ha=%x;PCYuoY;_lDm;1hmk|J;;BWX5ty zuQlvOX5eK9#%=!$2b%3MED~-$>|x^e5wR4piV-ap&c@M0wq>Th2H5}7tcj$eSVM%8 zP%|0_24g6!Dc;>}U6-w3V3R^;4qS+_xM=L!)HAE@Vk~$lJzP7>*3$y7WO}W z9KPc#pQyBqrtbdG{wHn+tfEVv`UzI^;v*}el;3(}Mxud6!&-!=pE=UBT^#+e{YAD$ z*GqW2B8eO)Xs5~IbiWXg$n8k*7S_*`RS*+xkyTPlH-Hw+T;1WkKvvMwOzxoK)#CAC zut8x#MRqbwWrh6Nr`M#4OE_L!!jzZVTv%ky36(u_za>(To;m86(T0M0(!DOX&)Ml( zi^U5*YdWz0DeVY)J!}^#A+kd`wMZzdC!Ol~tmm=9<-4C>HhcO%GHKSXPLJOu+||YA z;*9-9%r2BJsW{K-&o0rgjJ#vZ$B!f;u9LZaL8sR*cX<>xpFePno>@na-CaKtce3p7 z_K78_{PIx|#hP&4M`>O1(H+uv7AY>fKYQAMwY=X{jy2W37xG{>8%63kThD)dF*{1|jFR}6<72_WtBBx;? zo&k=~W2c{sk3NssZegXoxoNmHonTud@5z5UD0GsMO{w7js; zl?o3v(=avp)C*PVB0NYDwvmWXGD9et&JSF;4Z3;BR|TlslCS&)DgxR$!d*iT`n}|H(u9RVJyl&n+uP^b?S~h$TW0I{KADv>g##10UUj^#=x=I)wGNj&lHa<=*GuD zrz_Z@nF8(}1?z-}Get}_qFSVnSbGDlEiwmbVYjjd^@bu?U=iV+qE;0`O5e*xU<4>v zUz-H3#Nn}_mKVbm99&yG(%{)*7!T!rKNQ13W4jAi?KQF;w1FXCExaxtCI%LcdrIn; z;;Y-+l|aBID?Ya(voh4|Qfit0?7>Wf>8KR5(i%1k`PpnDn4@o@1I}4W$RO-x+#REB zvlG;!&9YaC{Ijjycs0~mSK|cDxNOd1c3%DC)$m&FD(V2|C9r8m{FY<4XeRN3nt`IU zXdf23t~QT?A7hj?t}ahdJgT(lHEzWtJKgdUv`(pdvI0sjn_|I8rVv-powQIC-qapf zyMjfiJBay2c#ybnbqBYnXt8)N;IotT5N5KHnb_O3Ij_3C5;j_%q>gU&$4baW2hW}b zmBwtk4thbeQaVB>S5Q6jO$qI$vMQL0&h~H>tWOfx##cC^kB+T|X*ha)HQWLY^*^d% zI--;sc*F8Jt<#}?SOYmY@>2~gz>(%!I0T=n-`0X7Lqss;Lj0CM)sHT7b{#B258hV? z%Z$kUWj$o&caSs@Ymwj*0Vgu0pZ1rc+8ba3e5o#IfNi+7HyfaaVkl`Id>QYeb;5zb z#;Gy$p$^*A=K0Wyy7kTnC-TKK!dGEFlL#2(Gd97s$TzQv1gfW+z!Sa(Qp?op77Wvc z%^(}VrT$?dU~R7c*FtE7GPR@ycD9J!MLvzuKADY(C?-crl*Vuk7)j=MsgM(g>!6hI zilZ076w4UeP1uXaP)ROa*+wnl%86?GQmBGueTSC9djPA|Ev=A0;XKaK;;3+NdfXcr ze!*mMXf`cY#&Q;~#x5)f)76u$Fgf+_#2Vk;g`Y*S(iP6cpf7egd<51Z`%=GO0pl9y zlkG*pBrQ@iDZ4%H{AwXSf+uWhIPB6~cs^Nd2@yy>}%v*doTE z+=Irs;)hWVtKg{lU)twvJD&Jtb%qQN)ehMZSydcVEo~y72x(|Hu{nCjTxy9NLnR+A zkE`Y?@Qe`_^!0aO+O~+}_*6aThK1-9MeCqs>9A@;IC3m47mgBYMf^JA(scQUH4>I0 zRk41FR4onaQ|q8`v`{A+2T2|Jp-Nw@gS#MV4;o#SV$`Y{tYW&8ZHcnsFu4`}wo0;b zE2z~qFg0O|v;_wLTWPC-A53;^Hyp;P^a~^fDbU1^{(DQd$Wad%2S?@THHO7fkW>;s zk|f7G9y_?oVrje-q_Yygd@T648iS(;v25L9ykB}yUkjwcwWdmv94E)SL0>3gjiKGJ zOp-@!HEuI5zWlcvx}}ZAWl}fT6V<sHU9I0&uQu*$Jdk%JV<6?~Jux4vV>&UBey1+!gywNIQcaR{ z!Wd69DW(>TC$e&CDvc+u0%}*9YoYJ8PB>)Da^cD&-e!sFt{@aQuBP!~QoMvnDG|y8 ztc+R|{yoO#vT8P&U^?w`3bm#ZaS)+Qz@||P)Js7KI3m#^0wogsBZYjp=u!`KL28x= z>LKw=g0CgP-RfIikd`H?p9K0=;%71@9ZFPe6*64c_j4CqG+_R{xDm24Z%04B{OI_^ zbk#ZQ_yOyLe$xb2u8!RVciF;4l-o=HE93O|+p%K9Pp{7Qzy`J!h25>by$RCCQ!S6T zP8IgpSBG7sg%qNY4!_Z#RjoZRIa9=%X2A!G;t8-M8m3#HC94a1Ah(ztSxXE*q4BaW z?UdK7#Scs=)NQ0S#}RWXk&yae4@|L&Pt3w^q*cCRD7%PYfYi**| z79vZC>?Cpvk$Z@!MD8O(U$oiph&)8(D3Mo)yh`LGkvE8(BJvH933Swxh$PM-D&Bu{ zsnw+3v>A3<#YIn6!UAB_7D&%O6eUStV@V3{OEK?D2_Hxkzc)xwXZT)<(7x&|@Pj2O Z73RXXM#(V#YXddEE>)Xvf{iAU_WuiN%2xmY delta 7674 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 Ml_l4~ppmTqzv(uD`v3p{ diff --git a/py_app/app/routes.py b/py_app/app/routes.py index e04655e..18b42e4 100644 --- a/py_app/app/routes.py +++ b/py_app/app/routes.py @@ -2130,6 +2130,30 @@ def download_desktop_app(): print(f"DEBUG: Error downloading desktop app: {e}") return jsonify({'error': 'Failed to download desktop app'}), 500 +@bp.route('/download/portable-app') +def download_portable_app(): + """Download the Quality Print Desktop Portable Windows version""" + try: + # Path to the portable app file + downloads_path = os.path.join(current_app.root_path, 'static', 'downloads') + filename = 'Quality_Print_Desktop_Portable_v1.0.0_Windows.zip' + + # Check if the zip file exists + full_path = os.path.join(downloads_path, filename) + + if not os.path.exists(full_path): + return jsonify({ + 'error': 'Portable app package not found', + 'message': 'Quality Print Desktop Portable v1.0.0 Windows is not available', + 'suggestion': 'Please contact the administrator' + }), 404 + + return send_from_directory(downloads_path, filename, as_attachment=True) + + except Exception as e: + print(f"DEBUG: Error downloading portable app: {e}") + return jsonify({'error': 'Failed to download portable app'}), 500 + @bp.route('/get_order_data/', methods=['GET']) def get_order_data(order_id): """Get specific order data for preview""" diff --git a/py_app/app/templates/print_module.html b/py_app/app/templates/print_module.html index 3d9e755..0d14617 100644 --- a/py_app/app/templates/print_module.html +++ b/py_app/app/templates/print_module.html @@ -213,10 +213,13 @@ 🖥️ Quality Print Desktop v1.0.0 (RECOMMENDED)
- Professional desktop app with built-in thermal printing • Direct hardware access • Rich formatting + Professional desktop app • Direct hardware access • Rich formatting
+ ✅ READY! @@ -236,7 +239,7 @@
🏆 Desktop App Benefits: Direct thermal printing • Rich barcodes/QR codes • Better reliability
- ✨ Now includes: electron-pos-printer • One-click install • Cross-platform support + ✨ Two versions: Full Linux AppImage or Lightweight Windows Portable • Cross-platform support
@@ -1107,7 +1110,20 @@ function downloadElectronApp() { document.body.removeChild(link); // Show success message - showNotification('� Quality Print Desktop v1.0.0 download started!', 'success'); + showNotification('📱 Quality Print Desktop v1.0.0 download started!', 'success'); +} + +function downloadPortableApp() { + // Download the portable Windows version + const link = document.createElement('a'); + link.href = '/download/portable-app'; + link.download = 'Quality_Print_Desktop_Portable_v1.0.0_Windows.zip'; + document.body.appendChild(link); + link.click(); + document.body.removeChild(link); + + // Show success message + showNotification('💻 Portable Windows version download started!', 'success'); } document.getElementById('print-label-btn').addEventListener('click', function() {