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

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)