From 004a0e9d6d63d9109350829cba56c8d92d2e22d6 Mon Sep 17 00:00:00 2001 From: emile Date: Fri, 12 Jul 2024 10:15:50 +0300 Subject: [PATCH] new; --- .../__pycache__/consumers.cpython-310.pyc | Bin 6605 -> 7463 bytes osinaweb/support/consumers.py | 40 ++++++++++++++++++ 2 files changed, 40 insertions(+) diff --git a/osinaweb/support/__pycache__/consumers.cpython-310.pyc b/osinaweb/support/__pycache__/consumers.cpython-310.pyc index 7e41e5f7703db9c7d3d051dde9c80c3e97dea4e8..f664b3e401d3b526fd07809393118544eb0d6615 100644 GIT binary patch delta 953 zcmYk4&ubG=5XblJk7Sc(leW7}HZ-NNR_h{Gi@#{4BIckdM6?B^ASJq+wyDY1x7$|h zMuqg^q0;g|5OQesAOSC;e}EKEiYGnPc=q5)G@g1W&TOi2VLp6k-hAKNowpy4z8Hzx ziW27FNo=j=9~x`X6nV3D@Ok_kXGTnAnKKoORD=n|l*TwC`s#D8lW+91EZG->T&{Oy zt;O+~o3ob7ZmWApgE4iuv%O?3PP%?|a*EpXb2au&?H6l=4zQt4m8CT?{Q-__L;w*I zCOi>|xDyeVlCAA7Xa;QOYH4W-x@zpHHkkT^CK=GQ$U94^mf^dWet>I1hzx}D4B!!y zB)Ky0as^W0J>KM3NLg?Nk1L3#P~q(qs)FPR>wyh!ftzdQ!Lqp9BSMei_sE`52+i_k z$rGJHPokGR!IaEEl`jW8k)CqHX7IEZsPN@rNrFUfYOuDsk#)rkc|kZnTopEm*|tIm zXL4hH7?CW+K~RNd;(f948c$=8)&-d2_A&OgqnkaBC;9D@zI+!?WhTO{0oMdNgyzc# zf14|yj418Gf{r)~s0XKWPR?~H4PmLoiirakZIo9L0mK;M3}PH$$aDbpd4#{Q|5jZy z&hFJZZZ4mnELz1I7Ok@%i9){cs(nE^4Xt$M@4prLg=qo6 zhP4rm&Vn-dEG=XC7UD3rDn~$WV_F2f-qK1WO-q>jbD2X$5e~vPyQ~qn<8&Sie&+(J zMTE_sB#hqsC`S=EtmfD%sO}){vTJQA)~zRbj<6H@BeIMit9h{Y6W8w{Ff*d;x4s&{ WDNql360Dkxku-am>=oNbwShl~&g*sn delta 383 zcmZ2(b=H_KpO=@50SF?mPe{A1Jdsa^amhsO#cV08!3>%_8=oW!F%_#!j$>4144%v{ zVaixMd9JYK~>7fOhWo&uUt%mXBN7`Ygk7+Dxu{_(I(o+x1j z)KVy-z?uq_(wsa^L{IP%NF@i5fT-j6xB0(B9^>Q#qVl|&Ohx=aiCfHhspVCZ--?r3+(q=6LKf(VeQMIhG|wUqU1kDf3Q(E2;VllE-29Z% doK!nTkYYI?!2=8opmIhYD1@;Em>B9sYyi;kSttMi diff --git a/osinaweb/support/consumers.py b/osinaweb/support/consumers.py index 1a3125df..476b39ba 100644 --- a/osinaweb/support/consumers.py +++ b/osinaweb/support/consumers.py @@ -198,6 +198,46 @@ class TicketRoomConsumer(WebsocketConsumer): })) + +class NewTicketConsumer(WebsocketConsumer): + def connect(self): + self.user = self.scope['user'] + async_to_sync(self.channel_layer.group_add)( + "new_ticket_group", + self.channel_name + ) + self.accept() + + def disconnect(self, close_code): + async_to_sync(self.channel_layer.group_discard)( + "new_ticket_group", + self.channel_name + ) + + def new_ticket_event(self, event): + ticket_id = event['ticket_id'] + ticket = Ticket.objects.get(id=ticket_id) + is_ticketstaff_member = ( + hasattr(self.user, 'staffprofile') and + (self.user.staffprofile in ticket.get_all_ticket_staff() or self.user.is_superuser) + ) + is_ticket_customer = ( + hasattr(self.user, 'customerprofile') and + (self.user.customerprofile == ticket.customer)) + if is_ticketstaff_member or is_ticket_customer: + context = {'ticket': ticket, 'new': True} + if is_ticketstaff_member: + html = render_to_string("details_templates/partials/staff-ticket-display.html", context) + else: + html = render_to_string("details_templates/partials/customer-ticket-display.html", context) + self.send(text_data=json.dumps({ + 'event_type': 'new_ticket', + 'html': html, + 'ticket_id': ticket_id + })) + + + class NewTicketUpdateConsumer(WebsocketConsumer): def connect(self): self.user = self.scope['user']