From 1a2bf4d87479e0a71f89ace145b8e84137a3841e Mon Sep 17 00:00:00 2001 From: Ambulance Clerc Date: Wed, 22 Jun 2022 07:56:14 +0200 Subject: [PATCH] Ajout vhc caldav --- caldav/models.py | 31 +++++++++++++++++++++--------- caldav/templates/vhc/vhc_view.html | 18 +++++++++++++++++ caldav/urls.py | 1 + caldav/views.py | 10 +++++++++- 4 files changed, 50 insertions(+), 10 deletions(-) create mode 100644 caldav/templates/vhc/vhc_view.html diff --git a/caldav/models.py b/caldav/models.py index b241f67..27dd009 100644 --- a/caldav/models.py +++ b/caldav/models.py @@ -25,7 +25,7 @@ class cls_caldav(): self.day = [] self.night = [] - def get_caldav_data(self): + def get_caldav_data(self,periode=1): ctx = ssl.create_default_context() ctx.check_hostname = False ctx.verify_mode = ssl.CERT_NONE @@ -40,22 +40,28 @@ class cls_caldav(): tomorow = datetime.now() + timedelta(days=1) today = (datetime.now().year,datetime.now().month,datetime.now().day) + events = None + if periode == 1: + events = recurring_ical_events.of(Calendar.from_ical(self.data)).at(today) + elif periode == 2: + events = recurring_ical_events.of(Calendar.from_ical(self.data)).between(today,tomorow) - - - for event in recurring_ical_events.of(Calendar.from_ical(self.data)).at(today): + for event in events: item = _caldav_item() item.name = event["SUMMARY"] - if "/" in item.name: - arr = item.name.split("/") + if "-" in item.name: + arr = item.name.split("-") item.key = arr[0] item.name = arr[1] - item.desc = event["DESCRIPTION"] + if "DESCRIPTION" in event.keys(): + item.desc = event["DESCRIPTION"] if "*done*" in item.desc: item.done = True item.dtstart = event["DTSTART"].dt.strftime("%d.%m.%Y %H:%M") item.dtend = event["DTEND"].dt.strftime("%d.%m.%Y %H:%M") + + item.format_str_date() self.items.append(item) @@ -80,13 +86,20 @@ class _caldav_item(): name = "" desc = "" dtstart = None + str_start_date = "" + str_start_time = "" dtend = None + str_end_date = "" + str_end_time = "" dtstamp = None done = False + def format_str_date(self): + self.str_start_date = datetime.strptime(self.dtstart,"%d.%m.%Y %H:%M").strftime("%d.%m.%Y") + self.str_start_time = datetime.strptime(self.dtstart, "%d.%m.%Y %H:%M").strftime("%H:%M") + self.str_end_date = datetime.strptime(self.dtend,"%d.%m.%Y %H:%M").strftime("%d.%m.%Y") + self.str_end_time = datetime.strptime(self.dtend, "%d.%m.%Y %H:%M").strftime("%H:%M") -o_caldav = cls_caldav(url="https://sync.infomaniak.com/calendars/AA01593/a4835de4-b3cd-46ca-8f48-3dacd3a2b46e?export") - diff --git a/caldav/templates/vhc/vhc_view.html b/caldav/templates/vhc/vhc_view.html new file mode 100644 index 0000000..81fb4be --- /dev/null +++ b/caldav/templates/vhc/vhc_view.html @@ -0,0 +1,18 @@ +{% if latest_task_list %} + + {% for task in latest_task_list %} + +      + + + {% endfor %} +
+ {{task.key}} + + + {{task.str_start_time}} - {{task.str_end_time}}
+ {{ task.name }} +
+{% else %} +

No task are available.

+{% endif %} \ No newline at end of file diff --git a/caldav/urls.py b/caldav/urls.py index 9b43d93..b3f84dd 100644 --- a/caldav/urls.py +++ b/caldav/urls.py @@ -7,6 +7,7 @@ from . import views app_name = "caldav" urlpatterns = [ path('task', views.view_task_caldav, name='view_task_caldav'), + path('vhc', views.view_vhc_caldav, name='view_vhc_caldav'), ] diff --git a/caldav/views.py b/caldav/views.py index 7c82f84..a35ea02 100644 --- a/caldav/views.py +++ b/caldav/views.py @@ -10,7 +10,15 @@ from caldav.models import * @xframe_options_exempt def view_task_caldav(request): + o_caldav = cls_caldav(url="https://sync.infomaniak.com/calendars/AA01593/a4835de4-b3cd-46ca-8f48-3dacd3a2b46e?export") o_caldav.get_caldav_data() template = loader.get_template("task/task.html") context = {'latest_task_list':o_caldav.day, 'night_task_list': o_caldav.night} - return HttpResponse(template.render(context,request)) \ No newline at end of file + return HttpResponse(template.render(context,request)) + +def view_vhc_caldav(request): + o_caldav = cls_caldav(url="https://sync.infomaniak.com/calendars/AA01593/4f7b4591-a4c4-4443-9f78-01df068f58b8?export") + o_caldav.get_caldav_data() + template = loader.get_template("vhc/vhc_view.html") + context = {'latest_task_list': o_caldav.items} + return HttpResponse(template.render(context, request)) \ No newline at end of file