From 73e1eb7a0a2d1dc6147911b892f0f19067732dee Mon Sep 17 00:00:00 2001 From: emile Date: Sat, 3 Aug 2024 16:27:51 +0300 Subject: [PATCH] new --- osinaweb/db.sqlite3 | Bin 1806336 -> 1835008 bytes .../osichat/__pycache__/admin.cpython-310.pyc | Bin 560 -> 590 bytes .../__pycache__/consumers.cpython-310.pyc | Bin 9025 -> 9919 bytes .../__pycache__/models.cpython-310.pyc | Bin 4135 -> 4491 bytes osinaweb/osichat/admin.py | 1 + osinaweb/osichat/consumers.py | 51 +- .../osichat/migrations/0020_chatroomreview.py | 22 + .../migrations/0021_chatroomreview_details.py | 18 + .../0020_chatroomreview.cpython-310.pyc | Bin 0 -> 975 bytes ...021_chatroomreview_details.cpython-310.pyc | Bin 0 -> 648 bytes osinaweb/osichat/models.py | 11 + osinaweb/osichat/templates/chat-room.html | 10 +- osinaweb/osichat/templates/ended-chat.html | 448 +++++++++--------- .../partials/message-attachment.html | 6 +- .../osichat/templates/partials/message.html | 6 +- .../templates/partials/submitted-review.html | 232 +++++++++ .../osichat/templates/partials/typing.html | 2 +- .../templates/partials/unread-messages.html | 4 +- osinaweb/osichat/templates/start-chat.html | 2 +- .../custom_context.cpython-310.pyc | Bin 2997 -> 3126 bytes .../__pycache__/views.cpython-310.pyc | Bin 18690 -> 18701 bytes osinaweb/osinacore/custom_context.py | 6 +- osinaweb/osinacore/templates/index.html | 1 - osinaweb/osinacore/views.py | 2 +- .../__pycache__/settings.cpython-310.pyc | Bin 3211 -> 3211 bytes osinaweb/static/dist/output.css | 8 + .../uploaded_chat_files/Artboard 1 (3).png | Bin 0 -> 951445 bytes .../uploaded_chat_files/Artboard 1 (3)_1.png | Bin 0 -> 951445 bytes .../uploaded_chat_files/Artboard 1 (3)_2.png | Bin 0 -> 951445 bytes .../uploaded_chat_files/Artboard 3 (3).png | Bin 0 -> 959737 bytes .../static/js/osichat-admin/conversation.js | 2 +- osinaweb/static/js/osichat/conversation.js | 17 +- osinaweb/static/js/osichat/end-chat.js | 1 - osinaweb/static/js/osichat/send-review.js | 45 +- osinaweb/static/js/osichat/upload-file.js | 2 +- osinaweb/static/js/osichat/visitors.js | 6 +- 36 files changed, 646 insertions(+), 257 deletions(-) create mode 100644 osinaweb/osichat/migrations/0020_chatroomreview.py create mode 100644 osinaweb/osichat/migrations/0021_chatroomreview_details.py create mode 100644 osinaweb/osichat/migrations/__pycache__/0020_chatroomreview.cpython-310.pyc create mode 100644 osinaweb/osichat/migrations/__pycache__/0021_chatroomreview_details.cpython-310.pyc create mode 100644 osinaweb/osichat/templates/partials/submitted-review.html create mode 100644 osinaweb/static/images/uploaded_chat_files/Artboard 1 (3).png create mode 100644 osinaweb/static/images/uploaded_chat_files/Artboard 1 (3)_1.png create mode 100644 osinaweb/static/images/uploaded_chat_files/Artboard 1 (3)_2.png create mode 100644 osinaweb/static/images/uploaded_chat_files/Artboard 3 (3).png diff --git a/osinaweb/db.sqlite3 b/osinaweb/db.sqlite3 index fa8120b5e5ddb3c7db43e530d865f890c32ba2f5..3ba7f9f4b5db48fdd09dbdaba5cd27fe671e530b 100644 GIT binary patch delta 25358 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 a@B)KRRtECnT=PXY`7@i$gL}%a<^B(%u%n&; diff --git a/osinaweb/osichat/__pycache__/admin.cpython-310.pyc b/osinaweb/osichat/__pycache__/admin.cpython-310.pyc index 7306fde1849329c37723af57159edc0ef231e07a..935cc9d7a86111bd32088576c82046e84170a30d 100644 GIT binary patch delta 104 zcmdnMa*l;JpO=@50SFR4u1&i*kyn;+&P45gj#S1h<^?RN{1dmSFbYh(y-)HMpL0fH rNl<=%Zcu7jW@`CLh9Y60t|H;dix`XKq<~Bw1`b9ZCLTs~D8L8+G*lR5 delta 57 zcmX@dvVny+pO=@50SE-l*QTwV$Scb@VWM{b#A6DK{1cz=<6Oy5Bm|T!5}Le^v4~M( LvLTZslK>+C#ybxS diff --git a/osinaweb/osichat/__pycache__/consumers.cpython-310.pyc b/osinaweb/osichat/__pycache__/consumers.cpython-310.pyc index 24fe420021abd1d1d8ed01d0f437194c916ff164..5c2392faa9c9dd647455c3ae57b99e686fa2fc20 100644 GIT binary patch delta 3879 zcmaJ^U2q#$72dnMTCG+qS^kY>JGK+MiItF_Ns}fdX_Mk4ByFQ~T$mQqAe3CimTXDx z)rK@-g-V^Kp&3)AmjTKMMrMWwCcprB;h|H87v6c*Lm%nz!T`g-3rYCST}hTx5BBWY zv*(`sbH01dcd!08_YAa|h0rR)n;vUbXJ~JP*EObjb|F%5sD+2tSR=Yl zJzX!>vbx*~tX1YSal&VXcvbgx`1Ek?6^)bkWu>OV>1O1*Sk8#@buZVnmTqLlLPbnq zZMTw(p0`pte&9g4k}qZVLwZ-s#r=51B-&F>DvY4LI~n=i?a!b|K~ z`Hy73JYh$|!*Cp6mb_s9gq@Y2+DChOVX^Sc;;H=1lz%t2KX@VXON0Ge{>PoJ`366{ zq<>Erm%JSXtB^#f2|kUW#@97i_kGq{P5634=SS8V+Q-_upUCV~`ZLNt)7D|1@)M01 zfmuqZ(ZV!Gt6!3}9r@8UqnhBy{6wLbf4;8E9nm2<8jG;w@~PN6?4-OOD@M;D2=M}m z7v)rZFRYj12iZCKR(#j+%Va)DVh*Bdu4KK%6ylN}$4|lKQGC?;3boG5iJqrx4bj>NGvv;{H?{V(dV48Lt&UsfM+WKr-!P-S1c`DIQ+98OS@Kg>y80(9$ zJ?3M_9AX2^ZT&mU(oJUL-+HK9CbJ$nrp4^X=HFzhe^<>#*G@GE77&9NK}Kp--D3s4 zVE8&`$bXaT>#S;cp)Q-Xu2s#F#o>#`z+%uRzuKiZZ7F!$&2{5mzot4i zsAH7()DdA<7uFcy30Qj3?E`e{Yj-OpeO>(A*9(K@j=|biOQn4Yt36B|bUR zv0!znp|toK?Iu-f%2Wx~>{DqXkXG$nsfa2$9fy#g49twY3Z-f1E17%|^(W@3k!<3W zoE&_QJumMMUb;9Gr0WXV_mcP=MAI${o)eiXH^mLI?IS_ssxlBZxr7%`WS%F2A-_$H z^YYlxbF;1>4i#^bP^tYb($vzvL)zOUR!I}fqB8yqb z+5u)7CNr6C=uF4k`mYm~e;Im*mE`iaWDOu1NGqeN&M1{uQ?P|Rs}bfQP`9PFFx=jC z&&I|YJc7NZlx+K%+}Z4xil)UEu?TSy0;Hm%qN6Clq(<5oG;NWnahyI>oOek3E{VG& z-h)U*M40qt5*q`Yrq2&ZDAJLng&Ys8dDZ5pcbN;?}@QR(SdBa^-+`b0uF|*uUr%mp9@UcVs=8eBKTyRY6gv!BlEd z#805`i*5jj90Oz(0NXF%d#(*YoH>*ox{my?9=RboF>;>$9$7I{+wFmMKq9Rz2J?h` zgkION{Rp1h?En=t5ny%Ni*N_fL;(#kR68+3+*OIu=>fmk7Jhoc5p$@2kW`5s1|xw_ z>ISgvbWHW6#g{0a7J@fPS171tdPyD|9gp57qspRpWp;Fj6{L~8J35oOho+PpB$F!L z&Bgfyj3PoKDSQ=(Y3glt<(8UW<<<|$Q{jsXAyS&~JqRU8FghLNp|NZ1H}b==QK~nc zo2`07Rsp)Bp8?wf-RlM13q>k;7n~9UCXDWtJX|-uC~(m?^2~F$0N;YYi+gA=Qd+%d zan)2qg?OxPZc5d7T6~ovA$SE{V^FoX+IknzUzWw~(}^E-S^~)B`u1Hlh4wskHG`ri zT_{(Dek?%$4YK}!^gFjDLBMZp#-=S$t5aL>Avpy#{ujf{N}LfJ$9AzDd^Oa&}^B zUSUDgDHc;Xnd&a$jTGFXh&P3)rcxuTSc6I?g8wmvIReE&h%Rm=ir*iilK(m}$L`3J zldp~=6c^kDe)n+ZcX3zT>uDt9uO^3U9a`!-Fk6JJjv=*EYZM8^H1Fg}JjXM1ly-&I z8*Htjra|%@BB5CS`_P&(FDHul>EWR(j>sgnDhT$@kV=~+-Y21E+X52t13KZRa`3s| zW-y!efxleb#DIVfE(4h(`uBJ2k$)NWD5U8~hSU zivq2n#V_jgr2uY?cNjXj3L}Pn!PT*gtFKX4IGZHf6IG%Iu(~6?U;sOaGDnX?p yD3JuAD)N#|ZJQC#KtF;>ng=7 zRFQe`rN-@p4&^Ht1k!a%kzW8E{iSfnwV1l9k|D5hppxS2t^Ur@dGxN>&|8u_E zb7x0*A{26b@K@=(b>f%)uflnYyef;<5#xX_*&u(lR+cV+*Y)Lmj5Pb020y(S#wj8+ zuqtbVit~1oX#kZ{KG#+ zHp>y(YBqo~Azk_z8IUdZQxOcd;P)K-3V-RhkJ@*2^0!X!e6Y_dUG;djU;c{My9 z*bX85MHD-w5m^b=-bgRmF4K`^O+#qjgkm3vig7wEP9`-zC_j(%L&(pOMb;toj$Dtf zUx#t9PRzj=v@2bIpjYfdCX-LGw8%inkjz9odQuPKE9U6gOhF{)GLGUaUIVcMf;Y*V z(LtE=UUaavw&Y|NUyeaND3U1p<(;~IvQ3g$Q{WjiY(}w1cE_$*X;70<`BSX5U0I(+ z7cQ|9Jbp4QQsbFIAw8Ob?b-1))-m)Rm3{F=G96D?yI@#wZeNVs#GtdrJ^5u~Sz`c< zHJA?)k3zgo{+?(lML5VKHxjjUG#&^ z4>l_NuAiCAH>nqG*XG+?J4ao+Yy-ROoWrbX-KEUG*@rWDnroE& zI>@>VS+QzXzS-6Ir>>TZ@oQj@SM5jhAs8mA!@LEf`s(Qarb;#p@*{{nQtpPP4zLna z2gD~P#;d1PkRLSkv>b$(3e6T$*>OC%5zIpy?~^|?d`Py)gN;Kp?vWrTZ#6cx_oJ6$ zntwDS(n4@A0UH1xk$*P!l>)pD2WLNhHel|*NAoBF)1+!)hG$V)6gvWZPPiDllxkG)^-6u zIun2O6ons7N@q5l9TH2$$!pC`r5!luZV*s5YW=E>ypGnbp0yoywV@Jf@1b}b#UzL% z<$lyppirp_vnx1M)piv%6GYN{6e)b?D!vc~1K{a~3MsUL5+#~u;NA_HYB>~B&6kv+ z`2xco7S?Vs0-LSY}7x0qf7%XQ3Z%y1*8fBb66mYuc~>H!9l(g=H<_$ zP|XhUQN@2DaXQUKHhrqFM!a!4n;%_$QjDJhIBW<&Ja|dIxv071_Zp0XCW~f7fIp1N zjroA6=BYql2#*&a`^hREVd9VkoIS8&HfT_y!GH8VH4PG;z0f{X$cp2#t#v*58dwoO z#Gs=fF0fxsb(5t6EYLaTXplp?7)TeO2%yI3JcKl61HgTPG6ygX0H$UYH~D>Q{ay+U z;SoEYL(b-VQRbXHfv#h+@U#vH*WR3r4DtgAh{BblrUZ)SAlG)ZbYZ9Pu*3@%3b}v=b=fLhUy^4!x}%@ej2^=Bi;iV` z6}Z?5lLl9XuDYTMRbU4_u*Wd>Kf$hD-*9(!cGmZ+W~kPn5WbGd3n4rV4u%M?00qk& z+8vhpxz6+!T)j)YGRN;A-Xrk)N@E(ZPzN;dn@d;d8&LC#!w>OuQCDZ=i$jUZELpL2Fd5?OF>wQmjVKZ*+EA=Rf%hOEK!M$l uV>NOl3`amYlf71x{Aj7&im+0ch=!@(SEB87GmX)D+DsdR(c9lFb;!TVb8P_t diff --git a/osinaweb/osichat/__pycache__/models.cpython-310.pyc b/osinaweb/osichat/__pycache__/models.cpython-310.pyc index 5c8ded3811ffc187dc498d4d2ff09c4dd5298899..6b63d8db72b48b7d5b75f48c10f64bfa9d53a2dd 100644 GIT binary patch delta 719 zcmYjNON-M`6wXbWCTY?n4OZJaFPu>f>OvVrd||Eaq#*6sR&=s)O7AVrFt+8k=!lD1 zD5wmB)cY3%XQ3;>|KQqP1YwpUxbY8oPG+Gw+%M<*?s?twVQFvK9%Zu`3BJ8wpZZN_ zX3vq|vvc1IYZ5Kc;!BAZ8QD@_D4|Q0w&a&STjZW5o@>VLEl6TgNT?Lbl!OXPZK*5` zs8N|J`%0*TZ_pG|fUCeWz)kRFn%(Bw1Ss&7<-)Ec+r~Jl|rnLPoORfN+BiwI{CasaW;S+_ThM#I?Xu$^fwV%s#^B~;;Xgku48B$;R?b7ap;^_ z;&;Js!kJhAy5tfaOjc}?+$0mc$#$UVkL+sxAtqi%Nc!Rycp2*y_y+hPoXNjexP))O zkn>{49zcOZyKMefKwNNE7cgTJvyK+zl4D?yhq|8=yUudD0WR-|181d#JK?wm?jzvn jNnakq3};R)0JkKZUnid88J_OtJ=M#2X)w(*kEj0vOOcWc delta 423 zcmYjN%}PR15WXktdan2Hc<`o>il7_05eW7JrWS}v1*Yl7O@H1%h@_*7-XN%z%&I4- zO^b*gpUU-8Rq-u=O%lXafY@X(eU}DhtoHE;w0I0;(zG<(7u*W zJf&GH3@^rWyo4nM^ly&9HNgb4m@2^}60mj17#(cfZ% zsn+k<7pPMao8~_qxE9598yQ_<(d}r07#i{@pBFF{S-p;-+J(7j&ZCp4JONFusHJM- eCUNLR-Aod{mPRXZCPUJYTzYa=>S$qU&g(xh{7*vw diff --git a/osinaweb/osichat/admin.py b/osinaweb/osichat/admin.py index 7f28068c..5d0fe1d5 100644 --- a/osinaweb/osichat/admin.py +++ b/osinaweb/osichat/admin.py @@ -11,3 +11,4 @@ admin.site.register(ChatMessage) admin.site.register(ChatMessageAttachment) admin.site.register(ChatMessageReaction) admin.site.register(ChatMessageSeen) +admin.site.register(ChatRoomReview) diff --git a/osinaweb/osichat/consumers.py b/osinaweb/osichat/consumers.py index 7103c6a1..2381d4d4 100644 --- a/osinaweb/osichat/consumers.py +++ b/osinaweb/osichat/consumers.py @@ -53,6 +53,7 @@ class OsitcomVisitor(WebsocketConsumer): class OsitcomChatRoom(WebsocketConsumer): def connect(self): self.session_id = self.scope['url_route']['kwargs']['session_id'] + self.domain = 'https://osina.ositcom.com' async_to_sync(self.channel_layer.group_add)( self.session_id, self.channel_name ) @@ -224,6 +225,28 @@ class OsitcomChatRoom(WebsocketConsumer): self.session_id, event ) + if event_type == 'submit_review': + if ChatRoomReview.objects.filter(room=self.chat_room).last(): + review = ChatRoomReview.objects.filter(room=self.chat_room).last() + if text_data_json.get('reaction'): + review.reaction = text_data_json.get('reaction') + if text_data_json.get('details'): + review.details = text_data_json.get('details') + review.save() + else: + review = ChatRoomReview.objects.create( + room = self.chat_room, + reaction = text_data_json.get('reaction'), + details = text_data_json.get('details'), + ) + event = { + 'type': 'submit_review_handler', + 'review_id': review.id + } + async_to_sync(self.channel_layer.group_send)( + self.session_id, event + ) + @@ -233,14 +256,18 @@ class OsitcomChatRoom(WebsocketConsumer): if self.chat_room: chat_room = self.chat_room chat_room_messages = ChatMessage.objects.filter(room=chat_room).order_by('date_sent') + review = ChatRoomReview.objects.filter(room=chat_room).last() else: chat_room = None chat_room_messages = None + review = None context = { 'chat_room': chat_room, 'chat_room_messages': chat_room_messages, + 'review': review, + 'domain': self.domain } if self.client_type == 'mobile_admin': @@ -293,7 +320,8 @@ class OsitcomChatRoom(WebsocketConsumer): chat_room = get_object_or_404(ChatRoom, id=event['chat_room_id']) context = { 'chat_room': chat_room, - 'session_id':self.session_id + 'session_id':self.session_id, + 'domain': self.domain } if self.client_type == 'mobile_admin': self.send(text_data=json.dumps({ @@ -316,6 +344,7 @@ class OsitcomChatRoom(WebsocketConsumer): context = { 'member': member, + 'domain': self.domain } html = render_to_string("partials/typing.html", context=context) @@ -332,6 +361,7 @@ class OsitcomChatRoom(WebsocketConsumer): chat_message = get_object_or_404(ChatMessage, id=event['chat_message_id']) context = { 'chat_message': chat_message, + 'domain': self.domain } if self.client_type == 'mobile_admin': chat_message_data = model_to_dict(chat_message) @@ -357,7 +387,8 @@ class OsitcomChatRoom(WebsocketConsumer): message_attachment = get_object_or_404(ChatMessageAttachment, id=event['message_attachment_id']) context = { 'message_attachment': message_attachment, - 'file_type': event['file_type'] + 'file_type': event['file_type'], + 'domain': self.domain } if self.client_type == 'mobile_admin': message_attachment_data = model_to_dict(message_attachment) @@ -382,7 +413,8 @@ class OsitcomChatRoom(WebsocketConsumer): latest_unread_message = get_object_or_404(ChatMessage, id=latest_unread_message_id) context = { 'number_of_unread' : event['number_of_unread'], - 'latest_unread_message': latest_unread_message + 'latest_unread_message': latest_unread_message, + 'domain': self.domain } html = render_to_string("partials/unread-messages.html", context=context) self.send(text_data=json.dumps({ @@ -403,9 +435,22 @@ class OsitcomChatRoom(WebsocketConsumer): context = { 'chat_room': self.chat_room, 'chat_room_messages': ChatMessage.objects.filter(room=self.chat_room).order_by('date_sent'), + 'domain': self.domain } html = render_to_string("ended-chat.html", context=context) self.send(text_data=json.dumps({ 'event_type': 'ended_chat', 'html': html, + })) + + def submit_review_handler(self, event): + review = get_object_or_404(ChatRoomReview, id=event['review_id']) + context = { + 'review': review, + 'chat_room': self.chat_room, + } + html = render_to_string("partials/submitted-review.html", context=context) + self.send(text_data=json.dumps({ + 'event_type': 'submit_review', + 'html': html, })) \ No newline at end of file diff --git a/osinaweb/osichat/migrations/0020_chatroomreview.py b/osinaweb/osichat/migrations/0020_chatroomreview.py new file mode 100644 index 00000000..e5e00716 --- /dev/null +++ b/osinaweb/osichat/migrations/0020_chatroomreview.py @@ -0,0 +1,22 @@ +# Generated by Django 4.2.5 on 2024-08-03 08:33 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('osichat', '0019_visitorlog_visitor'), + ] + + operations = [ + migrations.CreateModel( + name='ChatRoomReview', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('reaction', models.CharField(choices=[('Happy', 'Happy'), ('Indifferent', 'Indifferent'), ('Sad', 'Sad')], max_length=50, null=True)), + ('room', models.OneToOneField(null=True, on_delete=django.db.models.deletion.CASCADE, to='osichat.chatroom')), + ], + ), + ] diff --git a/osinaweb/osichat/migrations/0021_chatroomreview_details.py b/osinaweb/osichat/migrations/0021_chatroomreview_details.py new file mode 100644 index 00000000..c15385cd --- /dev/null +++ b/osinaweb/osichat/migrations/0021_chatroomreview_details.py @@ -0,0 +1,18 @@ +# Generated by Django 4.2.5 on 2024-08-03 08:34 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('osichat', '0020_chatroomreview'), + ] + + operations = [ + migrations.AddField( + model_name='chatroomreview', + name='details', + field=models.TextField(blank=True, null=True), + ), + ] diff --git a/osinaweb/osichat/migrations/__pycache__/0020_chatroomreview.cpython-310.pyc b/osinaweb/osichat/migrations/__pycache__/0020_chatroomreview.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d960767934415e7011360b87f01f2c5363e18b7a GIT binary patch literal 975 zcmYjQO>fgc5VhBiW9OqyB`AUu5*K`l)83E}YDpX>BK*nVqJi`rieYJ-_JzF6Z1B_qRcT;o56PgE;siHJ(Z3#pu(Q^@2| ztk>=j&0`0roT33^Y*J%PsF|2!3+xm#QVX24Np1WZ)S=BQdrGK_n41{X`)1M>uC%W# zL_3Ij$flLHQzz}DUD~BRf=Ba0y`%<)B>L9cy8H3(s%7i)OQ>SVsXcY9ADoO{XBBC`GTvtWiY82Kv|A8n9F| zKI1F~i5f?r!wia~JX3Zt&oX5TgKS8iC53`5llLu}hT1N1v#_-P(xdb5rw%%Gr9#0;b$I&phgNpPt9EbvYls`Hv9 zyC}}SPOUuDP}FYsxPViRrVbsNMn%FEp%dj++)x?S9PW;WyL)d`i_hTp8htm!bIe?s z-;3ZQ>MH}tSq6}0Yze_0$n%oVf)T2oKYbs~ba0IQjCmfQBt;Yyu&A8+&>CF8L_1om z;O^1}gTeM7TnQ+u*7vbd`f)UI%1tz`K`i^mZV>YU*)*S+ qRO|BiKiIEdMSoSac&4k<`S0qiJs&aUzO38v%EU-IXnMpoH?4nbJRmv% literal 0 HcmV?d00001 diff --git a/osinaweb/osichat/migrations/__pycache__/0021_chatroomreview_details.cpython-310.pyc b/osinaweb/osichat/migrations/__pycache__/0021_chatroomreview_details.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..250333b377afa7279b6a5e48e60891a9027626fc GIT binary patch literal 648 zcmZ8fJ#W-N5Zw>^>^mh0@l{hHxj7%y2n7j21EEN0+^qI)CdXdZUgPy~q)HLmYxoxw z{Gn~B5dQ!Pg;`%vqKq}8c{}5MJ8#$R?@t)nx8FZbww$q_5!|$dzyY~`LID_X%W7Wn zT2z9wHw*;GuM8yemAsIZgye`7=`ZSKg$R?{EIZvB*Z4519ia7#Sh{H$fdg_srGTvB zz$yWJ$t#J;Dvbm}&wvuW&WJHvQ@w@*FM3*^l79VwA-Ji{#%~VV~=jskW z8{C9Dw{Qm7Yh(Q}{h7|KZcanetgS61ojaaYHM&Mxi!nVhXyLFJhg=QoN`;A1)VH=s z`JPgr*4oD2hyYt`0GowD-w7Hl_E-|9Ak_uljiSC=$>qss<2Ljo(^EZuH#gY%d~0m|zu zDM_WLw^UMBqD+Ga-}9Bo$onJ)Zo{FNgYJk%aM%Y6|mV)M3D(csWO|=&Q literal 0 HcmV?d00001 diff --git a/osinaweb/osichat/models.py b/osinaweb/osichat/models.py index 55c4b464..ec523149 100644 --- a/osinaweb/osichat/models.py +++ b/osinaweb/osichat/models.py @@ -46,6 +46,17 @@ class ChatRoomGuest(models.Model): room = models.OneToOneField(ChatRoom, on_delete=models.CASCADE, null=True) visitor = models.ForeignKey(Visitor, null=True, on_delete=models.CASCADE) + +class ChatRoomReview(models.Model): + REACTION_CHOICES = ( + ('Happy', 'Happy'), + ('Indifferent', 'Indifferent'), + ('Sad', 'Sad'), + ) + room = models.OneToOneField(ChatRoom, on_delete=models.CASCADE, null=True) + reaction = models.CharField(max_length=50, choices=REACTION_CHOICES, null=True) + details = models.TextField(null=True, blank=True) + class ChatMember(models.Model): member = models.ForeignKey(User, on_delete=models.CASCADE) room = models.ForeignKey(ChatRoom, on_delete=models.CASCADE) diff --git a/osinaweb/osichat/templates/chat-room.html b/osinaweb/osichat/templates/chat-room.html index 406a1706..f4f31c84 100644 --- a/osinaweb/osichat/templates/chat-room.html +++ b/osinaweb/osichat/templates/chat-room.html @@ -49,7 +49,7 @@ class="w-[25px] h-[25px] rounded-full shadow-md text-white flex justify-center items-center bg-osiblue uppercase text-xs"> {% if message.member.staffprofile.image %} + src="{{domain}}{{message.member.staffprofile.image.url}}"> {% else %}

{{message.member.first_name.0}}{{message.member.last_name.0}}

{% endif %} @@ -64,7 +64,7 @@ {% if message.chatmessageattachment.is_image %}
- +
{% else %}
- +
{% else %} @@ -125,7 +125,7 @@ {% endfor %} - + @@ -161,7 +161,7 @@
- +

Osichat 2.0 by Ositcom

diff --git a/osinaweb/osichat/templates/ended-chat.html b/osinaweb/osichat/templates/ended-chat.html index 577927a8..c2458fd5 100644 --- a/osinaweb/osichat/templates/ended-chat.html +++ b/osinaweb/osichat/templates/ended-chat.html @@ -45,7 +45,7 @@ class="w-[25px] h-[25px] rounded-full shadow-md text-white flex justify-center items-center bg-osiblue uppercase text-xs"> {% if message.member.staffprofile.image %} + src="{{domain}}{{message.member.staffprofile.image.url}}"> {% else %}

{{message.member.first_name.0}}{{message.member.last_name.0}}

{% endif %} @@ -60,7 +60,7 @@ {% if message.chatmessageattachment.is_image %}
-
{% else %} @@ -104,7 +104,7 @@
-
@@ -140,237 +140,243 @@ -
-
-
- - - - - - - - - - - - +
+ {% if not chat_room.chatroomreview %} +
+
+
+ + + + + + + + + + + + +
-
-
-

Rate your conversation

- -
- - - - - - + + + + + -
+ + +
-
- {% csrf_token %} -
- - -
- + + {% csrf_token %} +
+ + +
+ +
-
- + +
+ {% else %} + {% include 'partials/submitted-review.html' %} + {% endif %}
@@ -381,14 +387,14 @@
- +

Osichat 2.0 by Ositcom

diff --git a/osinaweb/osichat/templates/partials/message-attachment.html b/osinaweb/osichat/templates/partials/message-attachment.html index ce0c2812..48df8823 100644 --- a/osinaweb/osichat/templates/partials/message-attachment.html +++ b/osinaweb/osichat/templates/partials/message-attachment.html @@ -5,7 +5,7 @@ class="w-[25px] h-[25px] rounded-full shadow-md text-white flex justify-center items-center bg-osiblue uppercase text-xs"> {% if message_attachment.message.member.staffprofile.image %} + src="{{domain}}{{message_attachment.message.member.staffprofile.image.url}}"> {% else %}

{{message_attachment.message.member.first_name.0}}{{message_attachment.message.member.last_name.0}}

{% endif %} @@ -14,7 +14,7 @@ {% if file_type == 'image' %}
- +
{% else %}
- +
{% else %} diff --git a/osinaweb/osichat/templates/partials/message.html b/osinaweb/osichat/templates/partials/message.html index 02500bc5..182c11a2 100644 --- a/osinaweb/osichat/templates/partials/message.html +++ b/osinaweb/osichat/templates/partials/message.html @@ -5,7 +5,7 @@ class="w-[25px] h-[25px] rounded-full shadow-md text-white flex justify-center items-center bg-osiblue uppercase text-xs"> {% if chat_message.member.staffprofile.image %} + src="{{domain}}{{chat_message.member.staffprofile.image.url}}"> {% else %}

{{chat_message.member.first_name.0}}{{chat_message.member.last_name.0}}

{% endif %} @@ -20,7 +20,7 @@ {% if chat_message.chatmessageattachment.is_image %}
- +
{% else %}
- +
{% else %} diff --git a/osinaweb/osichat/templates/partials/submitted-review.html b/osinaweb/osichat/templates/partials/submitted-review.html new file mode 100644 index 00000000..6c0dc63d --- /dev/null +++ b/osinaweb/osichat/templates/partials/submitted-review.html @@ -0,0 +1,232 @@ +
+
+
+ + + + + + + + + + + + +
+
+ +
+

Thank you for submitting the rating

+ +
+ + + + + + +
+ {% if not review.details %} +
+ {% csrf_token %} +
+ + +
+ +
+
+
+ {% endif %} +
+
\ No newline at end of file diff --git a/osinaweb/osichat/templates/partials/typing.html b/osinaweb/osichat/templates/partials/typing.html index dff0a3dc..ec7bc9ac 100644 --- a/osinaweb/osichat/templates/partials/typing.html +++ b/osinaweb/osichat/templates/partials/typing.html @@ -3,7 +3,7 @@ class="w-[30px] h-[30px] rounded-full shadow-md text-white flex justify-center items-center bg-osiblue uppercase text-xs"> {% if member.staffprofile.image %} + src="{{domain}}{{member.staffprofile.image.url}}"> {% else %}

{{member.first_name.0}}{{member.last_name.0}}

{% endif %} diff --git a/osinaweb/osichat/templates/partials/unread-messages.html b/osinaweb/osichat/templates/partials/unread-messages.html index 8d2159c2..64a859c2 100644 --- a/osinaweb/osichat/templates/partials/unread-messages.html +++ b/osinaweb/osichat/templates/partials/unread-messages.html @@ -7,7 +7,7 @@ class="w-[30px] h-[30px] rounded-full shadow-md text-white flex justify-center items-center bg-osiblue uppercase text-xs"> {% if latest_unread_message.member.staffprofile.image %} + src="{{domain}}{{latest_unread_message.member.staffprofile.image.url}}"> {% else %}

{{latest_unread_message.member.first_name.0}}{{latest_unread_message.member.last_name.0}}

{% endif %} @@ -45,7 +45,7 @@
{% else %}
- +
{% endif %} diff --git a/osinaweb/osichat/templates/start-chat.html b/osinaweb/osichat/templates/start-chat.html index 52282795..42d39d79 100644 --- a/osinaweb/osichat/templates/start-chat.html +++ b/osinaweb/osichat/templates/start-chat.html @@ -62,7 +62,7 @@
- +

Osichat 2.0 by Ositcom

diff --git a/osinaweb/osinacore/__pycache__/custom_context.cpython-310.pyc b/osinaweb/osinacore/__pycache__/custom_context.cpython-310.pyc index 04de05acbd363488f8c458b67e768e68d85242e5..283e1124b98ce61dd547b12f7647cb296eb2b83b 100644 GIT binary patch delta 1286 zcmaJ>&2JM&6rb6(*Sl-)+VQtd0=PgF^U)M2LP7;8QmXa@sGLyMMkr%o7snfBC#r&Phpw73T!1321rkyZy_G{x{R4XHac}Ltr(QVnW)mewifZZo{61!Oe(yJL_qW#D zwi`H(P1NtquXlf`|K$EX?qcAg>1g3~#BGw03E>8#Bg(XhVoWC_(ty4oOb6`+d8tP_ zBT)`5k7lr3R6sM)ER1cmB3cQ}5n7_-Zg-pbIX}Nc`A`^s!8cXR@-ZD}DQh~F*vyzv zMp)r{t%Jvi535CdTt0hTiN6t!+R032#WZoTQrOGb`xz4oV75qPiLzfvD!8T$Wq(Fg zS#guHaVe%z1uA%`GojJUJ>-v8gqdaXO)siK)vqP$NCzCAfaBMd$J_@Re-6c@0o4hm zi$G1SVD*^pcdi;Q!}vgo|5IZALnZLi7N)hpxObq&4t;1I z=y6ztt(=OgI4_Mc3f%F#**G*}iiLXA6h{RY=eH47h9qF1+k=-lvNx#e6>O6Cu2O?MvhN;1V zwL9L3f2s(bQE*nlIr)Wkw!5I*PZXS2&{uF;!37yx%XCiuWz8?$P>G&`j}S6+QYm{UCouR?avL38vpUz@?Se{+*X?pq{_Um I{INLy9yh{Dd;kCd delta 1152 zcma)6OKTHR6rMYonane<$*WCkU)UP0Ru^KaMG-29f{O}nd@Xv@l4+Z?lPiLpAxK;5 zW}x01d#Hd{uI3MSJH|O5(eD@^p%5O`lrsJ3reqiR+ za@T#4`qnPt%E3rrv_=uB6c7v?QVyf0rqq z>SQDL-j2}jgSNmIC!bqAwg;dNl==^`3XixO4h@HS! zbNju(wbSRuk3Kj4%CU))K^i9|ht`(7ay$pQkRYEATs9yigB!Ch&4-C-up{k}c54oD zv~WoZa(iTR3b6Q51+xkpiVG}S#P`=}3E$8- zJY@O4-QjPxFN=8K&}C=1%0U#qv+QgeOd z%2j?}TO<~LtyM{$f7Kq6aXy>8L2Ujk`O&S8bahr=uRU!xYTZPm`NX&QhJJu|tHyq= zA^{no)a)5U`oI#0q419E|3bpWlmncDTomP(*n*4xF8^wS`b+* v)p*S6YjswywZy+i>pcR0W3H(-v1OZ2Sl1QpyT8aAR#;f!R4E+z diff --git a/osinaweb/osinacore/__pycache__/views.cpython-310.pyc b/osinaweb/osinacore/__pycache__/views.cpython-310.pyc index a279a3afa208141107ffb31e466ee0c8a8c9413a..1a3fc79de44f7e2371c8f9db5c856ea81bf388ad 100644 GIT binary patch delta 277 zcmZpg#MnEDkvE^0mx}=i_G_$5JGhZ|f*GUTXpk(U?c~|knn2qX^@S(j zu$EzS02$!5`Ij{-6QlPeyL?8U$pv=NjJ})C*ez#d^qySe5YOfZQsWQS^2WiLF=(@a wV=FUb@Z@bSGZ;fQ`@1e-(zFLDaRCu-Ai@(wc!3CS5aA0VfJCoAd;PkwAI!)6aM#d9;O4J#9) z*JN(Hd`9od)ppU0KAW%GEoTG@)jPzq`GOSrf%SZMaApkLZ0*>}%osHJpvw%#;LTC4 pOPKWRKuVlJge!>f01=)b!V5(BfQUd45ey
- {% if tasks %}