débug op view
This commit is contained in:
BIN
mycaldav/last_sync_config.bin
Normal file
BIN
mycaldav/last_sync_config.bin
Normal file
Binary file not shown.
@@ -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)
|
||||
|
@@ -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> <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> <td style="{% if task.done %}text-decoration:line-through{% endif %}">{{ task.name }}<br>{{task.desc}}{{task.dtstart}}</td></tr>
|
||||
{% endfor %}
|
||||
<tr><td> </td></tr>
|
||||
<tr>
|
||||
|
@@ -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)
|
||||
|
Reference in New Issue
Block a user