From 2012967043e13c214b1d09570a9db86890a9f008 Mon Sep 17 00:00:00 2001 From: emile Date: Wed, 3 Jul 2024 22:37:00 +0300 Subject: [PATCH] new --- .../__pycache__/views.cpython-310.pyc | Bin 7471 -> 7471 bytes .../listing_pages/customer-tickets.html | 30 ++-- osinaweb/db.sqlite3 | Bin 1417216 -> 1417216 bytes .../custom_context.cpython-310.pyc | Bin 3223 -> 4396 bytes .../__pycache__/views.cpython-310.pyc | Bin 21193 -> 20455 bytes osinaweb/osinacore/custom_context.py | 99 +++++++++--- .../osinacore/templates/customer_index.html | 19 +-- osinaweb/osinacore/templates/index.html | 148 ++++++++++-------- .../templates/listing_pages/tickets.html | 28 +--- osinaweb/osinacore/views.py | 49 ------ osinaweb/static/dist/output.css | 62 +++----- osinaweb/static/js/tickets/tickets-room.js | 8 +- .../__pycache__/models.cpython-310.pyc | Bin 7692 -> 7824 bytes .../support/__pycache__/views.cpython-310.pyc | Bin 2547 -> 2526 bytes .../add/__pycache__/views.cpython-310.pyc | Bin 686 -> 1497 bytes osinaweb/support/add/views.py | 44 ++++-- osinaweb/support/models.py | 5 +- .../add-ticket-department-modal.html | 11 +- .../add-ticket-member-modal.html | 15 +- .../details_templates/ticket-room.html | 19 ++- .../details_templates/ticket-settings.html | 8 +- osinaweb/support/views.py | 1 - 22 files changed, 281 insertions(+), 265 deletions(-) diff --git a/osinaweb/customercore/__pycache__/views.cpython-310.pyc b/osinaweb/customercore/__pycache__/views.cpython-310.pyc index f2f203a36e0aafc8230978f85fb75b8b14774910..fa6a0b83fbdef500ad68bbdb568bf7da39dc2550 100644 GIT binary patch delta 20 acmZ2)wcd(5pO=@50SH{8S~qg5$N~U083d64 delta 20 acmZ2)wcd(5pO=@50SIn{wQS^8kp%!b2n8Sj diff --git a/osinaweb/customercore/templates/listing_pages/customer-tickets.html b/osinaweb/customercore/templates/listing_pages/customer-tickets.html index bbbc69c5..63505995 100644 --- a/osinaweb/customercore/templates/listing_pages/customer-tickets.html +++ b/osinaweb/customercore/templates/listing_pages/customer-tickets.html @@ -46,13 +46,9 @@ class="px-6 py-3 text-sm font-medium text-gray-500 uppercase border-r border-gray-300 whitespace-nowrap"> Date Created - - Last Updated - - Updated By + Last Updated @@ -62,7 +58,7 @@ {% for ticket in open_tickets %} - +

{{ticket.title }}

@@ -90,12 +86,10 @@

{{ ticket.opened_date }}

- -

{{ticket.ticketupdate_set.last.date_added}}

- - -

{{ticket.ticketupdate_set.last.added_by.first_name}}

+ {% if ticket.ticketupdate_set.all %} +

{{ticket.ticketupdate_set.last.date_added}}
by {{ticket.ticketupdate_set.last.added_by.first_name}}

+ {% endif %} {% endfor %} @@ -124,13 +118,9 @@ class="px-6 py-3 text-sm font-medium text-gray-500 uppercase border-r border-gray-300 whitespace-nowrap"> Date Created - - Last Updated - - Updated By + Last Updated @@ -159,12 +149,10 @@ - -

{{ticket.ticketupdate_set.last.date_added}}

- - -

{{ticket.ticketupdate_set.last.added_by.first_name}}

+ {% if ticket.ticketupdate_set.all %} +

{{ticket.ticketupdate_set.last.date_added}}
by {{ticket.ticketupdate_set.last.added_by.first_name}}

+ {% endif %} {% endfor %} diff --git a/osinaweb/db.sqlite3 b/osinaweb/db.sqlite3 index 6680beebc91d1a0f71af0f16bf24eeab4bfb219a..db980d8fc2b2e32cfb9457ee6fcd2e49ee1d5f8a 100644 GIT binary patch delta 2754 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 delta 1032 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 ILmM{#2Xi^t7ytkO delta 3672 zcmbtX4RBP|72f;yWp}gtHrZtJvxGoM$Obk)n?M>8LJ$)94}=V$or%JB$-af%EZNO{ zFGGnNL&cfu*kJ1!6%Zv+qm8i^x)oZhRw%{VYAGPJvz^wN+SakQGqosMVW8){w^;(T zoz65f@5{aSeCO}}oO}0!L+q_FmKC+ztp@!2&7JoL+u}#EcI7h#9>`zEJa8d@u}u+C zCJK^~KbDwT@Gz^{k9~fCAeZ0?g32^hQR_*Bzfj{TNEVK<5!metvS;A~*NbcnZu1nn z_!vq*!SA94!6Ar7@tP#^F^GAJ;k{`)*>iAYPCgsg$>Ydj%wSMbWI-d3BY6h1Z!nnW>;=e9aEY#a82X09LPS22wzDMk11UF|0 z9W#&GAHQygCm^S!%1W6pK;M}8ijqEz>uOnH;&h3V*-ns^pAaPAZ?k5xlaN(f#Eyff z)X&Z*9xCNbWA9-}xNr7+_FH&)cF)lJ$nQpT=|4NR%=oRxPuYNyxFKu^GrmL>!p0GC z)G%m_8^al@DZuuyfH2Gk#ke?P4j4z-V8%AXpb0;7JY$(*bLpTZZV6jPGEpZpp2?fy znPDrn0%DKA=f}+>w)l``6z9FKIBvquziIb2|KDzv8{F>D-0Ggb95)T6-C}2I8{;n< zv;;B+t(b!pw$m&GOv4Pva|dl|R@fNMj@z_RbHFle9C3^ql>KpQAhXdhXzlxY9QAxT zefPvoadW_WP#Bcd+_)iNi%WZq8x0<*Bk58@-91CH+8+z}RoUm$&>slMfpONA8^JL} z^`(R)`@&gs>mYv}mxLIA|I`6H3ZjFQDuI=-DDbvv2>sWH==bWW8-c|hiPT($D@ z5m_yiOj@I*Q|nwEeq587A7$XYnpJ$D*ZRP1-0^+ z3-yHE7C{gNX1Xew_@`Q(dZGLQc1bTem(bTZuCrF53XG|8b_q($T`=HI;K}w@l(T;# z*#$inS<{XZHw%?af=S3_F1-L6`Q=niJ6y3gRnxBM4z3{gO;nm%(~SH|ivE>3ohkY? z&Bc3jvZQm!=2uY-3k&plim_4_%uUe*fx!|_VVOM~-Rg@)m5>^W_A0-hOu%6jMUnCp zCpF)lyHR%_WRPZs^w+d?^CV}l=k^rGLY#seZb8x|BECpr;HVx(O=V+>n5hvRJQGO* z?h*bx5i_B0VICZNWQ#L{)vxq;jQmHW{VKt02p_r# z9JpIQY{3@FOTab%onn${RYITr9DVlnEP&P57u{%vzf1f|3Zx1;>Nl_;jMg`>hQzPy zzsBmci&l&Jk3{3KTzjW10ic~f^>FM?GyRc_L?dqRX{}%*r6X28^u!w5Ks*#*(Z-zzGY9d%j z&`j_#(f>g}zWEU-Zgk^nwlxOXgD~E>URc54TZK-rH+8Z{VN273>{rqFMOrw~i0_@% zw2l?GtfRIkSyGf^p>Ay{Jpyls-!=Ko?c{Z>zCG?@cR z_rQ}a)7V)!*0PL^!j+b#rO%LOBkoB4B}y#^yWEE0vFX0g!sf+wY!mEVT*mHzBa4@? zPvGOl_3W;M`?meeayNx3@TcL_5-&RhX9`Na{C|A3HW|^?Q?P95zP0qYnsQ%OP!Q>h zQNLjyrZGAb`dyn%tuqA62$mBpAQ*+Yt={QAG?=t@NAb1UP4$*PO)?6$3;J3Ynl_We zXW(#aKHCDPT3dwzBV@L%68w{U$RhBS5Nj(pJxYqJ;6PiYZ8-(JhBUV(PPb(UtQ*cR zi`oJ-A`>kL^9r3g*}*8^7FF@JpeQ@>3cUlA Regarding - - Last Updated - - Updated By + Last Updated @@ -157,7 +153,7 @@ - +

{{ticket.title }}

@@ -181,14 +177,11 @@

{{ticket.regarding}}

- - -

{{ticket.ticketupdate_set.last.date_added}}

- - - -

{{ticket.ticketupdate_set.last.added_by.first_name}}

+ {% if ticket.ticketupdate_set.all %} +

{{ticket.ticketupdate_set.last.date_added}}
by {{ticket.ticketupdate_set.last.added_by.first_name}}

+ {% endif %} + diff --git a/osinaweb/osinacore/templates/index.html b/osinaweb/osinacore/templates/index.html index 8567c069..8a91a420 100644 --- a/osinaweb/osinacore/templates/index.html +++ b/osinaweb/osinacore/templates/index.html @@ -5,6 +5,10 @@
+ +
+
@@ -30,10 +34,6 @@ class="px-6 py-3 text-sm font-medium text-gray-500 border-r border-gray-300 uppercase whitespace-nowrap"> Last Updated - - Updated By - Actions @@ -41,71 +41,82 @@ - - - -

Ticket Subject

- - - -

234233

- - - -

ggg

- - - -

20-2-234

- - - -

20-2-234

- - - -
- - - - - - - - - - - - - -
- - - + {% for ticket in open_tickets %} + + +
+

{{ticket.title}}

+ + {% if ticket.unread_updates_count > 0 %} +
+
+

{{ticket.unread_updates_count}}

+
+
+ {% endif %}
-
- - + + + + +

{{ticket.ticket_number}}

+ + + +

{{ticket.regarding}}

+ + + + {% if ticket.ticketupdate_set.all %} +

{{ticket.ticketupdate_set.all.last.date_added}}
by {{ticket.ticketupdate_set.all.last.added_by.first_name}}

+ {% endif %} + + + + +
+ + + + + + + + + + + + + +
+ + + +
+
+ + + {% endfor %}
@@ -351,6 +362,7 @@ + {% endblock content %} \ No newline at end of file diff --git a/osinaweb/osinacore/templates/listing_pages/tickets.html b/osinaweb/osinacore/templates/listing_pages/tickets.html index 874761d2..278caaba 100644 --- a/osinaweb/osinacore/templates/listing_pages/tickets.html +++ b/osinaweb/osinacore/templates/listing_pages/tickets.html @@ -58,10 +58,6 @@ class="px-6 py-3 text-sm font-medium text-gray-500 border-r border-gray-300 uppercase whitespace-nowrap"> Last Updated - - Updated By - Actions @@ -75,7 +71,7 @@ - +

{{ticket.title}}

@@ -99,12 +95,9 @@ -

{{ticket.ticketupdate_set.all.last.date_added}}

- - - -

{{ticket.ticketupdate_set.all.last.added_by.first_name}} -

+ {% if ticket.ticketupdate_set.all %} +

{{ticket.ticketupdate_set.all.last.date_added}}
by {{ticket.ticketupdate_set.all.last.added_by.first_name}}

+ {% endif %} @@ -181,10 +174,6 @@ class="px-6 py-3 text-sm font-medium text-gray-500 border-r border-gray-300 uppercase whitespace-nowrap"> Last Updated - - Updated By - Actions @@ -210,12 +199,9 @@ -

{{ticket.ticketupdate_set.all.last.date_added}}

- - - -

{{ticket.ticketupdate_set.all.last.added_by.first_name}} -

+ {% if ticket.ticketupdate_set.all %} +

{{ticket.ticketupdate_set.all.last.date_added}}
by {{ticket.ticketupdate_set.all.last.added_by.first_name}}

+ {% endif %} diff --git a/osinaweb/osinacore/views.py b/osinaweb/osinacore/views.py index 9d0c0575..8afab2ad 100644 --- a/osinaweb/osinacore/views.py +++ b/osinaweb/osinacore/views.py @@ -367,56 +367,7 @@ def my_tasks(request, *args, **kwargs): @staff_login_required def tickets(request, *args, **kwargs): - if request.user.is_superuser: - all_tickets = Ticket.objects.all() - all_tickets_with_update_date = all_tickets.annotate( - latest_update_date=Max('ticketupdate__date_added')) - all_tickets_ordered = all_tickets_with_update_date.order_by('-latest_update_date') - open_tickets = [] - closed_tickets = [] - for ticket in all_tickets_ordered: - last_status = ticket.ticketstatus_set.last() - if last_status: - last_status = last_status.status - if last_status == 'Closed': - closed_tickets.append(ticket) - else: - open_tickets.append(ticket) - else: - # If no status is found, assume it's open - open_tickets.append(ticket) - else: - all_tickets = Ticket.objects.all() - all_tickets_with_update_date = all_tickets.annotate( - latest_update_date=Max('ticketupdate__date_added')) - all_tickets_ordered = all_tickets_with_update_date.order_by('-latest_update_date') - open_tickets = [] - closed_tickets = [] - for ticket in all_tickets_ordered: - last_status = ticket.ticketstatus_set.last() - if last_status: - last_status = last_status.status - if last_status == 'Closed': - closed_tickets.append(ticket) - else: - open_tickets.append(ticket) - else: - # If no status is found, assume it's open - open_tickets.append(ticket) - - for ticket in open_tickets: - unread_updates_count = 0 - for ticket_update in ticket.ticketupdate_set.exclude(added_by=request.user): - if not TicketRead.objects.filter(ticket_update=ticket_update, user=request.user, read=True).exists(): - unread_updates_count += 1 - - ticket.unread_updates_count = unread_updates_count - - context = { - 'open_tickets': open_tickets, - 'closed_tickets': closed_tickets - } return render(request, 'listing_pages/tickets.html', context) diff --git a/osinaweb/static/dist/output.css b/osinaweb/static/dist/output.css index 902a64b3..2893aa81 100644 --- a/osinaweb/static/dist/output.css +++ b/osinaweb/static/dist/output.css @@ -916,6 +916,14 @@ video { margin-right: auto; } +.-ml-10 { + margin-left: -2.5rem; +} + +.-ml-5 { + margin-left: -1.25rem; +} + .-mr-3 { margin-right: -0.75rem; } @@ -960,6 +968,10 @@ video { margin-left: 0px; } +.ml-10 { + margin-left: 2.5rem; +} + .ml-2 { margin-left: 0.5rem; } @@ -968,6 +980,10 @@ video { margin-left: 1rem; } +.ml-5 { + margin-left: 1.25rem; +} + .ml-\[300px\] { margin-left: 300px; } @@ -1081,22 +1097,6 @@ video { margin-top: 80px; } -.ml-5 { - margin-left: 1.25rem; -} - -.ml-10 { - margin-left: 2.5rem; -} - -.-ml-10 { - margin-left: -2.5rem; -} - -.-ml-5 { - margin-left: -1.25rem; -} - .block { display: block; } @@ -1221,6 +1221,10 @@ video { height: 16px; } +.h-\[180px\] { + height: 180px; +} + .h-\[18px\] { height: 18px; } @@ -1560,14 +1564,6 @@ video { width: 100%; } -.min-w-\[250px\] { - min-width: 250px; -} - -.min-w-\[300px\] { - min-width: 300px; -} - .min-w-full { min-width: 100%; } @@ -1584,14 +1580,6 @@ video { max-width: 72rem; } -.max-w-\[250px\] { - max-width: 250px; -} - -.max-w-\[300px\] { - max-width: 300px; -} - .max-w-lg { max-width: 32rem; } @@ -3076,6 +3064,11 @@ video { color: rgb(156 163 175 / var(--tw-text-opacity)); } +.text-gray-50 { + --tw-text-opacity: 1; + color: rgb(249 250 251 / var(--tw-text-opacity)); +} + .text-gray-500 { --tw-text-opacity: 1; color: rgb(107 114 128 / var(--tw-text-opacity)); @@ -3171,11 +3164,6 @@ video { color: rgb(234 179 8 / var(--tw-text-opacity)); } -.text-gray-50 { - --tw-text-opacity: 1; - color: rgb(249 250 251 / var(--tw-text-opacity)); -} - .underline { text-decoration-line: underline; } diff --git a/osinaweb/static/js/tickets/tickets-room.js b/osinaweb/static/js/tickets/tickets-room.js index 206600fd..8736bd93 100644 --- a/osinaweb/static/js/tickets/tickets-room.js +++ b/osinaweb/static/js/tickets/tickets-room.js @@ -120,10 +120,10 @@ function initializeWebSocket() { }); } else if (data.event_type === 'user_status') { - const onlineUsersDiv = document.getElementById('online-users'); - if (onlineUsersDiv) { - onlineUsersDiv.innerHTML = data.html; - } + const toponlineUsersDiv = document.getElementById('top-online-users'); + const fixedonlineUsersDiv = document.getElementById('fixed-online-users'); + toponlineUsersDiv.innerHTML = data.html; + fixedonlineUsersDiv.innerHTML = data.html; } else { messagesDiv.insertAdjacentHTML('beforeend', data.html); typingDiv.innerHTML = ''; diff --git a/osinaweb/support/__pycache__/models.cpython-310.pyc b/osinaweb/support/__pycache__/models.cpython-310.pyc index 2c2fd1bd87bcdfacaadc449d5130d8d70aa3fc91..201c35704b88e0b0c68f739e4e019cfb7ea7f1a5 100644 GIT binary patch delta 552 zcmYLGO=uHA6rMNxW3pzq$u>5LRurj)2*%>UQw)j)K}3{z3MtE)-Gs(XqcekG*|nA! zR8UYx>P=Gc;8phGv4{wQCvWB?)RPx4l^*qNMEl_T-hA`seQ%g~Qhj#T?3<=RFlyI^ z?GJCwEptsrr64XKcoRvGE_7)~Ja`Hbc+^uKkPsHh03s@sz1m3i)J+&^n

~g&hl( zu0Gm_N?oBHWRVK#0Fc!I6iB3nTAh@&D{Km9v;b)mYseIlT%nHOHd2R#WJ!x4gf4kb zZ__$q$8oz1>}Zncm{u0Xn!h60-AUmu&0}qBRD)$MTK(Rw+7LBQylt|2>iTl)rY|ZT zUpQ_MIAS6lF6P~KyHXAMEjQpbT>NWZ-G9<^h3~kY=X>R}bghDXWF46+>+B+0HZuPm z(4b**fywFly&FE`@{`rbW$}~+78F5+45&04pPo8F;iX*4ZNLk;llu;@Q-(g# H+Km1OrK^er delta 397 zcmYj~K_~=a7>4KlcV?{FogHR(?G8e2E8^tDL5hQN;k3mz`DbNK)XYy}HcE1#8 diff --git a/osinaweb/support/__pycache__/views.cpython-310.pyc b/osinaweb/support/__pycache__/views.cpython-310.pyc index 2c1e1988cc8615d98eaa649c73ac6c51257224fe..4325d55a0c0957fbeed32fc88aa848ab80b0b26d 100644 GIT binary patch delta 582 zcmZ8dzi$&U81?7#`R*gKLKTAV*$a+l!1kTwNn3q+73m4hbMpUeeZjpeO~!diTYt!K>B=n{;pmq36Q{GfO9NSic^P&4ChX7SrAh*=LGZXR&gaxX-8L#XubMdceTD@bx-1< zKSGCyZ`cV$1dN`*8xV!Gn3g1F-T;On^GA>q%^m+C)5t~zmvR%mtmUpKTbpaO!T=9v zMksq_*;zSdi>x$o0PQ~(bALrtMkuFZ-Y_g=k)2xBp`LUkmPAtNv6)ks3W>UA6i8xD=Ufky_;c+K9T2~Le+t3*AdDme1hVd*KxM@7a z=_*f6=!9l{E)vEY>Vv(-vZ^!CnQ4b_I9$Sss)R%rS1nY at(*RaIt{K?xBj(GAE3SkOYSXvC4virppy6i delta 643 zcmYk2Pm9w)7{=$F{B4`0)n<1+2r8wArQ0gCUOm*+i?|?q6A5Lf?Iv5&-N{ruBor(j zgUDPxv>(7z(Tg8ozknb_@Jo30;LNm26ZkRj^US=@JM*jlyY5Y0w~WO1q5FPRb3b}l za~}|5h(QVja-3m?Q@qqxXaRsy6zP#c>jY<7++?P#iMGJBp&Tp4k$o;Iq6>d->l?!F zDZjMo^ajzM>Y%eSF&FR-SS4~IH^s!t=dkpMy@E{N5h1Fos8YUlkJ0Oc%wRQj%urrA z$IELgl$4m(N-Ke*`T370OJuCl%rnPj#(|Oe@v+6;xq={R5ss>ws$F zX$tdYczQl$g>gZ{m=*qb$b!LS5-=qP2^)+?ysO>gZ?$i5#C!V8?1*y?@XvZ1I_sbM zcQCs`q4)V0^Q3YlmkMp}SvR50Th?9ZuV0CE^OiJkOWYACDx2&VGNUk)DP==K`}~vL zm>bEb&<4i9}0cCrOk=_20xp#=>}<$lb}lfP;PTzyTYuhC%-3AIGLog>`c1 z6g3hJ;_*XNv8mzm^(C I6W{RQFEF5;Z2$lO diff --git a/osinaweb/support/add/__pycache__/views.cpython-310.pyc b/osinaweb/support/add/__pycache__/views.cpython-310.pyc index 7edaf79506df811935dc3413c7fb89d54611e4a8..4bbed824fa1fff70db47a203ecbd0c2ce9548628 100644 GIT binary patch literal 1497 zcmaJ>&2Aev5GJ|5`b(A6sL}tVhoT$6yD5-cji5kt=%H|e%Dw0!td?}V^6qjoq^#JG zPic>SgC3+yfjmp!fY+Y-3ISSlxT{z~f|SAzIm6-bBfpQ5gF%;I`}2?AP70rpzpS&{ z7&_nMr>x`X0 zxu{dnrKmLKF&pQp7LfxT#BBU_A*Nw)l5#Hi>-bP*kk|UrBCohy#9G#IA+uEHvWh_z zGUeYy-yJ5KtcbzDmg;SHQkOB7nrKnh1=dvwdI#-J2ivTJQu4HjPjy*D18^ER$IUrR z_wfyC6STxA3W^VQ5FqZ46tCTZkseWTnLm{ffZnnD%;_{GtS?M3i|UL{a1yB6%#-8QxJcN{hU_ z`%_w5=ZVU7Cd)*syh@WwESdqIrPVXp1{Y$QsCivW(Dr_k^IR-cTwj<^o4acX-9ni( zw`F0fFVOVqkap=FWzDZk{eMC)q|9N||F`eKmzeT?xxT>Jx8*u>IpfYXU3qJ=5v+@X z{dPyN9!k@HN3a1#!?y(6xe;vlMzFn&VEad4-_0?;EX0nv@HW4+K`VGwE)<& zTYhAXg$Mg~uGcE8Sp*;3@Q$|N6C2p->MQHoBaC~kuG#~BX2VuYt+8a9{T<3%z%AW( zadJcVo&TfzYs@=}I%e1kELNwes%)-RBm3rUjc;wl7Nd|vp~icSA~Ojh<^sD^OHlZV r8;Rnp)OC9}DF@ss7?zC4 delta 303 zcmcb~y^fVHpO=@50SF>gThq2OPUMqeG?}QaBFdb?(!vnMn!=jG2Bg_i*n=4~IVKjU z8zwV?R6_w1kY)j5XCVG803XhlCws6uS%b|6iy&zLYvl&2y2W9Wo1apelWGU@ QWid!xfQf?<2w8Zz0q^KCl>h($ diff --git a/osinaweb/support/add/views.py b/osinaweb/support/add/views.py index 3749dd9a..0ac2d19f 100644 --- a/osinaweb/support/add/views.py +++ b/osinaweb/support/add/views.py @@ -3,13 +3,25 @@ from django.shortcuts import render, get_object_or_404 from support.models import * from osinacore.decorators import * - - - -def add_ticket_department_modal(request): - - context = { - +from django.http import HttpResponse + + +def add_ticket_department_modal(request, ticket_number): + ticket = get_object_or_404(Ticket, ticket_number=ticket_number) + departments = Department.objects.all().order_by('-id') + if request.method == 'POST': + department = get_object_or_404(Department, id=request.POST.get('department')) + ticketdepartment = TicketDepartment( + department=department, + ticket=ticket, + date_added = request.POST.get('date') + ) + ticketdepartment.save() + return HttpResponse('') + + context = { + 'ticket': ticket, + 'departments': departments, } return render(request, 'add_templates/add-ticket-department-modal.html', context) @@ -17,10 +29,22 @@ def add_ticket_department_modal(request): -def add_ticket_member_modal(request): - - context = { +def add_ticket_member_modal(request, ticket_number): + ticket = get_object_or_404(Ticket, ticket_number=ticket_number) + staffprofiles = StaffProfile.objects.filter(active=True).all() + if request.method == 'POST': + staff = get_object_or_404(StaffProfile, id=request.POST.get('staff')) + ticketstaff = TicketStaff( + staff=staff, + ticket=ticket, + date_added = request.POST.get('date') + ) + ticketstaff.save() + return HttpResponse('') + context = { + 'ticket': ticket, + 'staffprofiles': staffprofiles, } return render(request, 'add_templates/add-ticket-member-modal.html', context) diff --git a/osinaweb/support/models.py b/osinaweb/support/models.py index d856cb83..239f5b77 100644 --- a/osinaweb/support/models.py +++ b/osinaweb/support/models.py @@ -129,14 +129,15 @@ class Ticket(models.Model): return f"last seen on {last_seen_time.strftime('%b %d at %I:%M %p')}" def get_all_ticket_staff(self): - ticket_staff = TicketStaff.objects.filter(ticket=self).select_related('staff') + ticket_staff = TicketStaff.objects.filter(ticket=self) + staff_members = [entry.staff for entry in ticket_staff] latest_department = TicketDepartment.objects.filter(ticket=self).order_by('-date_added').first() if latest_department: department_staff = latest_department.department.get_staff() else: department_staff = [] - all_staff = list(ticket_staff.values_list('staff', flat=True)) + list(department_staff) + all_staff = list(staff_members) + list(department_staff) return all_staff diff --git a/osinaweb/support/templates/add_templates/add-ticket-department-modal.html b/osinaweb/support/templates/add_templates/add-ticket-department-modal.html index 44f27db7..0f384a38 100644 --- a/osinaweb/support/templates/add_templates/add-ticket-department-modal.html +++ b/osinaweb/support/templates/add_templates/add-ticket-department-modal.html @@ -14,16 +14,19 @@ -

+ {% csrf_token %}

Add New Department

- + + {% for department in departments %} + + {% endfor %}
-
diff --git a/osinaweb/support/templates/add_templates/add-ticket-member-modal.html b/osinaweb/support/templates/add_templates/add-ticket-member-modal.html index ffb5328b..f550a6dd 100644 --- a/osinaweb/support/templates/add_templates/add-ticket-member-modal.html +++ b/osinaweb/support/templates/add_templates/add-ticket-member-modal.html @@ -14,14 +14,23 @@ - + {% csrf_token %}

Add New Member

- + + {% for staff in staffprofiles %} + + {% endfor %} +
+ +
+
@@ -27,7 +27,7 @@
{% for department in ticket_departments %}
+ class="w-full rounded-md py-5 px-3 {% if forloop.first %} bg-secondosiblue border border-secondosiblue text-gray-50 {% else %} bg-gray-50 border border-gray-100 text-secondosiblue {% endif %} flex justify-between items-center gap-3">

{{department.department.name}}

{{department.date_added}}

@@ -45,8 +45,8 @@
diff --git a/osinaweb/support/views.py b/osinaweb/support/views.py index bf81a558..97409a5d 100644 --- a/osinaweb/support/views.py +++ b/osinaweb/support/views.py @@ -7,7 +7,6 @@ from django.http import Http404 # Create your views here. def ticket_room(request, ticket_number): ticket = get_object_or_404(Ticket, ticket_number=ticket_number) - print(ticket.get_all_ticket_staff()) if request.user.is_superuser: base_template = "main.html" elif hasattr(request.user, 'customerprofile') and request.user.customerprofile == ticket.customer: