From 6a0344bb6df037ddcf0b1be9ac023e09505dac15 Mon Sep 17 00:00:00 2001 From: nataly Date: Mon, 20 May 2024 14:00:24 +0300 Subject: [PATCH] New changes. --- .../add/__pycache__/urls.cpython-311.pyc | Bin 1095 -> 1095 bytes .../add/__pycache__/views.cpython-311.pyc | Bin 9026 -> 9026 bytes osinaweb/billing/add/urls.py | 3 +- osinaweb/billing/add/views.py | 110 ------------------ .../__pycache__/admin.cpython-311.pyc | Bin 835 -> 828 bytes .../custom_context.cpython-311.pyc | Bin 3006 -> 2629 bytes .../__pycache__/models.cpython-311.pyc | Bin 5681 -> 5800 bytes .../__pycache__/views.cpython-311.pyc | Bin 17845 -> 19991 bytes ...0012_ticket_ticket_members.cpython-311.pyc | Bin 0 -> 1072 bytes ...lter_ticket_ticket_members.cpython-311.pyc | Bin 0 -> 956 bytes ...partment_ticket_department.cpython-311.pyc | Bin 0 -> 1040 bytes ...artment_ticket_departments.cpython-311.pyc | Bin 0 -> 805 bytes ...tstatusupdate_ticketstatus.cpython-311.pyc | Bin 0 -> 947 bytes osinaweb/db.sqlite3 | Bin 1310720 -> 1310720 bytes osinaweb/input.css | 8 ++ .../__pycache__/views.cpython-311.pyc | Bin 41338 -> 42317 bytes .../add/__pycache__/urls.cpython-311.pyc | Bin 3016 -> 3267 bytes .../add/__pycache__/views.cpython-311.pyc | Bin 29204 -> 30176 bytes osinaweb/osinacore/add/urls.py | 4 +- osinaweb/osinacore/add/views.py | 28 +++++ .../edit/__pycache__/urls.cpython-311.pyc | Bin 2927 -> 3057 bytes .../edit/__pycache__/views.cpython-311.pyc | Bin 28352 -> 28633 bytes osinaweb/osinacore/edit/urls.py | 1 + osinaweb/osinacore/edit/views.py | 8 ++ .../add_templates/add-point-modal.html | 39 +++++-- .../add-project-member-modal.html | 36 ++++++ .../details_templates/customer-details.html | 2 +- .../details_templates/project-details.html | 66 +++++------ .../details_templates/ticket-details.html | 96 +++++++++++++-- .../edit-customer-status-modal.html | 6 +- .../templates/listing_pages/customers.html | 39 ++++--- .../templates/listing_pages/projects.html | 10 +- .../templates/projects-by-status.html | 20 +++- osinaweb/static/dist/output.css | 29 ++--- osinaweb/static/js/pop-modals.js | 8 +- osinaweb/static/js/text-editor.js | 11 ++ 36 files changed, 308 insertions(+), 216 deletions(-) create mode 100644 osinaweb/customercore/migrations/__pycache__/0012_ticket_ticket_members.cpython-311.pyc create mode 100644 osinaweb/customercore/migrations/__pycache__/0013_alter_ticket_ticket_members.cpython-311.pyc create mode 100644 osinaweb/customercore/migrations/__pycache__/0014_remove_ticket_department_ticket_department.cpython-311.pyc create mode 100644 osinaweb/customercore/migrations/__pycache__/0015_rename_department_ticket_departments.cpython-311.pyc create mode 100644 osinaweb/customercore/migrations/__pycache__/0016_rename_ticketstatusupdate_ticketstatus.cpython-311.pyc create mode 100644 osinaweb/osinacore/templates/add_templates/add-project-member-modal.html create mode 100644 osinaweb/static/js/text-editor.js diff --git a/osinaweb/billing/add/__pycache__/urls.cpython-311.pyc b/osinaweb/billing/add/__pycache__/urls.cpython-311.pyc index e94441268fdc35f84360f46506e6f8e032a1b751..86ce99dad577ba65dd80fb4f5b71929b4eb0e35d 100644 GIT binary patch delta 20 acmX@kah!vDIWI340}!O#^xDX6!vX*|vjq46 delta 20 acmX@kah!vDIWI340}up1cHPKr!vX*|Uj*y` diff --git a/osinaweb/billing/add/__pycache__/views.cpython-311.pyc b/osinaweb/billing/add/__pycache__/views.cpython-311.pyc index c664344309e5db7dde080a25419aef809f135b14..733b30e4fd090bcdd8a340c417d3d898bc48bc90 100644 GIT binary patch delta 86 zcmX@)cF2u)IWI340}uq>^h&$5k#{#MBk$&utZP`=w19%eiIdN/', views.add_order, name='addorder'), - path('invoice-pdf//', views.add_invoice_pdf, name='addinvoice'), - path('payment-pdf//', views.add_payment_pdf, name='addpayment'), + path('service///', views.add_service_in_order, name='addserviceinorder'), diff --git a/osinaweb/billing/add/views.py b/osinaweb/billing/add/views.py index c1b41a70..e0882a59 100644 --- a/osinaweb/billing/add/views.py +++ b/osinaweb/billing/add/views.py @@ -8,7 +8,6 @@ import os from osinacore.decorators import * from django.core.files.base import ContentFile from django.db.models import Q -from weasyprint import HTML, CSS @staff_login_required @@ -211,116 +210,7 @@ def add_payment_comment_modal(request): -def add_invoice_pdf(request, order_id): - order = get_object_or_404(Order, id=order_id) - - current_year = str(timezone.now().year)[-2:] - last_invoice = Invoice.objects.all().last() - if last_invoice: - last_invoice_number = int(last_invoice.invoice_number.split('-')[1].split('+')[0]) - new_invoice_number = f"$0{current_year}-{last_invoice_number + 1}" - else: - new_invoice_number = f"$0{current_year}-1425" - - - - invoice = Invoice.objects.create( - invoice_number = new_invoice_number, - order=order, - date_created=datetime.now(), - ) - - template = get_template('details_templates/invoice-details.html') - context = {'order': order} - html_string = template.render(context) - - # Define the CSS string with Poppins font - css_string = ''' - @font-face { - font-family: 'Poppins'; - src: url('path_to_poppins_font_file.ttf') format('truetype'); /* Update the path to the font file */ - } - - body { - font-family: 'Poppins', sans-serif; /* Use Poppins font for the entire document */ - } - - /* Your existing CSS styles */ - /* Add or modify styles as needed */ - ''' - - # Generate PDF - pdf = HTML(string=html_string).write_pdf( - stylesheets=[ - CSS(string=css_string), - CSS(string='@page { margin: 30px; }') - ], - presentational_hints=True - ) - - filename = f'invoice_{invoice.invoice_number}.pdf' - pdf_content = ContentFile(pdf) - invoice.pdf.save(filename, pdf_content, save=True) - - - # Return PDF - response = HttpResponse(pdf, content_type='application/pdf') - response['Content-Disposition'] = 'attachment; filename="my_pdf.pdf"' - return response - - - - - - - -def add_payment_pdf(request, order_id): - order = get_object_or_404(Order, id=order_id) - payments = OrderPayment.objects.filter(order = order) - paid_amount = OrderPayment.objects.filter(order=order, date_paid__isnull=False).aggregate(total_paid=Sum('amount'))['total_paid'] or 0 - cart_total = order.get_cart_total - remaining_amount = cart_total - paid_amount - - - invoice = order.invoice - - # Render both invoice and payment details templates to HTML - invoice_template = get_template('details_templates/invoice-details.html') - payment_template = get_template('details_templates/payment-details.html') - invoice_html = invoice_template.render({'order': order}) - payment_html = payment_template.render({'order': order, 'payments':payments, 'remaining_amount':remaining_amount,}) - - # Combine the HTML content of both templates - combined_html = f"{invoice_html}
{payment_html}" - - # Define CSS - css_string = ''' - @font-face { - font-family: 'Poppins'; - src: url('path_to_poppins_font_file.ttf') format('truetype'); /* Update the path to the font file */ - } - - body { - font-family: 'Poppins', sans-serif; /* Use Poppins font for the entire document */ - } - - /* Your existing CSS styles */ - /* Add or modify styles as needed */ - ''' - - # Generate PDF - pdf = HTML(string=combined_html).write_pdf( - stylesheets=[ - CSS(string=css_string), - CSS(string='@page { margin: 30px; }') - ], - presentational_hints=True - ) - # Return PDF - response = HttpResponse(pdf, content_type='application/pdf') - response['Content-Disposition'] = 'attachment; filename="my_pdf.pdf"' - return response diff --git a/osinaweb/customercore/__pycache__/admin.cpython-311.pyc b/osinaweb/customercore/__pycache__/admin.cpython-311.pyc index db35170f1f72c39ef0937bfc0c9f405fb50dbf2f..22a6fcf7224c10239a929f428618ef344b2f7e0e 100644 GIT binary patch delta 54 zcmX@iwug;(IWI340}$-E;gzPhk@pZIFHcBja&~G-a7kiGY4PMojLR4|PVQv#ocy0j JZ1PK{C;-<-6AJ(U delta 69 zcmdnPc9@NKIWI340}w2F5a&~G-a7kiGX>n*lN@7Xsvveb`q=&0MJZGuK)l5 delta 606 zcmX>qvQM0EIWI340}w2FHSAgcrO5VFT>7;Bhnm}^*T*iwY&um&?| ziuh?V-eM^&PAv-2WV$ukljRU^6}N6mVo7RzVoFMC%4BZVPDY8zQ&~@h++t13EGjN3 z5&&9uiwn$-&r8fry(N;9SX>fcT7b|MpHz8^3&Fi5hO7c1uE{q!o~>Q@7B`Y~F(|kc zCckFO<~9Yg*nqe=h-q>nyODw{tJzxlE1C}1HQg_1x}OL?6LUe+{i0^n70sxR3_!`n zo7ovTcsb2JFaU|kyE%&D9!M!%kutn4Wpzo)YKQGbDbFiXp4X-PFG=}dlnT5e71-f@ zgJ0?c11qoD4L!>%dQMmLd?&D75zxM2XmiET9mLeVAfWp|&j>1N3KROk#-M6B*_g9U s2IR<<3`J%@s>lRL{Nk|5%}*)KNwq7onS7PgUs0Vgk>vveb`q=&013FM%>V!Z diff --git a/osinaweb/customercore/__pycache__/models.cpython-311.pyc b/osinaweb/customercore/__pycache__/models.cpython-311.pyc index 60c2878340b9a99088b466e08ee11a65fe699d99..5c3f4b4d3a4e3812b72b98c500a4087e0a8add65 100644 GIT binary patch delta 1436 zcmaiz&uAZ{bf?LmURGF+@Xr5WW-Qxcl@8#)v9#Xw?OIX^z&= zSz>8M{joBCE%Vorv#V>1^<{h4{%3Ck^RE!C10q9uAm0%w6Mcd)vVMj$c_V%!GSWE1 zP4Oce(wvs?D>Au>i^$UiO<1h$K{g^@=vj+^Rk{nWrsBsv=E&wzejH&}3$ZYUbbJXT zOZSkGwe>uDd|d1cDH@Gmi3O+bboEPU9eEi3%5NmMBd7QcWHFN05=V6Va>fBo=8$Fh z(QY)UV=s?v&yN|)?=HDk+1uw!X-_xJqu4QX7Q(dv1|RX|Y<9xZU3UUmRyM2gco&Vj zJe7lZH@Lz}QUME7DUul3bLh`Ucn_Psjj$& z8d6#n-UG%Kki8)LK%h%-2MF-_;jYefS7-NOzapqJZiS_GkY12ZFhz93pj95fjQe34 zHE7YZEOw6zXjsC>U;`C_Ya$<|s}+p%7~{MyKQA7q%Nbk+rT{Qe4){A8PJ=ZAvLB=k zWEl#dfGP0cA&`?G?2C+L7^WbQw40+sUc@g1NW-KhG0$+48t;bc#7H;FsZP@qFh~bStg6uf=QMd;^{hx6d%5XZ zcmI=z_0~##7~Ux0RVHbd{v==xTUM8GAOPv6j|(W%>_lMmHSfM}8vHOXeyZY*u2synHjoy<_pBXtt<|bcC}8N-FvHz467xvnPU6^b!0`n delta 1318 zcmaiyO-vI(6vublLQ9vW-9n4VhmnJ!DvBavkRVNIX)!56YbA|gv+it@Vq3^`Yt%&X zU?K+(nz?u|k$6Cf93)&w{5WV#Jb1uJIP8(LF(rEPt=Tj|l&R<7v zTi08x*h>>&2>^l@EoH~bJzLc3>7d@5LL#GH)%0Tp<(k$^HtpZ}RUYnp~rE zNSjfxp40NW;Y2%Y@}VYj8pC-*lw~!m6bh=A&C0T$$6eH0;3)?22}*3=Mm20GB;)a05Zf0pERNxm~e0>ZGRWFaqwgXE3i6!6LI8`OuAmuv~I zW<93pxUT5M!o?Y+=o*HnTjb3eJ#?MG^>D6{BIbAFZZJ*(dH}rucmq5D0Fj107>EZ0 zLm{JDXFb7ZV5=Vx1`JXd4h5l34arw-;0V}GNG?;Sh88(fDl0n%CjdvtxOmISY5*3SLdO7ofU|%dU3eT!P=w=v1b`)FYLZ|ApzcD3f^@m2 zs#!pi%)3^HK~C7u8+N3nm10(p`D_2Khg}DH4AE?rTr?jcOrE&gnkte{&_E0rARF#U zGwB5Bliu}WANBq-6PuoLvzfXb{0{?Z!v^u9%a&L z4bzdvn(4E~6@=4tonTLaJ#=YK4|FBw7b`kpxW_|*U?MsilY^1bXfPE2W0csFFvaKL z8kix&fwjYms%NJ2>=AGZb}G80f)5ZSml~$cE~(^GL%5rb604kbl2yv0ci-^S(Vv?} v#jG}fb0p*qM%wv9C2lX~lJ_rff&WK&bA+$qJ4)PMJn}tmA#2`s8;r^?hQ<_$ diff --git a/osinaweb/customercore/__pycache__/views.cpython-311.pyc b/osinaweb/customercore/__pycache__/views.cpython-311.pyc index ed6228da73cfde2aad3c1480642d35f68da2c9e6..b7ee1110eaf6f649490ff17d85864c6eac3eb85c 100644 GIT binary patch delta 7941 zcmb6;3ve69b$9rG2@oVf0tEOG_z@+M`q7q5Nt6_QY)K?-Q?%vKQX!akBtd}yy?3;1 z87P!Qb>UR0<*d^vu^O|}RJJ0O{W>T)0wstPYZC+59oKJ=9qJ~X1s>ypl*q|X5Hg%R=37#XFcN{R=36KX6wi6c}{E)?3cLf!09HkV`bb6 zSVtAM5wOlGY!hH>O4zi_Gz0NYfBMX`NV*brd-71$Hpcn6@HE706{Ctw3r*e<{ZtFYZd z%So=Ml?HU9dwO`qDv5C+JR6C|py4La5J^~0ge93o<5PgMVQnrfN2VlbStL=Gfgml# zb%VSy0J?Y6_x11cZhF?RxxW_L#Dl;KKr#SmgF>32g4~5D5hvtuLW)jAh(KBa-2}s% zsbUBPg3y}a0cgbm6&JksZ=2};u5DccFK|;jL6_ua^je=8oP(7`{dK_J)YIpU!}Msk z>vYN>J2fK5$u(%lEJdM+1I3UFLj5}^^1-QF-%Dly}hfxhRx+nS>y9s zf3Hw;9h7skq#*LFMxtzHU2*1pWi$J=HF2EQeY%oUl@#Wrd8VYU8Qca|G@)eNw_*`o z!1e*Vp-omVxXZ=X2z^3r1;Ls$CC%%($!*#!97o@`c6b*(*R7xec-4}!C2b2Hy4~8z z+vq84+d$G%&Xecl&01$rfUR8GYW{WC!JKZEOe$qh+8O_DJK8fV3yt*2-3@!{%O^U_ zo#{?F#FSfTO4?@dlVjyg?ss*mTKN&J&2fScgmbUkHT?2e5&YM5>YSRdx|CNwq4k0(IH5J^RXu}-1^?GJGNzcHAPHf9 zLhjKkw#bAWeL)O|qjAL+mBraGowbGB=9BYta|t4Y<1@q~vm$-XcD~!Hm?SwO&r75W z7!uravI7BH8rg(kD**b4J;d*%XY8TbhoPw$CZjR2%)Q}PQwQ&T^rGM7ra;y+))b%Q zXP~W?*L9a|C%GFO>4kQWPSN#kQw)MQCrjv`ijMUcw!N{aBu^w}=LRoy(}=S!-M2TE zn25xrL8xe?Q5YeiJGjVYeFN&VAYARZ)?I26G=v*EWdkg5axy#zep-$u;^8n%86onl z7?(js0#lPoRoR8Q5%GN6Sajl?D7QU6C&oo#pzYX&RuMx=7&JK-i^!t1H7=eH%dA)5 zv^*Q@(GjKr~glt^+IReXb29M~Z|D@syiioR;UknU2fj}wSX$AFz;PCPdQF+@^K zpio&P1XZZGCgvqMF)NZel0Ze1Er2EXAuG1SCE*p*tSC<>1k!^9{gfyx4j6#^!tzUV zqGDTHsA6E#S)(#dI67PHYZOV*LljgT>Y`6FTcB?{Hl!5?G$tp(tWX5SI0qqARt*Gw zsA5}NCc(%=(8nsC!$*!Dd}?Sce022j;qZ~+gU5zQJyPum8W22&0L`VRku<`OVu+9_ z(7?I#_)Cr<`8Wrktm2VWi(R*4YbHsa#g5EOnev_LhCr-m<~)F$Ym2yuEJr4$amSUK zwWY)6OG=HpXGKj*ijlPy^E1*s+ZuvjxZ;G3kH(AJ2%4QFiP7bIqk+zv^8! zx8}^P1&=plRzYJ=*1IWVr@wNJJDWG;o44kh2eSS>nG$v5xH`ga57uWAk* zYihmbxZ~gO)|PK?`BvYxzSTOL$99hc@EL-PY1PYFU9Z`{YJb&v*_m+`EH!zHf5p}$j&=6YXY}N>`!pxC^ci^3)i$huO z06dvT?=)}DZW%84+X@{$-#wo1cx2V6e}b=BH(f980hG4RHPd}DX!u}>WhSEjC}-kG_z`_`uH$#B+jHs?5-cbtU^JoK+! z2b)=zSIWC!Low?@+rIx1{YhXueb!xXxWbcnm!5YI@HI)@Oeu$3sDVho!A@7-@zzO+F(wT%zG-+RSmBnT?G_Ox6+^{GuiAZycwdJcn$qAmM zF3P7|WvK)w)FoY2k-2_^1v}=VSzPTguu!4KSQL=#Mu5{pMAUrP{G0%BhJX)CbEFSw zV-QIUlMsC1*QCZQascpU0qZF?YM|{x*XPHpu*zBsTQcw%Xt6?_PF)&?V-~x}Gg$i~f^h`Dh9HdKEC8jZ=#Xc{+2=$8PG5WxBD$p5 zUx>u!MJbH&okXzvFoF>b1FECnj%^G)WCB4c;t&CwXoC+7F>W=)Sc~&U1$AX?-54TB z6o6tc%7YPsoI^BbEhNTq4|8M|s~81H96n1-P*=7TS0MnDj6$N%k2#|rIz>zwH+=1c+JLpS>W_oe;^I@6zc?0Xr<(GpHlS#Gu*EDLGqOyFd<6%X1TiMc zqGFl=_V9@|)B;wuDa>nbm`Ef24{t{wilfvr>xK)4a7h+qBB4K2ZAQII2+?~UKOJwh z8NUXUg{5ethv$QIRbNl9G`+@m&^F)x{pCWD$Dya1MH!ii6A=-U2(BPt#);<-HW66l zcYKY;uS5Gb{h{wfiMx@u`k#IX6P9%h*jP+AajYt$BNB^+AxXj`hD3e`Xdlt<`McNg z`8WRud>8%w=Fv1Njmf7NS*ELf%b*cU0#o1cb1$i)gSN_N#tkIjLcnCGR8%Q34l_Oy zxdvTV;FZwrT;%S$yqA+y4vd0aZntmgZXluGN9KX1m`{r2h3JHcrytCYNhe^T;ns3( zI0s1a`B;pc2Liz}9{B3F=o@Wc?D;lgh7hc6!kgGkB6tdc89^6qY2V;xOZpDB-$L*Q z^ojQRjn|>7SV{_f8!2pwc>G5-vjW?6xjkT91l%V}-*10!%?d8-Naxo(9vr4T0$2IWZG}Cdyq~9>3yIYdHPA`{_4vwRF4bZ`#;d(DRr{D?;Ubw=79OPWelC)6wwl@0Sc2~%nw30_49k9Vntibh_RWKH>lDtXt zf*rG^#;SXj%LkIC&!s)B(R!=L#gZnFA_iA!Cb+(_tlcgxIB_QWy^y_W(OkX+7;pfR zod8~pwAu@tR4n!$pBZ z4ry3+QQ$~As?rhX2s3-7Nezc;E&vB&@MPhLAcz8d5FU2Km5Yf2qwTy<*ISKMOow6# zNfZd?zc+ZY3x39KsNR><(dkW3r%wUuLDs5RBJp?v4r-#JACA08@MBWks!;0rEsTd! zLo5R6z)mEZB6DyY7qm`A$)OW@2gx?okAnvn$jgYRpN|tU9TAGlkirv*c{si@Yj#$6 z9mS5$tvI_9Sl0-jkIK{QHKEk4r!pr53ixA~k^B$=JBiv+Y&?gi@m}T65YM6$`)FVr zx#HKZee-}>=Z1=MkiP(Q9efqiHvqs9(bM!s--@Su+0*@A;|~J)?Za75cg{1C_l#UT zaW~Yr656#K+I6S7CENN)u6Y0scdPm|*RlH^r|U3%h9GNbgOK06YsJ5R*}p$~;HjMd z>Ae5xtf8?`*Kl#D(9n2sq~Pg19_}*40&Tx2(83m))HUlR0;9-aXu#b>nl_9awRPmffL+qdE8H zynAz&Js^$Kx8i7BcC;>-a*po2qdUu!?brtODpEj5bD=7G_FtM+SBb6A3j1^E*M=!ckn zk`J+lhDkCA&HzyKU`pgi*woho?6Ih3iD?8#b!KOv^T*iDq}n?92=UB>Pz=q4FtG0o z8kYgJZ|U~VSNMRMC_c0td?**(l@IP(3GQ7E?#%@U^T9#-+(QRcU#}%ln{@r;OUU^W zf>!}lW+&upNI@WgA(G$5R&dF``JxyF9#(#o7mzJ9M z?p=$ZM*94|Upf932xH{$klDvHIoN*kAEDY)nTIII5C7B&KNo?DDh8XpG9xK3X1qd(f;(fBH+Xu}@1t7} zI4jt_a-h5ZLG0*<2ZGk0!pJ4qs{8a^znA{9YVg>>&l&vM!C=F`!r(u}ef}4yuv~kj zXCwXa;BThg!b~JSmFSyD5U~&ML)m#t@fOkARPPNNOKDgvF$FhmM0|c8{$3LZUMJ&UYj6<8OEZFpD%B)0nPr(M%L2(FHjg8C z9|5{gf}aIJTOhbG1a(SKJp`9Y_9DQ{ho!i`u-@M|ge&uCdt9Jw2!M<@u&nor)dR oL3>rVmGwZl)`8(Bd3yIy&L84W00)F?bcP$HKR*0Z1Fr3V0J`~h>i_@% delta 5771 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 NL$smePkLPWe*vc_LKgr4 diff --git a/osinaweb/customercore/migrations/__pycache__/0012_ticket_ticket_members.cpython-311.pyc b/osinaweb/customercore/migrations/__pycache__/0012_ticket_ticket_members.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..53990d453df49e36a682c8d5e8a7853785ed19f3 GIT binary patch literal 1072 zcmZuvPfyf96rbt8?JkSxhQx!YV2Erl1Uwo;+ys;m7L7nmnl+QQGpsHBv$Wk1+0&vRyeCRTk*MX+| z=35O?H6n3r`|U^*XvMSJp%L4GA5p~%FmWSma4cK0BpJH;&cqQQK!+IUf&f@Jscb93|aD7LL_5_db;h)GBcix-OuKdR(rdM{s*M?8~+(S{~b z*>nwmn@WDyb!jyuF1r9D-|z?(;y@D_d7Q9ZBV~Gd%O);f)2dWOnI0ipL5TTvUBYk` zp`EVba$kf(ULGBfc8yNQFqs{b4)HPZt-X*pkB&7qH37`HD5+!o7#yV=fOSYpvK!9ldc#KCZ;3MkjVRT6dP zL`~|iFVse&Hu~y9DvRUF!D?CsA%GoUsG}z1x@2)RZMxl~||HWY?xj%i$4cB*A HvrPT~Q?nwD literal 0 HcmV?d00001 diff --git a/osinaweb/customercore/migrations/__pycache__/0013_alter_ticket_ticket_members.cpython-311.pyc b/osinaweb/customercore/migrations/__pycache__/0013_alter_ticket_ticket_members.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..288db2452a19e968a09db2330f20e7509144dc49 GIT binary patch literal 956 zcmZuvPiqrF6rb7MY_dzDHHbpBR-s7ZA*2c-QUpO1iYbCcVTlf#%p`2Gf8y+h(&mzb z2amn=8&t)9fPRb!IfS`-^0p;C_2iq~Y_-%kJ8#~u{{i< zz+*hASgzOCACkyv_gR!J9`jm^!`;%bxUxtu;@f*S&O6lL>`rIEgO1~}swQ$R*Y^8D z^M|f0ik!K2#3=D?j|n9Tsw!|N`AQ>N63=xU=F+XIAqpgk6CzAPpl;|gu#1Fz8rrU` zl^$gS=2Pak9Tsx=M8bUTMvT9dr*KJ@xZ1G&-R(f?Br42cz!neo9nB@1XWoma&G!NC z-+jY_9&1NoGr1F?y{6B05}WpHzZ<0S9oB08%UkpBFVF-A9}!z($Oyd1S8cG%b?BKW zX@nm^jn7A{BjdrW@Hoz?*Y)x1xQL89U(9J?Wp;CQcJ1D*T-m=rEmyup$7_?uhe>O1 zQXc&*kEZ2OoYxHV1c5r0DpvKfKHijr-_9Ct!K)bQRcf@AFqW{CLb@f(lG+up&I%hT s?a%lsxEN;m4pgjSi~%ODPEh6Y7waXg$LO-!H>XQ$Co*yRpKQ|i4=)`HbpQYW literal 0 HcmV?d00001 diff --git a/osinaweb/customercore/migrations/__pycache__/0014_remove_ticket_department_ticket_department.cpython-311.pyc b/osinaweb/customercore/migrations/__pycache__/0014_remove_ticket_department_ticket_department.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..1183958661576e35045cf7fa43bb12e1d2e90050 GIT binary patch literal 1040 zcmZuvO;6N77@ldnr7fVaA@KkR2Vz(cnd9LPoH+T;lr9jQw$Hp@Gw(Cc^vCF^hhQA_m)1TS2>nq` zF-jN4=^_|=h$4zZ6k#7nhHqeGpqGdm-w-t!ZkxrTeXtG&o^Mj?Evl6Ms&vJWUesFW zfoLUhD(xttEKHllN;PXTFrR(}*h38Ym?Gbxm>TPbZyJbM?Sd9Grq*F;A7~%Imk(WG z7oMts$WYrEL~Lr)p+o07%|rLP54~LK0r6q!E*Fe}zMG`2IA|uE$+24P(E>?DAi60L zLE3@zNVA)YBw}1w%+_iP4@eLS#))V(J4_T)#G(e{pg;vizu zQn~_E@EaB-pV7(0 z3!OpJO*7Y$6ZP#PAscqU0;`JntZ?Z=Hs(|&&f29smJ|tYz zDMY*!;%20}vBlL-pg|ewHo(r{$!z4_?>mcG$(*ovUS%W5o%!zdoV)!yGyU;t2)o`1 z0ytBUImn$->B&6ZFVFAZ>y_t!ile#XXCIEs{_nEiEBo1yrIrDlDaeMsvc0pU9zIo& zS*cjk%}-sW4Xv{lG^abM%5?2CSm(}SepyfW47eD+^c_HEVvOMkxN?lDXaC9SzW)F)ryE%S literal 0 HcmV?d00001 diff --git a/osinaweb/customercore/migrations/__pycache__/0015_rename_department_ticket_departments.cpython-311.pyc b/osinaweb/customercore/migrations/__pycache__/0015_rename_department_ticket_departments.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..148cc92fe5f7549f6655bc9fab9a6be600cb9a04 GIT binary patch literal 805 zcmZuvF>ljA6nY-`yW?-m}oD<8eH*8R!dl}Tr9(s@uUG+gf- zC|sIQ*v@TdykolR)Z6Znt8P{Kx;QAks5F-iqomy-bk*9bynL?iQA&RPzE literal 0 HcmV?d00001 diff --git a/osinaweb/customercore/migrations/__pycache__/0016_rename_ticketstatusupdate_ticketstatus.cpython-311.pyc b/osinaweb/customercore/migrations/__pycache__/0016_rename_ticketstatusupdate_ticketstatus.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ab4e95e07b829f15eab64f4d15f68a74a3c20038 GIT binary patch literal 947 zcmZuvPjAyO6t|N$OS4W)(+Uy?7y^mqGK~Wq5JFUH1)A1@)>TMRBrA=*DqRzoI91uL z2M!#$?Hd%(_yBwikb00anTHkFp2!rSkld}Ra-|dP^(!#M2(lV`aUl&G6KT* z>Y+MAgJRO-7VVQc^`F5^@^SUH_Sk(*AsJt;SGVV%qQ8^JdJM(Q$9E*pJ=K>2t}jt&Nr~N{7wHhMJP4O W&`80*>Vq{|zjq-6m;Z^X9)1H<#R1s> literal 0 HcmV?d00001 diff --git a/osinaweb/db.sqlite3 b/osinaweb/db.sqlite3 index 97d1cc7708e591e39e2bdee5575870b8ad245c38..6794d59e232a86497f73273fe0048adcce1053d2 100644 GIT binary patch delta 2581 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 diff --git a/osinaweb/input.css b/osinaweb/input.css index 0071fbed..ad982bd3 100644 --- a/osinaweb/input.css +++ b/osinaweb/input.css @@ -15,6 +15,14 @@ background: #5a5a5a00; } +.rtl { + direction: rtl; +} + +.ltr { + direction: ltr; +} + /* SCROLL BAR OF REACTION DETAILS POPUP */ .reactionDetails::-webkit-scrollbar { diff --git a/osinaweb/osinacore/__pycache__/views.cpython-311.pyc b/osinaweb/osinacore/__pycache__/views.cpython-311.pyc index c095373f77e97c45ac838cbc00e6e50bc8c5e844..2b0b0159a356cad648263864986eaf9829516951 100644 GIT binary patch delta 4492 zcmd5Q?Bi=vCMm9k=KV>dLI{K6aLIR8agxT+?hcG0JXdR!7Hm*RZ;)tFyZ2+_bg|zkFVN{j8Y%h|OjZ;5nIGzT?imUu8ct(;`DN2i{Mg(%+o9 zlSu0$a@fIkEpW1FSF7yV4m+z{T9e&j#bNmPrB0DOHLJCO>fmS#L=AkFHtk`r#k31uEl@Mmi|#|(n-IJ}u>o#4({ z^`+9#OM5y3+r!>=|6?R&>hg8_+5(i5fv#-<8bWfkPoJ`^yKFV>X`_Kqh^6N^Y$8ud?W(dUpE8Tv0Qy zMcY&{Y-7`#i`bm3Tw}zj8QB`Y%C70K=SgisM26RdOSz>pV%E%T;o>s(q$j5|OUt5j zw5$%kU%-YC0gm6;2}=bARknI+VZQkoe8%JOW*#C8F4W{9g&n=tc?sFZG1;Pv#|67T z(}a#OMZ)-Y>ws;Oc{;MksE7qVFrVb09ag$TY5w8v$EEL1Gh+DvbW6h}+@i^_Fu{n~ zFJruP`w62mp)j(qDxH~P)TvoayU%J#ZguRXgzBx#D@!h=y6T%>_g zuVYN-o2?W$(AT`Y9$EcQ$pyA3cn41p6qyV9+}{i&V*khWDoS@Xm>@NaanG z_E3L-LXPUh=a4n9x7Dt!-XxMdK+;v^lT%61=9Iz$}iwClk{i-`HShDIl474VT z%Hl;$iK1DtqFKX5o_LXGU_~;gC@q+6^+}gI?wWo`N#?nRYGQe{(Y)HEV@kr|jyc?q zP91hM#T`vi{u^ zj`$z>p<>Jt+z%s@Txmg;=5iR2lci-*b4ik=u4Gsp5!mL;6MF46UP2^xXrq(;e08p5 zf>EdS6RQJ+WN~KW+DVcE%-8hRwSGcuoOybkUCIIG+xlDU))Ha|rfRVRgChJ%U$&u@ zkUY-CBa$L~qCdH@gh24WzNtaZ2ZllX^|fiS@^hTaQH1va+#>xDY0O*e=?BO$(9fA; z^G5P9>)c$v0fU%J>EDprhj1l8%9;u6b(!NFvr8s#@DMj;Lc9>nQf{yasFa*Z4z!qk zu(?($1(uDe*S}Lz6)$W^6gI^Qn}!Q##0zI63O%tx&v0Q&ys$;LZ7~wL92HGr`8U)^ z6+o7=B{#eve+@SKD%o>xC#&$*$W_?qYqrK)B~1mgR=?TXNNg#b*a3jYM4Dp1-Rf1` z*pIX8S-G!Dnhx!m`U>AF;;cbYEdq|9bwKr1gMmEu+%~7&fPzN$?zX9xW+1PCbP@8g z)xP=qvh5Fvq=tPQXtKS8178LJKc-mij+aYj;V_;^xohkh*JNhFY;B&B%di9XN?F2? zoG}%41?X(#dYG@xE42c-N`J9!l2Oj6XXiW1$r<)d=ZyYyXwQx?6#-K*PwVtlh>lQb>Q*>_RC&H+5pW*^k;k1gq&kf&}quJ@lDw2 zo=|~wE%f<~J~?z3$>-9mP{mQ4kQ8nY2Lp6DI}@Jc<}#dd2tTH*tc=!UA7w`%ynUxP z(A&N}M7MzWCB16*eTLe9fw0e9wXCITWm#1(Uo3ub_8E54vOZH+dv}?ytq0aG$=>_% z-T6z==p-0Jv8Zw@ne|Ju!9CT)%TDZ>LbkHRo>nOc{oc^0^u=V-!~VYakHpE|-1m@Y zGYwkrCJ*-{qBW0|vdFtvOUB4FI`JzxmK3L_KGOwSxj?ytIsnn#ewy*<~l>XOo&MOzjktI>pRQF*Wm~N-^(IOh7b3VB^tSki?|JYOv1B?~kQOcmIt{+%-=>hNL;wH) delta 4016 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 delta 152 zcmX>sc|u%$IWI340}w2FazC{+;T|okNF;;|V`Lh79FP&Px1 z&Nz*B$d4j(hC&&tNuSd=O@GkX6oXi6LsPReI$5cIq$5n2Mb6YY50gf_^WJaH{hi-E z_ug~PdxO8QAAe=0;|U2y0mt_#Pj$Yw<$x)b4V=u$Vz#CI!U)o1>*fHn)LYpsG>1S(9_Z8 zkvYYQn%YAlPnTbj+rj}N55um~4buDQ%2mHCy{vPLGX5?FG!d8)<`Z0ju)QMS3wo8X zB9H1cmJdUuEL|EV0nC==v7@luS!fzHa62v3LJUKTvqbtB=RGj!{5(!VONZ}oi43-{ zsT8>zEKjb4W7QV8_(aPqvO$iKmkfy`n4B?u7e=EX$M%XI)+dFR{>uqMuOJ(Hr4fua zMiI4vC5dzK<7h7)o}ZxUC_+a?x#Bw@1KME@{lBzx+GlL+WfVSr!A%qMFc5U!S(2QDWr?wz%dbjka zkv>4BAA%!JCFP>oc0wOn-4sdRgwF+Y^R&4+vZPtHulZVJ2jS*gYt|>Yf@c%#BDk*s z-XiV@6qGyJJFug?(7GtUPk9JVm6u3oP(PyHC_kfPpTS6_QyNF&yn3y&NN@OpVx5Kb zx{cBVn%C9m>aK`}^JvD4YHNL&m^ej>RS2UZuOWL1MqTUKIk@hsXAxN4P$7Mbv<1^12FS+d)VaQ!2eTVKM^{RW4u}L`D^q%nt zBq~MBSqQe*=cogl@U7WtzQ|~6nxmRzC_C%rOjbn$apo{{2m*P)E8EyS>{F~+e-UwqfD-WE2sE7~n1e~h%5K9IWu2tQ zE_q$e>zvT1Ye&-aIg*ggUm&SsfD7Ecq_C3@U=P_IyobVH;3HxG2)NN7a47J?tOYxvR$j delta 1132 zcmZvbdq`7p6vyxHZg;Z5=9<{ULQIUhWtIi@VB%w07BWQfkv-<>-sYv+^tVM1qJsRR z`l~u=@5quuqC|fQ_D7_V7(!(9M=%H~iojk=is%7$&NVcm%lPoS-}Bh{opbJsckI+_ z=DO~5IwX9qyeiptsp^DlI;-oNo5f~kXr5+v4GlNQYCd%{b&r3oi`m#~H~hwz`6 zc#_^|Yz-J1r>t>TFd8*NVOdN9c;cOmh?Fj}+U`)UUT7~XSMK6*SbQ&gBfIb8F+n9q@Nh_a0hdds zgTK-t+~vu#r=Mb|<_>wh_5F}rQOx?_WmP7$R?KGu&|l%R4Wh>wgGjYs)K(VBsS{!R z0VPN!48X0bC1zwXMrBo(C_^Zxh;a1~WA|W1ZM*vs3iD*Fg%)747Q1k*&z663 z0d6BL>oYly5(Wr=1=H(W!U*_{H1+`uqe%Hdg6K3JT8qqTtbBwNbF6#l^p5Zzp~`V* z%-FhJj|Fx$YQdP!KalAo;S*s5dc#ZES9l*TSoVzsD/', views.add_task, name='addprojecttask'), path('task///', views.add_task, name='adduserstorytask'), path('point//', views.add_point_modal, name='addpointmodal'), + path('taskpoint//', views.save_point_modal, name='savepointmodal'), path('epic//', views.add_epic, name='addepic'), path('note/', views.add_note_modal, name='addnotemodal'), path('dailyreport/', views.add_daily_report, name='adddailyreport'), @@ -30,5 +30,5 @@ urlpatterns = [ path('reaction///', views.add_reaction, name='add_reaction'), path('ticket//', views.add_ticket, name='addticket'), path('ticketupdate//', views.add_ticket_update, name='addticketupdate'), - + path('add_project_momber', views.add_project_member_modal, name='addprojectmembermodal'), ] \ No newline at end of file diff --git a/osinaweb/osinacore/add/views.py b/osinaweb/osinacore/add/views.py index 758ee733..ef3a5f0c 100644 --- a/osinaweb/osinacore/add/views.py +++ b/osinaweb/osinacore/add/views.py @@ -284,6 +284,15 @@ def add_credential_modal(request, *args, **kwargs): return render(request, 'add_templates/add-credentials-modal.html', context) +@staff_login_required +def add_project_member_modal(request, *args, **kwargs): + + context = { + + } + return render(request, 'add_templates/add-project-member-modal.html', context) + + @staff_login_required @@ -389,6 +398,25 @@ def add_point_modal(request, task_id): +@staff_login_required +def save_point_modal(request, task_id): + task = get_object_or_404(Task, task_id=task_id) + if request.method == 'POST': + text = request.POST.get('text') + point = Point( + text = text, + task = task, + status='Not Completed' + ) + point.save() + return JsonResponse({'success': True, 'message': 'Point saved successfully.'}) + + context = { + 'task' : task, + + } + return render(request, 'add_templates/add-point-modal.html', context) + @staff_login_required diff --git a/osinaweb/osinacore/edit/__pycache__/urls.cpython-311.pyc b/osinaweb/osinacore/edit/__pycache__/urls.cpython-311.pyc index bd808bfb9990d7633ddcc52967f4541095a27b6e..e6b0f326a8f1e91cb6caa917a358c56be301f1d4 100644 GIT binary patch delta 276 zcmaDa_EB78IWI340}$lh^-7z?!NBks#DM`xDC4sj^G1y~OcOV-YU-vkXGy^1Q}oub zEn{Y2SPjGwkS-b}nW7)eplL8!j@eK17GH8{aY=q|YEf}XVo7Q7E%DTp%o0?w-29Zp zoXt7RiY$y$ll#~;rKLb>;$e#7Av)v1$|i4Pza=FOw5kZ?h9Z#riljhDLyyow`- z%LvG11mfa^$qJmlqLMRAuSi>8aEiXb5_6Fy<_b&94Hk~cft)g%TRCqt@*7L>Gc|C7 JV37e(697l8NG|{Y delta 146 zcmew;{$5ODIWI340}w2Fnwy#d#h7 diff --git a/osinaweb/osinacore/edit/__pycache__/views.cpython-311.pyc b/osinaweb/osinacore/edit/__pycache__/views.cpython-311.pyc index 4e07b8e18e20ac9a455476b870b5b735212081c5..6e93c8d24b6246c4dfe972371664f65998726b39 100644 GIT binary patch delta 3056 zcmb`Je^69a6vy{2yamJs6+s2m6+uO01Ef%pA0h&xpebllx~}XK7Z;cAJ~Z&hI*nsF zD*m`l<&QC^CetY=?Uj|5VVc&crKVH9rtFti(@bNT{ozbAo$p;>mC+hz+8I9Y+;i@^ z_nvd^JCF9S*_Ep->J_WCmx+G6zN%Q%P_Z>?ARBdPWM6ZlYIP;7HSHzKt1!!7ZIUZ- zmML|xUSM7q#@MzI{WC|A;W?Arw2Eo0V-`JDnp|up+Z#g8^cVP%qq(ZpE}U8Y{dLVg z&D*H*bf4zbntkbwUYFBjU#vBH_A?$z^Ha@yI6Zg@!DlAeYI z`tvlJV28sH!Wz>Ji#gh|rtDU@sdv9EBhM#H{dmrW$eK%$HRnS^YxpR=J>p@-kNG?U z$ON*0u|PJ#2-RAeR6{A9GHvoK{t(njfC8ig@~jbovr5G{XvYJ&z=J>m!3bZfE_Zmm z_1-{C5u~%(Y+_4vf-;fh@%q8&pA}{o+hfmK^5HdEEQy;?SOT#SCZBXkp2NKF_;r%G^7!b^94TdtPK7pX5Vm`DEU;!W#>x6_O8qt(kk!VX|vqhn; zR%s;N4t=-nbV$7Pi@`)MFb}8(<_mvvE?X#$B##*o+)}x7OYwK|B!$!D%lhP$WJ_!? zWpY)yj9siwE4BpU5U0{|nM1HK8UBUXqFa_^=7zu^(>_$50*E6Rp_7~3bzH?*-p6H- zmIF@!GK3aLt-!q!*9?P9T-3Zk7*ewm>Qw;JXTz9&;=7q9FSkuQSYsvJhUXVU7glS?|Mu7$Uw5H0t@@K|i<`?}k?Uuj^ zL}_M`@)X$<#fHqAWC@$|v;<@7RVQAaF5CXNB zK;I0PeN%JR^ZlfLTK}uKGL#(A^ML7cLC?NaFdywSqknh*~ z7~=H&7=YOM2SA|>YzJf{3M3piwWGZs?^Fcr2Qd5)I02j#_S!@-VEQoS6B-`X^QWH( ztwtcXBW&rm8O~;(>bfJ6x8d^+A$3p>gAmo#MgDsQV8fE_!2K)1?-zt&^*DW+!&#@f zm$|hTeiG}*bbbWs6u}osp!-BW5mPgy*XK06!bo4KKVF-{^aZmcL;PnjTh{L^q+scS zRU6pDfU(Xw;8Wl;;5={v=$42QSxOr$?LZGJc@aLS7)6-QBhkQA^Vy(F2+S+iccHmxBj}Ckb?pJkwQM|aIs!#V~ zZ*z`SexfBK^l{E>O6(U{UDotVNF8~YSfAv-it)F=cR(;L!D{#PdSjjYR{MKcyVAht zc`^R?l3V{P16bk*;78yZa2+@)G8Py0`h~ADU(3LE#mfg8lh zj}XJu07r$ykPwZ4C<1wkKT!~W1A;_QUqVn&VkA)$^&b)w@AnodG+T6uOZMq`=iGbG z{ho8*ecxV|j$e|j`z)5EIR5wim06uy({^i)ly+o7s=?GT#v5nP*A^PKB+$mROzm8f zTMjz-KvoVofr-E*pn^j;s(n2{U7p=Ecb1n`!CefP#-;Ec~A|96je8MhQex)v4!x)D?wEs-NU-Of&tZsO0h+ly%=~9h!*R9 zJPI8t5go$O3hz>&4G;~qjZ3# zHddr!VSaywRtA~4F8XL)b!-ODe7Bd|?g)vxv{;?>ee zDJts}i`Wnwt*HLaPX5aCdmzZfkz-_UDl|ur-~sYBtxNilkKQ50#VIFgQj0^2pEFS& z*w20JCEyj{An+=12sjLAz$3tF4tvJUjlyvh5U#Ky(_ihcicf4_&&Z9?$)K5!g3LBGwLp7b#{HRw8YQ&*3qonJ6Eejy~? zNVJvP=KFhCyIqbP3ltWDq)DH|L#fBxLO2nQM;TwfCH@_6a$wq`kMvYywP9O*8PQ>D(mYhZE&o;z zEcqSqJ#YoM3Y?&lP`&vYH%qx_@Ks~@>abnFZeS0v7r;%(aBVQWK@7)@q4ew;?Fr|Zf90mc|CL`1^ilXl!(2%l IT-j{+8}ck-rvLx| diff --git a/osinaweb/osinacore/edit/urls.py b/osinaweb/osinacore/edit/urls.py index 33bb189d..aa4de05a 100644 --- a/osinaweb/osinacore/edit/urls.py +++ b/osinaweb/osinacore/edit/urls.py @@ -5,6 +5,7 @@ from . import views urlpatterns = [ path('customer//', views.edit_customer, name='editcustomer'), + path('customerstatus', views.edit_customer_status_modal, name='editcustomerstatusmodal'), path('business//', views.edit_business, name='editbusiness'), path('staff//', views.edit_staff, name='editstaff'), path('project//', views.edit_project, name='editproject'), diff --git a/osinaweb/osinacore/edit/views.py b/osinaweb/osinacore/edit/views.py index 2d96c4e4..b36b7c4d 100644 --- a/osinaweb/osinacore/edit/views.py +++ b/osinaweb/osinacore/edit/views.py @@ -43,6 +43,14 @@ def edit_customer(request, customer_id): } return render(request, 'edit_templates/edit-customer.html', context) +@staff_login_required +def edit_customer_status_modal(request): + + context = { + + } + + return render(request, 'edit_templates/edit-customer-status-modal.html', context) diff --git a/osinaweb/osinacore/templates/add_templates/add-point-modal.html b/osinaweb/osinacore/templates/add_templates/add-point-modal.html index d5c91300..1bc9469a 100644 --- a/osinaweb/osinacore/templates/add_templates/add-point-modal.html +++ b/osinaweb/osinacore/templates/add_templates/add-point-modal.html @@ -14,28 +14,45 @@ -
+ {% csrf_token %}

