From c22db8adcf32d12aaf879e3b5b821ed10fe17fbe Mon Sep 17 00:00:00 2001 From: emile Date: Wed, 3 Jul 2024 13:34:23 +0300 Subject: [PATCH] new --- osinaweb/db.sqlite3 | Bin 1417216 -> 1417216 bytes osinaweb/static/js/tickets/tickets-room.js | 2 +- .../support/__pycache__/urls.cpython-310.pyc | Bin 1448 -> 1310 bytes .../support/__pycache__/views.cpython-310.pyc | Bin 2666 -> 2868 bytes .../add/__pycache__/urls.cpython-310.pyc | Bin 0 -> 602 bytes .../add/__pycache__/views.cpython-310.pyc | Bin 0 -> 686 bytes osinaweb/support/add/urls.py | 10 ++++ osinaweb/support/add/views.py | 27 +++++++++++ osinaweb/support/urls.py | 4 +- osinaweb/support/views.py | 43 ++++++++---------- 10 files changed, 59 insertions(+), 27 deletions(-) create mode 100644 osinaweb/support/add/__pycache__/urls.cpython-310.pyc create mode 100644 osinaweb/support/add/__pycache__/views.cpython-310.pyc create mode 100644 osinaweb/support/add/urls.py create mode 100644 osinaweb/support/add/views.py diff --git a/osinaweb/db.sqlite3 b/osinaweb/db.sqlite3 index 4c7905b45a23e2577b3c9f574b8bed6f99b434e2..bb768c73b9184d5aa36a103c245144a4391b8ebb 100644 GIT binary patch delta 1016 zcmaizT}TvB6vy|@%sO**cec%)vMtJm6fIot%5K+-XfzZcw$w(-=@cT0y&OLL_|J*y0 z4US}k6Wi^g#R5)PeywX|G7#rZ#mYe>^R!$ez(VHRUVWcaEJlhZ${G^A$S0`0KNC*g zFJoMeNxTv4pR!Gq5{}8K3+cAZjfpR89u78*ZX27P8K0g37y?6LD2x@8hoLbH24eEf z>6wDgEIDXdHRw~ekGn0afZ9a{2muMc3M5zX@}DP=M9~l2~qe=QNblrkoznX>k1eO($lv`Tb@g;hfA;Hoz`g*hR1p_w39#XP>d3^_Ff4cUbhpccN?(5r#d?MIgpiI8q>P$A&a6JuC~JdVLq6$DRkBX+ zJF4*2X*3)P47S(RB$CO)NxiM5E8f%DFf2Ai54HT;lKE^Ql_hycfk7A3EoS?O>lT|& zkq|`IBy2qVKouFW$3QTnS6z3D$zvpA(6g@F1j%GBq$5OG$;AU!%QhIO?e0u<$Jc*^ zHcVfX1i?fZ*NYko&tAQ5uxn6J!B<`HuV7u`b}cWCZ$X$h$l z|8oPlrz-B1o9XdZ4w|>3Fjn@kas)}b=l$&8&%Cz=!KUk87xm4ukxgpE| delta 506 zcmXxgPiWI{6bJD9lC;01YtqIh8$^*PW31YiUy{a@REBz1m|%xh&{c$icnDs+Nu6Me z2ulr`9>&V>A0om^4!?^?^x%DZ=vBr}9;_!7ansj>htIow-{bLKJ6UQcOTj_OU>I}> zoMfQ%=3QhAms>^Dh(8oP7QK!4j-RV5mSGXkay+M6IYC^!}ydM0J!|#vM_xgiQe}DiBIKYDxNCON6Ac73-52kJ=+-;;scsV#>!S-j{G&AXK|ymzoCEwbbq73D!s)_8r9({1)9dW@b5VF zl1~Z=SIW&s*uc#UWRqNH7-6fH`rP2ob0orB>eKkHf1jl! zR=3ac!ZoJ$IHg^gnHERlP<$w^h-bt@!cXCo@J8qgUFbcAqi0xq$HQ0Wo+z5ZqI_6> zQKb5&{GO$^rnKSpaMd5t-@cZ~aV7CjgxgvZ2G_--M;dA7G!ljXKO?q5Y96sY%dI$O N%`|KD@B?i}`v=F!ph^G$ diff --git a/osinaweb/static/js/tickets/tickets-room.js b/osinaweb/static/js/tickets/tickets-room.js index 19b3b96f..206600fd 100644 --- a/osinaweb/static/js/tickets/tickets-room.js +++ b/osinaweb/static/js/tickets/tickets-room.js @@ -63,7 +63,7 @@ function app(socket) { function initializeWebSocket() { const ticketId = document.getElementById('ticketId').textContent.trim(); - const wsUrl = `ws://${window.location.host}/ws/ticketroom/${ticketId}/`; + const wsUrl = `wss://${window.location.host}/ws/ticketroom/${ticketId}/`; const socket = new WebSocket(wsUrl); socket.onopen = () => { diff --git a/osinaweb/support/__pycache__/urls.cpython-310.pyc b/osinaweb/support/__pycache__/urls.cpython-310.pyc index de29f7e64e94095c5d095b4d7e591f43fdccc967..2e10f86e234b280ec9d7384ba3bba88774c33553 100644 GIT binary patch delta 209 zcmZ3%J&#K}pO=@50SI(dThrWG7#JRdILLq<$Z-JT;+l!t4vx$z?9GhLOsPyM9I32X zTq&F>T)oUd9ygH3ox%g+r87tIr1GS)r*dZT0x@3-Z!eQMLljR6Uoe9v|HeIQm?T*e zQ&RM+1d2-w3i69e^ng6Q(xRN=Dw)Z%nPn!oGJA_?GT!1%$xklLP0cHbFUrp^@zdm= hY{ybF`2)*52@#-kSQrEZco@NunU9f=k>#%h2LOTyF7f~X delta 359 zcmbQowSrqapO=@50SFXcwxr!;VPJR+;vfSKAjbiSi+d(&I|Q<3aiy@QaP%^#GNo{) zvSx9oa6x(8KpsyD50u9XyC_*qdKP54zN)SmyZfb5) zYEhI3TrordtWcBj7H>*^aw*8T_@ey$5l%B97z&lJVau02FpAtF<=m}FbD|nFoGZ-Gan-#6CWeXZwU?n;4*23 diff --git a/osinaweb/support/__pycache__/views.cpython-310.pyc b/osinaweb/support/__pycache__/views.cpython-310.pyc index 0304ad4b7e9c8c7fd144eb1bf711c629be279e85..228ae55e710da4658ef734c1c9f7655a6133fe4e 100644 GIT binary patch delta 1497 zcmZ8g-ESL35Z~Ri@7o_qOuiag(}IWzbt};p2||P*LMYH6ln|+wDs%C!6JKnfySpw; zbe0P#P$5MkIv)FwhzHbX_(za<+6VrC{tF<)>^ZHY?rDF!H#0lG*_qjAr9YJQ-~26qoL|73$4g69ifE>7cC4C(5zSKb5vtkLqBg7!bE!k!N9YjOJnC(rihume z+rtW0)~8bTZd||7All>E@L@G!8ZgBsMo1!wV@&Z884yVxqtKw_knm}}3o|hZvwQGI zje*f!J=14E|AjO|E3{)mvq$*Eq2?(*aZk}86K6v2#2>;oD|2I$fhqGpq9#tGwqtV@ z;yuLtBkF+T*_5mhXYV8aSt=>WB6Sb(cR1Bd@U2vuc`lWcW6wbDo#KIYUKS3g(wq2c zY@l96cV`B+ETzZnRF^vBN)lz>^mqBRUy-hsFjfRi@UTVwIDv#vYUPZojk5c=9WLW2k%~gJ!eG zqh_nkz{VWe9C%l0AXz=2l+gwh=EczE)8%>xrnm_3EsD`ycc62FLMUEH_Q)23pb14# zf4p8XRHiQ&=en0vHYKbOMXJ|%F%KeOwK%)iXF@(rgt0wzmUmc}J?Qb32~Cm#AP*PN z!Ns%qc@%Z3%k8KUw8cvGh4F#Y30mFiuI#iAmhMFTa==-+8_9Cem%9;f9WYv!QTcw0 zeN&dZEm0o1t18l>(4cmD*ZTH;@*kck@EoviRt!D^E6*jDNE!Rdhvd$1f$Qrlb2Ck* zvUURzNXgR!+|eq#(HAo6Fs_OtqgB=mxa_d5R93VdvW67OgoH~lu_I0y2U?YFwz!bW zrDJPn2g;QuOnD<$8`pHblo53I(|mIMe3ai3bPq%N@<}Z! zYM4UM2Fg2gtZS#k5bpu_c%GQp$FtbQc|48v-o!SsQ!E*mK~}=#;Up;%Vh}v~%zu1` z-}=3n`3sxc3x7X(mR(;=8B+j8q-J#L+5ucoFxIV)vb@LkZzf-x*YH~Mv-v~G)2HVE zp!^2tDjDu4Z&`b9>b~Z$X}GN6iiX!UECMJ~L|ih;*OEW2D<8j<+0V7vZ4K)hZfbZb zw8B{~1e3DW-4VBwckN5omteVG@slUcCv(c9VbI-)pqXVaEiu2P9jztUo&P{vp7S}r dv%TDjXur)?^n(>zUPLz5pO0^|AkJU!j@LhXlqO>(%nF zXs0kl`Of+CQ^MsocecnTo%guQy)82Di-7w)Ft!lRL!LA19IPXrH|vNO?vYZ@&ep`n z5<}X~2;lF+yaF@+1fWPlYLwGWCIimetiia|W{N2*q1@hPZA;lTr{*RWced#+XxO7| zyW3Xt4TE=hdX+pHXgew}QBJ~<-rr`s;U0-E8*?skOh~}PZHtoiaTRr4k>4Y2R~2f` zZqFWp3v+Oxm$1Z2?8Hqx9=&tgzA7e!=M#U^f;0=W`Z60CeG$|v)y9RVs=m5U)4ZxK ztq8TyXw?^m1cRFy^nrD{nA)va$hndw^Y8|;pnqDYXs8G5hvU7e_p}mMl#;T5XBI%} z&Ka^a%KrD)ctr{Q-X7A!&i&~i^`uyDiC9S=LwXUgnDU4TZW(uZ6fJ#d@s^qmC7!8$ zB1Z|)KiJ}Mt|M1An{^L-;Qnw~4x$YOkz@L~ zKSW3MTmK?0>jVFFAC_7c0ZKHrR>bp?Ekpe{SSj~|EiGo5Tor2-sp_JkV4L=IvWtaM)y9)}NNdbE#{kk3hBE7yza$HW@2z_rM+y+> yvi=etzk?5MQZSKS_nDi`Q}|`by0t2%ur4unLXr3sKW2s0Kgk9|%8tSe3-mW(jUt8s diff --git a/osinaweb/support/add/__pycache__/urls.cpython-310.pyc b/osinaweb/support/add/__pycache__/urls.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..6932733b57e98ff2bd56deeb7d729f6c96af3e84 GIT binary patch literal 602 zcmaJ;Jx{|h5Vf18O+P0DNGwPQp)U1~P{qKAU??nJDpOxeTHA?im#WzK!79;=3K@+KufWdou`BAYUKi4e6AwPZV>d5yPaXG{j&9V(LnE$X@Ok2^FG zK>U=#+F{agUifs1S>nL^)Xd%X3=2!}j$Jr!&nqx7EByd=#3baxdJV=ieki1@=-;Z& zq)?%q5gN89|4C^Gl8o>D$W)b5;%3k(I&vY*JR7d8a<+!f3u5cxbMQq>GczmMVKs)0 z1N;43U~RZzeuNz+UxWNwos^CE!5^|RP!UB3`{Jc}u*SU-+e4)?ybE^kz&ZvxRRBt* z8(>%9mOjhbSg2GVUyD3|TbKH2rdj4vBbb48nN;Sh;u;>9TjhCXJwqQXj5^FWMRI}W VRtiSp!CW6hmvm{^{isiqk53fjxE%lh literal 0 HcmV?d00001 diff --git a/osinaweb/support/add/__pycache__/views.cpython-310.pyc b/osinaweb/support/add/__pycache__/views.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7edaf79506df811935dc3413c7fb89d54611e4a8 GIT binary patch literal 686 zcmZ`%zfT)66tIn0WS8B@6H5_rt#T{C%Hn#^Wu5_I3Zy*FNQbjb) zsb)E&p=PRg(!~U0PbR-f-j{tjz&McUF_{kUv6D<$JFrkouMhOp&V>RB_ialua=SjRzE3P7pq8u({$SKc)I zSg1q6k8p-$K)HN3s!|#YnFI{N8|xyiIBo+(gcFer W-(&Mq!H4i1T-cwmA;m8lZ9f53W3rt9 literal 0 HcmV?d00001 diff --git a/osinaweb/support/add/urls.py b/osinaweb/support/add/urls.py new file mode 100644 index 00000000..1ada3519 --- /dev/null +++ b/osinaweb/support/add/urls.py @@ -0,0 +1,10 @@ +from django.urls import path +from . import views +from django.conf.urls.static import static +from django.conf import settings + +urlpatterns = [ + path('tickets//department/', views.add_ticket_department_modal, name='addticketdepartmentmodal'), + path('tickets//member/', views.add_ticket_member_modal, name='addticketmembermodal'), +] + diff --git a/osinaweb/support/add/views.py b/osinaweb/support/add/views.py new file mode 100644 index 00000000..3749dd9a --- /dev/null +++ b/osinaweb/support/add/views.py @@ -0,0 +1,27 @@ + + +from django.shortcuts import render, get_object_or_404 +from support.models import * +from osinacore.decorators import * + + + +def add_ticket_department_modal(request): + + context = { + + } + + return render(request, 'add_templates/add-ticket-department-modal.html', context) + + + + +def add_ticket_member_modal(request): + + context = { + + } + + return render(request, 'add_templates/add-ticket-member-modal.html', context) + diff --git a/osinaweb/support/urls.py b/osinaweb/support/urls.py index d6d9e493..50316e7d 100644 --- a/osinaweb/support/urls.py +++ b/osinaweb/support/urls.py @@ -20,11 +20,11 @@ from django.conf.urls.static import static from django.conf import settings urlpatterns = [ + path('add/', include('support.add.urls')), path('tickets//', views.ticket_room, name='ticketroom'), path('tickets//settings/', views.ticket_settings, name='ticketsettings'), - path('add-ticket-department', views.add_ticket_department_modal, name='addticketdepartmentmodal'), - path('add-ticket-member', views.add_ticket_member_modal, name='addticketmembermodal'), + ] urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) \ No newline at end of file diff --git a/osinaweb/support/views.py b/osinaweb/support/views.py index 19b0911c..22fe05ca 100644 --- a/osinaweb/support/views.py +++ b/osinaweb/support/views.py @@ -2,15 +2,30 @@ from django.shortcuts import render, get_object_or_404 from .models import * from .decorators import * from osinacore.decorators import * +from django.http import Http404 # Create your views here. -@ticket_member_required def ticket_room(request, ticket_number): - if hasattr(request.user, 'customerprofile'): + ticket = get_object_or_404(Ticket, ticket_number=ticket_number) + + if hasattr(request.user, 'customerprofile') and request.user.customerprofile == ticket.customer: base_template = "customer_main.html" - else: + elif hasattr(request.user, 'staffprofile'): + latest_department = TicketDepartment.objects.filter(ticket=ticket).order_by('-date_added').first() + ticket_department_staffs = latest_department.department.get_staff() + ticket_staffs = TicketStaff.objects.filter(ticket=ticket) + if any(request.user.staffprofile == staff.staff for staff in ticket_staffs): + base_template = "main.html" + elif request.user.staffprofile in ticket_department_staffs: + base_template = "main.html" + else: + raise Http404("You are not authorized to view this ticket.") + elif request.user.is_superuser: base_template = "main.html" - ticket = get_object_or_404(Ticket, ticket_number=ticket_number) + else: + raise Http404("You are not authorized to view this ticket.") + + ticket_updates = TicketUpdate.objects.filter(ticket=ticket).order_by('id') for update in TicketUpdate.objects.filter(ticket=ticket).exclude(added_by=request.user).order_by('id'): if not TicketRead.objects.filter(ticket_update=update, user=request.user).exists(): @@ -79,23 +94,3 @@ def ticket_settings(request, ticket_number): -@ticket_member_required -def add_ticket_department_modal(request): - - context = { - - } - - return render(request, 'add_templates/add-ticket-department-modal.html', context) - - - -@ticket_member_required -def add_ticket_member_modal(request): - - context = { - - } - - return render(request, 'add_templates/add-ticket-member-modal.html', context) -