Time tracking you can host anywhere, built on Django. Full export support in multiple formats and easily extensible.
djangodockerhandcodedpythonself-hostedtime-trackingtimetracker
1import json
2
3from channels.generic.websocket import AsyncWebsocketConsumer
4
5
6class UpdateConsumer(AsyncWebsocketConsumer):
7 """
8 Goes with our core signal that, on model update, sends a message to all
9 channels in the group to sync the UI.
10 """
11
12 async def connect(self):
13 await self.accept()
14 await self.channel_layer.group_add("sync_clients", self.channel_name)
15
16 async def disconnect(self, close_code):
17 await self.channel_layer.group_discard("sync_clients", self.channel_name)
18
19 async def sync_clients_save(self, event):
20 await self.send(json.dumps({"model": event["model"]}))
21
22 async def sync_clients_delete(self, event):
23 await self.send(json.dumps({"model": event["model"]}))