débug op view

This commit is contained in:
Ambulance Clerc
2022-07-29 17:47:18 +02:00
parent 895951b063
commit 52dbe120c8
41 changed files with 428 additions and 73 deletions

Binary file not shown.

View File

@@ -1,5 +1,10 @@
from datetime import datetime, timedelta, time
import datetime as Datetime
import pickle
import os
from dateutil.relativedelta import relativedelta
from django.db import models
import urllib.request
@@ -30,7 +35,7 @@ class cls_caldav():
def sort_array(self):
self.items.sort(key=lambda x: x.dtstamp, reverse=False)
def get_caldav_data(self,periode=1):
def get_caldav_data(self,periode=1,calendar=None):
ctx = ssl.create_default_context()
ctx.check_hostname = False
ctx.verify_mode = ssl.CERT_NONE
@@ -96,8 +101,13 @@ class cls_caldav():
class cls_caldav_client():
caldav_url = "https://sync.infomaniak.com"
caldav_user = 'SC01066'
caldav_password = "mc144*1870CLERC"
#caldav_user = 'SC01066' #ambulanciers@ambulance-clerc.ch
#caldav_password = "mc144*1870CLERC"
caldav_user = 'AA01593' #agenda@ambulance-clerc.ch
caldav_password = "Agendamc144"
caldav_agenda_config_url = "https://sync.infomaniak.com/calendars/AA01593/29d5c8d0-9b86-4d45-bc2b-13585a2e78f8?export"
@@ -105,11 +115,35 @@ class cls_caldav_client():
self.client = caldav.DAVClient(url=self.caldav_url, username=self.caldav_user, password=self.caldav_password)
self.data = self.client.principal()
self.m38 = self.data.calendar(name="M38")
self.m37 = self.data.calendar(name="M37")
self.clear_all_events_by_Date(self.m38)
self.add_event_in_calandar(self.m38)
self.add_event_in_calandar(self.m37)
for cal in self.data.calendars():
print(f"name: {cal.name}({cal.url})")
self.a_task = self.data.calendar(name="Tâche")
if datetime.today().day == 29:
try:
with open(os.path.join("mycaldav", "last_sync_config.bin"), "rb") as file:
array = pickle.load(file)
except:
array = {"year": 0, "month": 0}
print("Erreur lecture fichier débiteur")
if array["month"] == datetime.now().month:
if array["year"] == datetime.now().year:
print("pas de copy, sync déjà fait")
else:
self.get_caldav_data(self.a_task)
else:
self.get_caldav_data(self.a_task)
self.clear_all_events_by_Date(self.a_task)
def add_event_in_calandar(self, calandar):
@@ -117,9 +151,53 @@ class cls_caldav_client():
dtstart=datetime(2022, 6, 30, 12),
dtend=datetime(2022, 6, 30, 13),
summary="Do the needful",
)
def get_caldav_data(self, calandar=None):
ctx = ssl.create_default_context()
ctx.check_hostname = False
ctx.verify_mode = ssl.CERT_NONE
o_url = urllib.request.urlopen(self.caldav_agenda_config_url, context=ctx)
data = o_url.read()
o_url.close()
now = f"01.{datetime.now().month}.{datetime.now().year}"
next_month = datetime.strptime(f"1.{datetime.today().month}.{datetime.today().year}","%d.%m.%Y") + relativedelta(months=1) - relativedelta(days=1)
next_month = (next_month.year, next_month.month, next_month.day)
today = (datetime.now().year, datetime.now().month, 1)
print(f"today:{today}")
print(f"next:{next_month}")
events = None
events = recurring_ical_events.of(Calendar.from_ical(data)).between(today, next_month)
cur_events = calandar.date_search(start=datetime(today[0],today[1],today[2]), end=datetime(next_month[0],next_month[1],next_month[2]), expand=True)
for event in events:
print(f"copy de l'événement: {event['SUMMARY']}")
my_event = calandar.save_event(
dtstart=event["DTSTART"].dt,
dtend=event["DTEND"].dt,
summary= event["SUMMARY"],
description=event["DESCRIPTION"],
)
with open(os.path.join("mycaldav", "last_sync_config.bin"), "wb") as file:
array = {"year":datetime.now().year, "month":datetime.now().month}
pickle.dump(array, file)
def clear_all_events_by_Date(self, calandar):
events = calandar.date_search(start=datetime(2022, 6, 30), end=datetime(2022, 7, 1), expand=True)
events = calandar.date_search(start=datetime(2000, 1, 1), end=datetime.now() - relativedelta(years=1), expand=True)
for e in events:
e.delete()
print(events)

View File

@@ -2,7 +2,7 @@
<table style="font-family: 'Source Sans Pro', sans-serif; font-size: 12pt;">
<td style="font-weight: bold;padding-bottom: 5px; text-align: center;" colspan="2">Jour</td>
{% for task in latest_task_list %}
<tr><td style="font-weight: bold;vertical-align: top;" width="75" >{{task.key}}</td>&nbsp;&nbsp;&nbsp;&nbsp;<td style="{% if task.done %}text-decoration:line-through{% endif %}">{{ task.name }}<br>{{task.desc}}</td></tr>
<tr><td style="font-weight: bold;vertical-align: top;" width="75" >{{task.key}}</td>&nbsp;&nbsp;&nbsp;&nbsp;<td style="{% if task.done %}text-decoration:line-through{% endif %}">{{ task.name }}<br>{{task.desc}}{{task.dtstart}}</td></tr>
{% endfor %}
<tr><td>&nbsp;</td></tr>
<tr>

View File

@@ -16,6 +16,7 @@ def view_task_caldav(request):
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}
myClient = cls_caldav_client()
return HttpResponse(template.render(context,request))
@xframe_options_exempt
@@ -55,4 +56,5 @@ def view_dayly_caldav(request):
myClient = cls_caldav_client()
return HttpResponse(ret)