ajout de system impression team_pdf
This commit is contained in:
@@ -13,6 +13,7 @@ import ssl
|
||||
from icalendar import Calendar, Event
|
||||
import recurring_ical_events
|
||||
import caldav
|
||||
from mycaldav.settings import *
|
||||
|
||||
# Create your models here.
|
||||
class cls_caldav():
|
||||
@@ -35,7 +36,13 @@ class cls_caldav():
|
||||
def sort_array(self):
|
||||
self.items.sort(key=lambda x: x.dtstamp, reverse=False)
|
||||
|
||||
def get_caldav_data(self,periode=1,calendar=None):
|
||||
def sort_array_by_key(self,reverse=False):
|
||||
self.items.sort(key=lambda x: x.key, reverse=reverse)
|
||||
self.day.sort(key=lambda x: x.key, reverse=reverse)
|
||||
self.night.sort(key=lambda x: x.key, reverse=reverse)
|
||||
|
||||
|
||||
def get_caldav_data(self,periode=1,calendar=None, date=None):
|
||||
ctx = ssl.create_default_context()
|
||||
ctx.check_hostname = False
|
||||
ctx.verify_mode = ssl.CERT_NONE
|
||||
@@ -46,15 +53,24 @@ class cls_caldav():
|
||||
self.data = o_url.read()
|
||||
o_url.close()
|
||||
|
||||
now = f"{datetime.now().day}.{datetime.now().month}.{datetime.now().year}"
|
||||
tomorow = datetime.now() + timedelta(days=1)
|
||||
today = (datetime.now().year,datetime.now().month,datetime.now().day)
|
||||
if date is None:
|
||||
date = datetime.now()
|
||||
|
||||
today = (date.year,date.month,date.day)
|
||||
|
||||
|
||||
events = None
|
||||
if periode == 1:
|
||||
events = recurring_ical_events.of(Calendar.from_ical(self.data)).at(today)
|
||||
elif periode == 2:
|
||||
tomorow = date + timedelta(days=1)
|
||||
events = recurring_ical_events.of(Calendar.from_ical(self.data)).between(today,tomorow)
|
||||
elif periode == 7:
|
||||
endweek = date + timedelta(days=6)
|
||||
events = recurring_ical_events.of(Calendar.from_ical(self.data)).between(today,endweek)
|
||||
|
||||
self.parse_data(events)
|
||||
def parse_data(self, events):
|
||||
|
||||
for event in events:
|
||||
item = _caldav_item()
|
||||
@@ -63,7 +79,20 @@ class cls_caldav():
|
||||
if "-" in item.name:
|
||||
arr = item.name.split("-")
|
||||
item.key = arr[0]
|
||||
if "$" in item.key:
|
||||
item.team_transfert = True
|
||||
item.key = item.key.replace("$","")
|
||||
item.name = arr[1]
|
||||
if "&" in item.name:
|
||||
arr = item.name.split("&")
|
||||
item.team_1 = arr[0]
|
||||
if "#" in item.team_1:
|
||||
item.team_1_chef = True
|
||||
item.team_1 = item.team_1.replace("#","")
|
||||
item.team_2 = arr[1]
|
||||
if "#" in item.team_2:
|
||||
item.team_2_chef = True
|
||||
item.team_2 = item.team_2.replace("#", "")
|
||||
|
||||
if "DESCRIPTION" in event.keys():
|
||||
item.desc = event["DESCRIPTION"]
|
||||
@@ -90,9 +119,9 @@ class cls_caldav():
|
||||
start = datetime.combine(start, datetime.min.time())
|
||||
print("convert Date to datetime")
|
||||
print(start)
|
||||
if start < datetime.combine(datetime.today(), time(19,0)):
|
||||
if int(start.strftime("%H")) < 19:
|
||||
self.day.append(item)
|
||||
if start >= datetime.combine(datetime.today(), time(19,0)):
|
||||
if int(start.strftime("%H")) >= 19:
|
||||
self.night.append(item)
|
||||
|
||||
|
||||
@@ -107,7 +136,7 @@ class cls_caldav_client():
|
||||
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"
|
||||
caldav_agenda_config_url = caldav_cfg["task_config"]
|
||||
|
||||
|
||||
|
||||
@@ -119,8 +148,9 @@ class cls_caldav_client():
|
||||
print(f"name: {cal.name}({cal.url})")
|
||||
|
||||
self.a_task = self.data.calendar(name="Tâche")
|
||||
self.a_team = self.data.calendar(name="Équipage_test")
|
||||
|
||||
|
||||
def init_task_management(self):
|
||||
if datetime.today().day == 1 and datetime.today().hour == 1:
|
||||
try:
|
||||
with open(os.path.join("mycaldav", "last_sync_config.bin"), "rb") as file:
|
||||
@@ -133,19 +163,12 @@ class cls_caldav_client():
|
||||
if array["year"] == datetime.now().year:
|
||||
print("pas de copy, sync déjà fait")
|
||||
else:
|
||||
self.get_caldav_data(self.a_task)
|
||||
self.copy_caldav_data(self.a_task)
|
||||
else:
|
||||
self.get_caldav_data(self.a_task)
|
||||
self.copy_caldav_data(self.a_task)
|
||||
self.clear_all_events_by_Date(self.a_task)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
def add_event_in_calandar(self, calandar):
|
||||
my_event = calandar.save_event(
|
||||
dtstart=datetime(2022, 6, 30, 12),
|
||||
@@ -154,7 +177,7 @@ class cls_caldav_client():
|
||||
|
||||
)
|
||||
|
||||
def get_caldav_data(self, calandar=None):
|
||||
def copy_caldav_data(self, calandar=None):
|
||||
ctx = ssl.create_default_context()
|
||||
ctx.check_hostname = False
|
||||
ctx.verify_mode = ssl.CERT_NONE
|
||||
@@ -217,6 +240,11 @@ class _caldav_item():
|
||||
done = False
|
||||
href = ""
|
||||
uiid = ""
|
||||
team_1 = ""
|
||||
team_2 = ""
|
||||
team_1_chef = False
|
||||
team_2_chef = False
|
||||
team_transfert = False
|
||||
|
||||
def format_str_date(self):
|
||||
self.str_start_date = datetime.strptime(self.dtstart,"%d.%m.%Y %H:%M").strftime("%d.%m")
|
||||
|
Reference in New Issue
Block a user