Add Point

+ class="w-full p-3 border border-gray-300 rounded-md bg-transparent outline-none mt-4" required id="pointInput">
- -

- -

- -
+
+ + class="w-fit bg-osiblue border border-osiblue rounded-md text-white px-5 py-1 hover:bg-white hover:text-osiblue duration-300">Save and Continue
+ + + \ No newline at end of file diff --git a/osinaweb/osinacore/templates/add_templates/add-project-member-modal.html b/osinaweb/osinacore/templates/add_templates/add-project-member-modal.html new file mode 100644 index 00000000..9548f934 --- /dev/null +++ b/osinaweb/osinacore/templates/add_templates/add-project-member-modal.html @@ -0,0 +1,36 @@ +{% load static %} + + + + + + + + Osina + + + + + + + +
+ {% csrf_token %} +

Add Member

+ +
+ + +
+
+ +
+
+ + + \ No newline at end of file diff --git a/osinaweb/osinacore/templates/details_templates/customer-details.html b/osinaweb/osinacore/templates/details_templates/customer-details.html index d87fd3cf..d095ea9a 100644 --- a/osinaweb/osinacore/templates/details_templates/customer-details.html +++ b/osinaweb/osinacore/templates/details_templates/customer-details.html @@ -27,7 +27,7 @@
diff --git a/osinaweb/osinacore/templates/details_templates/project-details.html b/osinaweb/osinacore/templates/details_templates/project-details.html index 5eff031d..456d9860 100644 --- a/osinaweb/osinacore/templates/details_templates/project-details.html +++ b/osinaweb/osinacore/templates/details_templates/project-details.html @@ -7,7 +7,7 @@
-
- - @@ -43,9 +31,8 @@
-
-
+
+
-
- @@ -89,8 +70,8 @@

