0.12.24 timezone in chat messages
This commit is contained in:
@@ -1,5 +1,19 @@
|
|||||||
from django.template.loader import render_to_string
|
from django.template.loader import render_to_string
|
||||||
|
|
||||||
|
|
||||||
|
def get_user_timezone_Dict(user, request=None):
|
||||||
|
tz = None
|
||||||
|
if request:
|
||||||
|
tz = request.COOKIES.get("user_tz")
|
||||||
|
if not tz and user.is_authenticated:
|
||||||
|
tz = user.user_profile.get_timezone()
|
||||||
|
|
||||||
|
if not tz:
|
||||||
|
from django.conf import settings
|
||||||
|
tz = settings.TIME_ZONE
|
||||||
|
|
||||||
|
return {'user_tz': tz}
|
||||||
|
|
||||||
def get_dashboard_page_content_html(request):
|
def get_dashboard_page_content_html(request):
|
||||||
|
|
||||||
from ChatServiceApp.funcs import get_unanswered_msgs_count_for_user
|
from ChatServiceApp.funcs import get_unanswered_msgs_count_for_user
|
||||||
|
|||||||
@@ -232,6 +232,7 @@ def chats_ajax(request):
|
|||||||
'receivers': receivers,
|
'receivers': receivers,
|
||||||
# 'messages': cur_chat_msgs
|
# 'messages': cur_chat_msgs
|
||||||
}
|
}
|
||||||
|
Dict.update(get_user_timezone_Dict(request.user, request=request))
|
||||||
|
|
||||||
html = render_to_string('blocks/profile/b_chats.html', Dict, request=request)
|
html = render_to_string('blocks/profile/b_chats.html', Dict, request=request)
|
||||||
return JsonResponse({'html': html}, status=200)
|
return JsonResponse({'html': html}, status=200)
|
||||||
|
|||||||
@@ -53,6 +53,12 @@ class UserProfile(BaseModel):
|
|||||||
|
|
||||||
mailing_on = models.BooleanField(default=False, verbose_name=_('Рассылка'))
|
mailing_on = models.BooleanField(default=False, verbose_name=_('Рассылка'))
|
||||||
|
|
||||||
|
def get_timezone(self):
|
||||||
|
tz = None
|
||||||
|
if 'user_timezone' in self.json_data:
|
||||||
|
tz = self.json_data['user_timezone']
|
||||||
|
return tz
|
||||||
|
|
||||||
def save_user_alerts_to_session(self, request):
|
def save_user_alerts_to_session(self, request):
|
||||||
for_save_to_session = self.get_node_by_name('for_save_to_session')
|
for_save_to_session = self.get_node_by_name('for_save_to_session')
|
||||||
if for_save_to_session:
|
if for_save_to_session:
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ from django.urls import reverse
|
|||||||
import json
|
import json
|
||||||
from datetime import datetime, time
|
from datetime import datetime, time
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
|
from AuthApp.funcs import get_user_timezone_Dict
|
||||||
|
|
||||||
|
|
||||||
def get_unanswered_msgs_count_for_user(user):
|
def get_unanswered_msgs_count_for_user(user):
|
||||||
@@ -56,7 +56,6 @@ def get_update_chat_Dict(data):
|
|||||||
if data['sender'] == data['cur_user']:
|
if data['sender'] == data['cur_user']:
|
||||||
user = copy.copy(sender)
|
user = copy.copy(sender)
|
||||||
cur_receiver = copy.copy(receiver)
|
cur_receiver = copy.copy(receiver)
|
||||||
# context_Dict.update({'user': sender})
|
|
||||||
else:
|
else:
|
||||||
user = copy.copy(receiver)
|
user = copy.copy(receiver)
|
||||||
cur_receiver = copy.copy(sender)
|
cur_receiver = copy.copy(sender)
|
||||||
@@ -65,8 +64,9 @@ def get_update_chat_Dict(data):
|
|||||||
# context_Dict.update({'cur_receiver': receiver})
|
# context_Dict.update({'cur_receiver': receiver})
|
||||||
context_Dict.update({
|
context_Dict.update({
|
||||||
'cur_receiver': cur_receiver,
|
'cur_receiver': cur_receiver,
|
||||||
'user': user
|
'user': user,
|
||||||
})
|
})
|
||||||
|
context_Dict.update(get_user_timezone_Dict(user))
|
||||||
|
|
||||||
if sender == receiver:
|
if sender == receiver:
|
||||||
print('!')
|
print('!')
|
||||||
@@ -112,7 +112,7 @@ def get_update_chat_Dict(data):
|
|||||||
|
|
||||||
context_Dict.update({
|
context_Dict.update({
|
||||||
'messages': msgs,
|
'messages': msgs,
|
||||||
'MEDIA_URL': settings.MEDIA_URL
|
'MEDIA_URL': settings.MEDIA_URL,
|
||||||
})
|
})
|
||||||
html = render_to_string(tpl_name, context_Dict)
|
html = render_to_string(tpl_name, context_Dict)
|
||||||
if required_full_support_chat_html:
|
if required_full_support_chat_html:
|
||||||
@@ -288,10 +288,7 @@ def send_msg(data):
|
|||||||
|
|
||||||
def get_chat_page_content_html(request, receiver_id=None):
|
def get_chat_page_content_html(request, receiver_id=None):
|
||||||
from AuthApp.models import User
|
from AuthApp.models import User
|
||||||
from django.utils import timezone
|
from AuthApp.funcs import get_user_timezone_Dict
|
||||||
|
|
||||||
msg = f'now {timezone.now()}'
|
|
||||||
print(msg)
|
|
||||||
|
|
||||||
msgs = []
|
msgs = []
|
||||||
try:
|
try:
|
||||||
@@ -311,6 +308,7 @@ def get_chat_page_content_html(request, receiver_id=None):
|
|||||||
'receivers': receivers,
|
'receivers': receivers,
|
||||||
'page': 'chat',
|
'page': 'chat',
|
||||||
}
|
}
|
||||||
|
Dict.update(get_user_timezone_Dict(request.user, request=request))
|
||||||
tpl_name = 'blocks/profile/b_chats.html'
|
tpl_name = 'blocks/profile/b_chats.html'
|
||||||
|
|
||||||
html = render_to_string(tpl_name, Dict, request=request)
|
html = render_to_string(tpl_name, Dict, request=request)
|
||||||
|
|||||||
@@ -53,6 +53,7 @@ def show_chat_w_user_ajax(request):
|
|||||||
|
|
||||||
data = json.loads(request.body)
|
data = json.loads(request.body)
|
||||||
Dict = get_chat_page_content_Dict(request, data['user_id'])
|
Dict = get_chat_page_content_Dict(request, data['user_id'])
|
||||||
|
Dict.update(get_user_timezone_Dict(request.user, request=request))
|
||||||
|
|
||||||
tpl_name = 'blocks/profile/b_chats.html'
|
tpl_name = 'blocks/profile/b_chats.html'
|
||||||
|
|
||||||
@@ -99,7 +100,7 @@ def update_chat_ajax2(request):
|
|||||||
receiver = User.objects.get(id=data['receiver'])
|
receiver = User.objects.get(id=data['receiver'])
|
||||||
|
|
||||||
context_Dict.update({'cur_receiver': receiver})
|
context_Dict.update({'cur_receiver': receiver})
|
||||||
|
context_Dict.update(get_user_timezone_Dict(request.user, request=request))
|
||||||
|
|
||||||
if not ticket:
|
if not ticket:
|
||||||
|
|
||||||
@@ -190,6 +191,7 @@ def update_chat_ajax(request):
|
|||||||
receiver = User.objects.get(id=data['receiver'])
|
receiver = User.objects.get(id=data['receiver'])
|
||||||
|
|
||||||
context_Dict.update({'cur_receiver': receiver})
|
context_Dict.update({'cur_receiver': receiver})
|
||||||
|
context_Dict.update(get_user_timezone_Dict(request.user, request=request))
|
||||||
|
|
||||||
if ticket:
|
if ticket:
|
||||||
|
|
||||||
|
|||||||
@@ -9,6 +9,11 @@ class TimezoneMiddleware:
|
|||||||
def __call__(self, request):
|
def __call__(self, request):
|
||||||
tz = request.COOKIES.get("user_tz")
|
tz = request.COOKIES.get("user_tz")
|
||||||
if tz:
|
if tz:
|
||||||
|
if request.user.is_authenticated:
|
||||||
|
if not 'user_timezone' in request.user.user_profile.json_data or request.user.user_profile.json_data['user_timezone'] != tz:
|
||||||
|
request.user.user_profile.json_data['user_timezone'] = tz
|
||||||
|
request.user.user_profile.save(update_fields=['json_data'])
|
||||||
|
|
||||||
msg = f'user={str(request.user.id)} tz={str(tz)}'
|
msg = f'user={str(request.user.id)} tz={str(tz)}'
|
||||||
print(msg)
|
print(msg)
|
||||||
timezone.activate(zoneinfo.ZoneInfo(tz))
|
timezone.activate(zoneinfo.ZoneInfo(tz))
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{% load static %}
|
{% load static %}
|
||||||
|
{% load tz %}
|
||||||
|
|
||||||
{#{% include "widgets/w_file.html" %}#}
|
{#{% include "widgets/w_file.html" %}#}
|
||||||
{% if not messages and ticket %}
|
{% if not messages and ticket %}
|
||||||
@@ -8,7 +8,9 @@
|
|||||||
{% for msg in messages %}
|
{% for msg in messages %}
|
||||||
{% include "widgets/w_message.html" %}
|
{% include "widgets/w_message.html" %}
|
||||||
{% if forloop.first %}
|
{% if forloop.first %}
|
||||||
|
{% timezone user_tz %}
|
||||||
<span style="display: none" class="date_n_time_last_message" data-modifiedDT="{{ msg.modifiedDT|date:"d.m.Y H:i:s:u" }}"></span>
|
<span style="display: none" class="date_n_time_last_message" data-modifiedDT="{{ msg.modifiedDT|date:"d.m.Y H:i:s:u" }}"></span>
|
||||||
|
{% endtimezone %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
{% load static %}
|
{% load static %}
|
||||||
{% load tt_chat %}
|
{% load tt_chat %}
|
||||||
|
{% load tz %}
|
||||||
|
|
||||||
<div style="width: 100%;">
|
<div style="width: 100%;">
|
||||||
<div class="container-message_support_chat {% get_msg_side user ticket msg %}">
|
<div class="container-message_support_chat {% get_msg_side user ticket msg %}">
|
||||||
@@ -20,7 +21,9 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="data_send_message {% get_msg_side user ticket msg %}">
|
<div class="data_send_message {% get_msg_side user ticket msg %}">
|
||||||
|
{% timezone user_tz %}
|
||||||
<span>{% if msg %}{{ msg.modifiedDT }}{% else %}{{ ticket.modifiedDT }}{% endif %}</span>
|
<span>{% if msg %}{{ msg.modifiedDT }}{% else %}{{ ticket.modifiedDT }}{% endif %}</span>
|
||||||
|
{% endtimezone %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -36,7 +36,11 @@
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
<div class="data_send_message {% get_msg_side user ticket msg %}">
|
<div class="data_send_message {% get_msg_side user ticket msg %}">
|
||||||
<span>{% if msg %}{{ msg.modifiedDT|localtime }}{% else %}{{ ticket.modifiedDT|localtime }}{% endif %}</span>
|
{% timezone user_tz %}
|
||||||
|
<span>
|
||||||
|
{% if msg %}{{ msg.modifiedDT|localtime }}{% else %}{{ ticket.modifiedDT|localtime }}{% endif %}
|
||||||
|
</span>
|
||||||
|
{% endtimezone %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,5 +1,8 @@
|
|||||||
{% load static %}
|
{% load static %}
|
||||||
{% load i18n %}
|
{% load i18n %}
|
||||||
|
{% load tz %}
|
||||||
|
|
||||||
|
|
||||||
<div class="container-message-req-sprt" onclick="openTicket({{ ticket.id }})">
|
<div class="container-message-req-sprt" onclick="openTicket({{ ticket.id }})">
|
||||||
<div class="message-sprt-inf">
|
<div class="message-sprt-inf">
|
||||||
<div>
|
<div>
|
||||||
@@ -10,8 +13,9 @@
|
|||||||
{# <img>#}
|
{# <img>#}
|
||||||
<span id="modified_date">
|
<span id="modified_date">
|
||||||
{# 10.02.2023#}
|
{# 10.02.2023#}
|
||||||
|
{% timezone user_tz %}
|
||||||
{{ ticket.modifiedDT|date:"d.m.Y" }}
|
{{ ticket.modifiedDT|date:"d.m.Y" }}
|
||||||
|
{% endtimezone %}
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user