diff --git a/osinaweb/customercore/templates/listing_pages/products.html b/osinaweb/customercore/templates/listing_pages/products.html
index 4d4928d0..b8eb4632 100644
--- a/osinaweb/customercore/templates/listing_pages/products.html
+++ b/osinaweb/customercore/templates/listing_pages/products.html
@@ -48,7 +48,7 @@
-
$89
+
$9
monthly/restaurant
@@ -61,7 +61,7 @@
-
$169
+
$29
monthly/restaurant
diff --git a/osinaweb/customercore/templates/products/osimenu-plans.html b/osinaweb/customercore/templates/products/osimenu-plans.html
index 172baf84..7bee6217 100644
--- a/osinaweb/customercore/templates/products/osimenu-plans.html
+++ b/osinaweb/customercore/templates/products/osimenu-plans.html
@@ -139,7 +139,7 @@
Standard
{% if not active_order_item_standard %}
@@ -255,7 +255,7 @@
Premium
{% if not active_order_item_premium %}
@@ -493,7 +493,7 @@
Standard
{% if not active_order_item_standard %}
@@ -610,7 +610,7 @@
Premium
{% if not active_order_item_premium %}
diff --git a/osinaweb/db.sqlite3 b/osinaweb/db.sqlite3
index 3f1ac264..687413d3 100644
Binary files a/osinaweb/db.sqlite3 and b/osinaweb/db.sqlite3 differ
diff --git a/osinaweb/osinacore/__pycache__/consumers.cpython-310.pyc b/osinaweb/osinacore/__pycache__/consumers.cpython-310.pyc
index 29e95ead..ff564bec 100644
Binary files a/osinaweb/osinacore/__pycache__/consumers.cpython-310.pyc and b/osinaweb/osinacore/__pycache__/consumers.cpython-310.pyc differ
diff --git a/osinaweb/osinacore/consumers.py b/osinaweb/osinacore/consumers.py
index 95228301..d0c0850d 100644
--- a/osinaweb/osinacore/consumers.py
+++ b/osinaweb/osinacore/consumers.py
@@ -10,7 +10,14 @@ import threading
class OnlineUserConsumer(WebsocketConsumer):
def connect(self):
self.user = self.scope['user']
-
+ existing_connection = Connection.objects.filter(user=self.user).last()
+ if existing_connection:
+ self.connection = existing_connection
+ self.connection.online = True
+ self.connection.disconnected = False
+ self.connection.save()
+ else:
+ self.connection = Connection.objects.create(user=self.user, online=True)
async_to_sync(self.channel_layer.group_add)(
'online_users', self.channel_name
@@ -34,10 +41,25 @@ class OnlineUserConsumer(WebsocketConsumer):
self.modify_online_user()
def modify_online_user(self):
-
+ connections = Connection.objects.all()
+ online_connections = connections.filter(online=True)
+ offline_connections = connections.filter(online=False, last_seen__isnull=False).order_by('-last_seen')[:5]
+ sorted_connections = list(online_connections) + list(offline_connections)
+ online_users_ids = [connection.user.id for connection in online_connections]
+ customer_connections = []
+ staff_connections = []
+ for connection in sorted_connections:
+ if hasattr(connection.user, 'customerprofile'):
+ customer_connections.append(connection)
+ elif hasattr(connection.user, 'staffprofile'):
+ staff_connections.append(connection)
+
+ print(staff_connections)
event = {
'type': 'online_user_connection_handler',
-
+ 'staff_connections': staff_connections,
+ 'customer_connections': customer_connections,
+ 'online_users_ids': online_users_ids
}
async_to_sync(self.channel_layer.group_send)(
'online_users', event
@@ -45,13 +67,14 @@ class OnlineUserConsumer(WebsocketConsumer):
def online_user_connection_handler(self, event):
context = {
-
+ 'staff_connections': event['staff_connections'],
+ 'customer_connections': event['customer_connections'],
}
html = render_to_string("details_templates/partials/recently-online.html", context=context)
self.send(text_data=json.dumps({
'event_type': 'online_user_status',
'html': html,
-
+ 'online_users_ids': event.get('online_users_ids', [])
}))