Project Manager:

-
-
+
+
{% if project.manager.image %} {% else %} @@ -104,14 +85,25 @@
-
-

Member(s):

-
+
+
+
+

Members

+
+ + +
+ +
{% for member in members %}
+ class="w-fit flex flex-col gap-2 px-5 py-3 bg-gray-100 rounded-md shadow-md">
-
+
{% if member.image %} {% else %} @@ -125,7 +117,9 @@
{% if request.user.is_superuser %} -

Working Hours: {{member.total_time_worked_hours}}hr {{member.total_time_worked_minutes}}min {{member.total_time_worked_seconds}}sec

+

Working Hours: + {{member.total_time_worked_hours}}hr {{member.total_time_worked_minutes}}min + {{member.total_time_worked_seconds}}sec

{% endif %}
{% endfor %} @@ -133,7 +127,7 @@
-
+

Type: {% for type in project.project_type.all %} @@ -489,6 +483,12 @@

+ + +
diff --git a/osinaweb/osinacore/templates/details_templates/ticket-details.html b/osinaweb/osinacore/templates/details_templates/ticket-details.html index bdcdb388..63c6c9cb 100644 --- a/osinaweb/osinacore/templates/details_templates/ticket-details.html +++ b/osinaweb/osinacore/templates/details_templates/ticket-details.html @@ -166,9 +166,91 @@
- +
+
+
+ + + + +
+ +
+ + + + + +
+ +
+ + + + + + + + +
+ +
+ + + + + + + +
+ +
+ + + + + + + +
+ +
+ + +
+
-
-
-
- - + {% endblock %} \ No newline at end of file diff --git a/osinaweb/osinacore/templates/edit_templates/edit-customer-status-modal.html b/osinaweb/osinacore/templates/edit_templates/edit-customer-status-modal.html index 5a587d37..53a4265b 100644 --- a/osinaweb/osinacore/templates/edit_templates/edit-customer-status-modal.html +++ b/osinaweb/osinacore/templates/edit_templates/edit-customer-status-modal.html @@ -19,10 +19,10 @@

