Add page
This commit is contained in:
parent
ae59910bb7
commit
7f65835db7
@ -1,7 +1,7 @@
|
|||||||
import json
|
import json
|
||||||
from channels.generic.websocket import AsyncWebsocketConsumer
|
from channels.generic.websocket import AsyncWebsocketConsumer
|
||||||
from asgiref.sync import sync_to_async
|
from asgiref.sync import sync_to_async
|
||||||
from .views import page_talks
|
from .views import page_talks, page_about
|
||||||
|
|
||||||
class WebsiteConsumer(AsyncWebsocketConsumer):
|
class WebsiteConsumer(AsyncWebsocketConsumer):
|
||||||
|
|
||||||
@ -20,7 +20,7 @@ class WebsiteConsumer(AsyncWebsocketConsumer):
|
|||||||
await self.channel_layer.group_send(
|
await self.channel_layer.group_send(
|
||||||
self.room_group_name,
|
self.room_group_name,
|
||||||
{
|
{
|
||||||
"type": "page_talks"
|
"type": "send_page_talks"
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -30,12 +30,41 @@ class WebsiteConsumer(AsyncWebsocketConsumer):
|
|||||||
await self.channel_layer.group_discard(self.room_group_name, self.channel_name)
|
await self.channel_layer.group_discard(self.room_group_name, self.channel_name)
|
||||||
|
|
||||||
async def receive(self, text_data):
|
async def receive(self, text_data):
|
||||||
pass
|
# Load data
|
||||||
|
data = json.loads(text_data)
|
||||||
|
# Change page
|
||||||
|
if data["action"] == "page":
|
||||||
|
# Talks
|
||||||
|
if data["value"] == "talks":
|
||||||
|
await self.channel_layer.group_send(
|
||||||
|
self.room_group_name,
|
||||||
|
{
|
||||||
|
"type": "send_page_talks"
|
||||||
|
}
|
||||||
|
)
|
||||||
|
# About
|
||||||
|
if data["value"] == "about":
|
||||||
|
await self.channel_layer.group_send(
|
||||||
|
self.room_group_name,
|
||||||
|
{
|
||||||
|
"type": "send_page_about"
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
# Pages
|
||||||
|
|
||||||
def _get_talks(self):
|
def _get_talks(self):
|
||||||
return page_talks()
|
return page_talks()
|
||||||
|
|
||||||
async def page_talks(self, event):
|
async def send_page_talks(self, event):
|
||||||
''' Send Home page '''
|
''' Send Home page '''
|
||||||
html = await sync_to_async(self._get_talks)()
|
html = await sync_to_async(self._get_talks)()
|
||||||
|
await self.send(text_data=html)
|
||||||
|
|
||||||
|
def _get_about(self):
|
||||||
|
return page_about()
|
||||||
|
|
||||||
|
async def send_page_about(self, event):
|
||||||
|
''' Send About page '''
|
||||||
|
html = await sync_to_async(self._get_about)()
|
||||||
await self.send(text_data=html)
|
await self.send(text_data=html)
|
@ -24,9 +24,23 @@
|
|||||||
<li><strong>HTML over WebSockets with htmx</strong></li>
|
<li><strong>HTML over WebSockets with htmx</strong></li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="#">Events</a></li>
|
<li>
|
||||||
|
{# To page Talks #}
|
||||||
|
<form hx-ws="send">
|
||||||
|
<input type="hidden" name="action" value="page">
|
||||||
|
<input type="hidden" name="value" value="talks">
|
||||||
|
<a href="#" hx-ws="send" hx-trigger="click">Talks</a>
|
||||||
|
</form>
|
||||||
|
</li>
|
||||||
<li><a href="#">Profiles</a></li>
|
<li><a href="#">Profiles</a></li>
|
||||||
<li><a href="#" hx-ws="send" hx-trigger="click">About</a></li>
|
<li>
|
||||||
|
{# To page About #}
|
||||||
|
<form hx-ws="send">
|
||||||
|
<input type="hidden" name="action" value="page">
|
||||||
|
<input type="hidden" name="value" value="about">
|
||||||
|
<a href="#" hx-ws="send" hx-trigger="click">About</a>
|
||||||
|
</form>
|
||||||
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</nav>
|
</nav>
|
||||||
</header>
|
</header>
|
||||||
|
@ -11,7 +11,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</header>
|
</header>
|
||||||
<p>
|
<p>
|
||||||
{{ talk.content|truncatechars:100 }}
|
{{ talk.content|truncatechars:150 }}
|
||||||
</p>
|
</p>
|
||||||
<footer>Author {{ talk.author.full_name }} - {{ talk.category.name }}</footer>
|
<footer>Author {{ talk.author.full_name }} - {{ talk.category.name }}</footer>
|
||||||
</article>
|
</article>
|
||||||
|
Loading…
Reference in New Issue
Block a user