From 7f2a24bae97b21c4bd0416ad768d070c68c89ba8 Mon Sep 17 00:00:00 2001 From: Flatlogic Bot Date: Wed, 11 Feb 2026 14:40:48 +0000 Subject: [PATCH] adding prefix for phone no --- assets/pasted-20260211-124352-68ac57b9.png | Bin 0 -> 10730 bytes assets/pasted-20260211-131304-152989f6.png | Bin 0 -> 10730 bytes config/__pycache__/wsgi.cpython-311.pyc | Bin 2067 -> 3471 bytes config/wsgi.py | 69 ++++++++++++------ core/__pycache__/views.cpython-311.pyc | Bin 122562 -> 123289 bytes core/templates/core/cashier_registry.html | 2 +- core/templates/core/customers.html | 41 ++++++++++- core/templates/core/suppliers.html | 4 +- core/views.py | 14 +++- manage.py | 68 ++++++++++------- .../pasted-20260211-124352-68ac57b9.png | Bin 0 -> 10730 bytes .../pasted-20260211-131304-152989f6.png | Bin 0 -> 10730 bytes 12 files changed, 142 insertions(+), 56 deletions(-) create mode 100644 assets/pasted-20260211-124352-68ac57b9.png create mode 100644 assets/pasted-20260211-131304-152989f6.png create mode 100644 staticfiles/pasted-20260211-124352-68ac57b9.png create mode 100644 staticfiles/pasted-20260211-131304-152989f6.png diff --git a/assets/pasted-20260211-124352-68ac57b9.png b/assets/pasted-20260211-124352-68ac57b9.png new file mode 100644 index 0000000000000000000000000000000000000000..3e2f8658d4017841044a6f287ac8b5c448316111 GIT binary patch literal 10730 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 MDMiUDaRdMV3t61H1ONa4 literal 0 HcmV?d00001 diff --git a/assets/pasted-20260211-131304-152989f6.png b/assets/pasted-20260211-131304-152989f6.png new file mode 100644 index 0000000000000000000000000000000000000000..3e2f8658d4017841044a6f287ac8b5c448316111 GIT binary patch literal 10730 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 MDMiUDaRdMV3t61H1ONa4 literal 0 HcmV?d00001 diff --git a/config/__pycache__/wsgi.cpython-311.pyc b/config/__pycache__/wsgi.cpython-311.pyc index 3595d6490858c7854a0b4f508c2444b96175f2cc..cc909250ed61b21dd51048d669441ea6e64096cb 100644 GIT binary patch literal 3471 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 diff --git a/config/wsgi.py b/config/wsgi.py index 0b34d00..28f3157 100644 --- a/config/wsgi.py +++ b/config/wsgi.py @@ -21,34 +21,55 @@ except ImportError: pass # --- FIX: Preload libraries for WeasyPrint/Pango --- -# Ensure LD_LIBRARY_PATH includes standard paths -if 'LD_LIBRARY_PATH' not in os.environ: - os.environ['LD_LIBRARY_PATH'] = '/usr/lib/x86_64-linux-gnu:/usr/lib' -else: - if '/usr/lib/x86_64-linux-gnu' not in os.environ['LD_LIBRARY_PATH']: - os.environ['LD_LIBRARY_PATH'] += ':/usr/lib/x86_64-linux-gnu' +# Manually load libraries using absolute paths +import ctypes +import ctypes.util +import traceback +import sys -# Manually load the library +lib_paths = [ + '/usr/lib/x86_64-linux-gnu/libglib-2.0.so.0', + '/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0', + '/usr/lib/x86_64-linux-gnu/libfontconfig.so.1', + '/usr/lib/x86_64-linux-gnu/libcairo.so.2', + '/usr/lib/x86_64-linux-gnu/libpango-1.0.so.0', + '/usr/lib/x86_64-linux-gnu/libpangoft2-1.0.so.0', +] + +for path in lib_paths: + try: + ctypes.CDLL(path) + except OSError: + pass + +# Try to import weasyprint try: - if not ctypes.util.find_library('libgobject-2.0-0'): - # Try to load known paths directly - candidates = [ - 'libgobject-2.0.so.0', - '/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0', - '/usr/lib/libgobject-2.0.so.0' - ] - for c in candidates: - try: - ctypes.CDLL(c) - break - except OSError: - continue -except Exception: - pass -# --------------------------------------------------- + import weasyprint +except Exception as e: + # Log error to file and stderr + error_msg = f"WeasyPrint Import Error: {str(e)}\n{traceback.format_exc()}" + sys.stderr.write(error_msg) + try: + with open("weasyprint_wsgi_error.log", "w") as f: + f.write(error_msg) + except Exception: + pass -from django.core.wsgi import get_wsgi_application + # Fallback to mock + import types + class MockHTML: + def __init__(self, string=None, base_url=None): + pass + def write_pdf(self, target=None): + raise OSError("WeasyPrint system dependencies are missing. PDF generation is disabled.") + + mock_wp = types.ModuleType("weasyprint") + mock_wp.HTML = MockHTML + sys.modules["weasyprint"] = mock_wp +# --------------------------------------------------- os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'config.settings') +from django.core.wsgi import get_wsgi_application + application = get_wsgi_application() \ No newline at end of file diff --git a/core/__pycache__/views.cpython-311.pyc b/core/__pycache__/views.cpython-311.pyc index 47ba767f4daaa62568fedd9bbf7ada73079dcf44..14d29208c18fa79e876720fb5ea36c559805ab3f 100644 GIT binary patch delta 2343 zcmZWq4Nz3q72fadzJ0K}uq=PFAOe9v*Ww?Fptfi&p+-}ysKKB37odn3uorb=1`(4w zDV9{*r=A*dl9)-bRFXKAxn?qLj5>|2@n?}1gBm5q#!1@<+MkI{OV3#|lXSW>`@Qd; zbM86kopbJeCw^`1J88vs#Kd?U{8O!MwL{~##dgPHYc!s=XS`KF$D@&mT{M(}>^%)w zO5=lQfsxhfUx{qY4db@FPgKJ;?GD84ky%E{CIWA7#0aVt@W-G)?oOAUT-XKC&+u>IsGp<%NR< zy}^PXMYYA!3In;8;4-z|{MU(>b^4X}n;q9z(N5RXK9{V1aKbJ2JJ zG|P`_w`p>$wf__A7L~_graP83YAU^GA<2H@`DlGC4rO2u!vS1ID$PwqC6y!~%^D?! zL!g%|)~-oJF&$1oE*`jVGC2_=I7K#Z!f1Ua5l0P-)h#1%&WUOIdubR1X6YH}h<90Y zC7A`VaWR43o(_}#d;|ggbQXe6tkdl|2pQO>f18V`2AF@+>Hu0{WQ-q~a z)&=p=>=YlGeZ-n@>2syn8)e0~S<@2Hi1&Qm`CW9mP^K4`V<9j{cP+r{z{Y*G*2pvB$jqcGi;=qZ_bjNBVi5~l95(}by@7Fk zfs&p;$+1nxH-`iBdjs?P0*iVAi^745-atjm?3=#0wnzGW89ly?Lpc|G8DZbJUf;Mr zUvZDG_*iP#SK8|W#`VLG@16LFFLxB?mGAK37R`rZnZfJIYQA&Vc&_+j?3W~bh^ z3U7NR^)pwO1?EV>{w^o`iY&LwGD()Z1+I&%Uf6&^pYBI8?WjYI$>-YP(D&-F3FxOE zJb_mCeUE$Vu^S)Jo_btIA#G|vhWlf2af|jhV2n3n6p475E;eAV`7c)P)%ELf-Iw&f z7_JbATr{gC>PJ+$1$jA<)FMd^M2tk$B$+N1HZ1HzdTk48+&4sjhtirc!TXh6RMCvb zynhj8WXlcuO*6)t|6##hJ=BbR&+IS5NA_J6+ek@enphnc zwoO=tm<~`)E5CQd%K){tVk~Y@OgqxKFz>hG4cws}J5Y=(baDq~dkvo4(H2kSW+#P@ z@a^-H^@!J{KZfZtU979pb9Z8)%O!6{2kHNc%!M=ADGcl-bQs4-*MX1hLo z07Zro?fhALivITt$TqwImcPWA-|cZo=E<~V4`;sMAWj=*3hTOb<|`;R+kCZ07%n)3sZ62k@ko;INu@i)LT41EbmOPqeCAdZ8;s^wB_dsiyHRd>XS3MD;zkWx ze+pCenz!Jw(#Nt`rARO2o7wMue062r#`P<|U%Rea71GWVC`=tECgTMr2owlR6qrmO zoIqYuk?>-HDGX0JGry6^pRLrBe7H+!$w^F`HeHmqbbYr#lE4g+k+5$G`#Ce7+BF;N z>l)QQ5ziFyx9R*zX+7M=q8#f}szKZOKy0Sj{V+EeIr zVy2#X8Xr1QL=V1)U6IRG$xWqlq~z97a?F(+HYL-pWUQ48rIOK7GDk`VM#(TJ z>9>-WD(Rh)rYUKclKv>^hmuApDZ7$vRD%?GrGqA&MZD(;mT+`OV~w77mWP8%`;bPj ZUP78?_>)1U7m{ckBF5CqZk;-ng zi6$)qOFAG5_(=$8rAFnF7&VcUswlLI7K%_Hpix1o2m}ytW~))-CVTe0nR93Eotbxc z(_YsnAG+Mz6B6Pb{JA;1zB)WS?0(;k)p7bqHwM6JWqWQMjkS?YMTtnEXKnP4A89xo zzr;8k7Zy_g7^KmfM0C^ly^x6_+U!9(WhNlOx-5zjq8OqdO+Wyy>ugbl28F#y)+gLp z3zz9+)2JR3u_=zW%|Mt|doaQ3CBD(L%>{3y`K360#)FAK66N*AQKU6`QAvxEk?G13 zT{q}e7m_K%i()#GjKT1+VkNSpy5nA?yN3Krr;}3fl7T$kl!gN)O7yBMoChZAC4G?; zg9mhI0PZufP=7WExdvA23pp5VpibxCii5FOqi>ABQ%fd+W2~;C8~$*X}`Mtjo686N-9>J$brgGMZv=x2~Ip>9Fn>cUh#nFg23*R%YbJ zT1%%s0tM?KaRg}TOfK~HNAV3FquLobhjLmp6FayD-p5cN^?^U)yD~PV7Rz1I&YsUI zhaY}p73k#S=xvyj>5Ey&D(s9`Rr9NZ%T;w%FgHdOu~xk-uvfrj$TieX;jP^2Ab%Y+ zWi~R#e9E+1Hk8k%kmHOe=a6T3ho|r>Phq>K=#ZxuiIq)UXTr9ML5`Hcf^yV4Ktl-V# zAcf|ka8Uc-Tk-i+Ij8STs9YQfR#gP6g2C!QjryAXEA`=dC|1n zS5)HT_`<`?)e(V7a=wdT=#*2AK2(Dzfi{}7 z6famk@u+htHlULN%Wwjx>0yO_*7p+O2U?*p%#Ny}36D^dLZf|^o%M3k1x{)YW2k;A zh+VzB9kOPwK!&8ACvb}H3?avkZZf*vE((N@h7V;K4I*V*u+tomQo)@>efc5s7$A zRBs6j3!5R*E*f9YM~_D7q9^K+kCXJn7WBa>dbb|Ud{6irP|THjr2%D5@TmFp*#?Y? zahl9$(Yf8ope=QX)05VtAcj}hHbz%(Zp1|67b8+IFqtklVklP7KtjmwmfT5_`x3oP z@Y^nqQ^9XQu*8tcrcj^>N&23Rc-8u6FC48jR#_}nf5oiWis4vCFK+#R%wcrzHjK7= zvHEEVod2)D#DNFtBinEqMy$F1802`35c-&Q#{F>#N&QY#45nmNla< zP2GvUxP_MOM0R32``_fi%ELq@nGttan*MMn78^Z^6dKnAx1GseE%|}y!89MN)MUxq z&G6ZM*xM@JpBz2jUz_ocY4>AuhnVf?BChQKc=WgL;W;=5u__fZ# zOfOPEqt+V2^oomq(^zK@Wqw^YnQKNbTK(D{%y!!Mv)K{L@inNd6{Gcpj}Y&|FnX|s z{|;`a>J}7bMCl&6)m@%c| zj7Y0D2zUj?ij9Pg6Sk2V59opwHH(63lbFYgc>?X&ha78?@VlseA5!VuKKO7Sxm!`- zoXYkreRnH5OpMoA`*F&|NV<6dYgfx%r{scC*)rsEy(qa!)Kvj_k(A7@lEGCnbxI~g zN#~WcTuEP*bWKTfl(a%g&6QMJNu8BcSV?J>6jI4ST)tvG@U^{s8(bJ~2A|Lpc0MY?9T-$*y`2+lhMyG@6Y_*~!fM${CmR~<(m^G~od BGg<%u diff --git a/core/templates/core/cashier_registry.html b/core/templates/core/cashier_registry.html index d32758f..a9c3958 100644 --- a/core/templates/core/cashier_registry.html +++ b/core/templates/core/cashier_registry.html @@ -25,7 +25,7 @@ + +
+ + +
+
+ + +
+
+ + +
+ + + + + + {% endfor %} @@ -89,7 +126,7 @@
- +
@@ -130,7 +167,7 @@ if (data.success) { if (stayOpen) { document.getElementById('addCustName').value = ''; - document.getElementById('addCustPhone').value = ''; + document.getElementById('addCustPhone').value = '968'; document.getElementById('addCustEmail').value = ''; document.getElementById('addCustAddress').value = ''; alert('{% trans "Customer added. You can add another one." %}'); diff --git a/core/templates/core/suppliers.html b/core/templates/core/suppliers.html index 2e2753c..7b078b6 100644 --- a/core/templates/core/suppliers.html +++ b/core/templates/core/suppliers.html @@ -126,7 +126,7 @@
- +