Update Customer Status

diff --git a/osinaweb/osinacore/templates/listing_pages/customers.html b/osinaweb/osinacore/templates/listing_pages/customers.html index bd65611f..bcfbe88f 100644 --- a/osinaweb/osinacore/templates/listing_pages/customers.html +++ b/osinaweb/osinacore/templates/listing_pages/customers.html @@ -68,16 +68,17 @@

{{customer.user.username}}

- - + +

{{customer.status}}

{% if customer.business_set.all %} - {% for business in customer.business_set.all %} -

{{business.name}}

- {% endfor %} + {% for business in customer.business_set.all %} +

{{business.name}}

+ {% endfor %} {% else %}

None

{% endif %} @@ -87,26 +88,36 @@ diff --git a/osinaweb/osinacore/templates/listing_pages/projects.html b/osinaweb/osinacore/templates/listing_pages/projects.html index 40ebf4b7..8cefc5c7 100644 --- a/osinaweb/osinacore/templates/listing_pages/projects.html +++ b/osinaweb/osinacore/templates/listing_pages/projects.html @@ -66,7 +66,7 @@
-
Edit - +
@@ -230,8 +230,8 @@ Edit - +
diff --git a/osinaweb/osinacore/templates/projects-by-status.html b/osinaweb/osinacore/templates/projects-by-status.html index 6503eb75..4f17553b 100644 --- a/osinaweb/osinacore/templates/projects-by-status.html +++ b/osinaweb/osinacore/templates/projects-by-status.html @@ -1,7 +1,6 @@ {% load static %} {% for project in filtered_projects %} -
@@ -56,8 +55,8 @@ Edit - +
@@ -93,5 +92,18 @@
+{% endfor %} + + + + -{% endfor %} \ No newline at end of file + \ No newline at end of file diff --git a/osinaweb/static/dist/output.css b/osinaweb/static/dist/output.css index 7d975d9b..816b82c9 100644 --- a/osinaweb/static/dist/output.css +++ b/osinaweb/static/dist/output.css @@ -3081,6 +3081,14 @@ video { background: #5a5a5a00; } +.rtl { + direction: rtl; +} + +.ltr { + direction: ltr; +} + /* SCROLL BAR OF REACTION DETAILS POPUP */ .reactionDetails::-webkit-scrollbar { @@ -3418,6 +3426,10 @@ video { background-color: rgb(255 255 255 / var(--tw-bg-opacity)); } +.hover\:bg-opacity-50:hover { + --tw-bg-opacity: 0.5; +} + .hover\:bg-opacity-60:hover { --tw-bg-opacity: 0.6; } @@ -3694,10 +3706,6 @@ video { display: none; } - .md\:h-\[70px\] { - height: 70px; - } - .md\:w-\[250px\] { width: 250px; } @@ -3723,11 +3731,6 @@ video { flex-direction: row; } - .md\:py-1 { - padding-top: 0.25rem; - padding-bottom: 0.25rem; - } - .md\:text-3xl { font-size: 1.875rem; line-height: 2.25rem; @@ -3956,14 +3959,6 @@ video { } @media (min-width: 1600px) { - .xll\:flex { - display: flex; - } - - .xll\:hidden { - display: none; - } - .xll\:w-\[550px\] { width: 550px; } diff --git a/osinaweb/static/js/pop-modals.js b/osinaweb/static/js/pop-modals.js index c53968a5..4a53e1b2 100644 --- a/osinaweb/static/js/pop-modals.js +++ b/osinaweb/static/js/pop-modals.js @@ -73,11 +73,11 @@ document.addEventListener("DOMContentLoaded", function () { addButtonClickListener("addPaymentMethodButton", "500px", "400px"); addButtonClickListener("updateOrderStatusButton", "400px", "160px"); addButtonClickListener("editProjectStatusButton", "400px", "220px"); + addButtonClickListener("editCustomerStatusButton", "400px", "160px"); + addButtonClickListener("addProjectMemberModal", "400px", "230px"); - - - - + + // DELETE BUTTONS diff --git a/osinaweb/static/js/text-editor.js b/osinaweb/static/js/text-editor.js new file mode 100644 index 00000000..0dae8870 --- /dev/null +++ b/osinaweb/static/js/text-editor.js @@ -0,0 +1,11 @@ +document.getElementById('rtlButton').addEventListener('click', function() { + const editor = document.getElementById('textEditor'); + editor.classList.remove('ltr'); + editor.classList.add('rtl'); +}); + +document.getElementById('ltrButton').addEventListener('click', function() { + const editor = document.getElementById('textEditor'); + editor.classList.remove('rtl'); + editor.classList.add('ltr'); +}); \ No newline at end of file