Ajout vhc caldav
This commit is contained in:
@@ -25,7 +25,7 @@ class cls_caldav():
|
|||||||
self.day = []
|
self.day = []
|
||||||
self.night = []
|
self.night = []
|
||||||
|
|
||||||
def get_caldav_data(self):
|
def get_caldav_data(self,periode=1):
|
||||||
ctx = ssl.create_default_context()
|
ctx = ssl.create_default_context()
|
||||||
ctx.check_hostname = False
|
ctx.check_hostname = False
|
||||||
ctx.verify_mode = ssl.CERT_NONE
|
ctx.verify_mode = ssl.CERT_NONE
|
||||||
@@ -40,22 +40,28 @@ class cls_caldav():
|
|||||||
tomorow = datetime.now() + timedelta(days=1)
|
tomorow = datetime.now() + timedelta(days=1)
|
||||||
today = (datetime.now().year,datetime.now().month,datetime.now().day)
|
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 events:
|
||||||
|
|
||||||
for event in recurring_ical_events.of(Calendar.from_ical(self.data)).at(today):
|
|
||||||
item = _caldav_item()
|
item = _caldav_item()
|
||||||
item.name = event["SUMMARY"]
|
item.name = event["SUMMARY"]
|
||||||
if "/" in item.name:
|
if "-" in item.name:
|
||||||
arr = item.name.split("/")
|
arr = item.name.split("-")
|
||||||
item.key = arr[0]
|
item.key = arr[0]
|
||||||
item.name = arr[1]
|
item.name = arr[1]
|
||||||
|
|
||||||
item.desc = event["DESCRIPTION"]
|
if "DESCRIPTION" in event.keys():
|
||||||
|
item.desc = event["DESCRIPTION"]
|
||||||
if "*done*" in item.desc:
|
if "*done*" in item.desc:
|
||||||
item.done = True
|
item.done = True
|
||||||
item.dtstart = event["DTSTART"].dt.strftime("%d.%m.%Y %H:%M")
|
item.dtstart = event["DTSTART"].dt.strftime("%d.%m.%Y %H:%M")
|
||||||
item.dtend = event["DTEND"].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)
|
self.items.append(item)
|
||||||
|
|
||||||
|
|
||||||
@@ -80,13 +86,20 @@ class _caldav_item():
|
|||||||
name = ""
|
name = ""
|
||||||
desc = ""
|
desc = ""
|
||||||
dtstart = None
|
dtstart = None
|
||||||
|
str_start_date = ""
|
||||||
|
str_start_time = ""
|
||||||
dtend = None
|
dtend = None
|
||||||
|
str_end_date = ""
|
||||||
|
str_end_time = ""
|
||||||
dtstamp = None
|
dtstamp = None
|
||||||
done = False
|
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")
|
|
||||||
|
|
||||||
|
18
caldav/templates/vhc/vhc_view.html
Normal file
18
caldav/templates/vhc/vhc_view.html
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
{% if latest_task_list %}
|
||||||
|
<table>
|
||||||
|
{% for task in latest_task_list %}
|
||||||
|
<tr>
|
||||||
|
<td style="font-weight: bold;" width="75" >
|
||||||
|
{{task.key}}
|
||||||
|
|
||||||
|
</td>
|
||||||
|
<td style="{% if task.done %}text-decoration:line-through{% endif %}">
|
||||||
|
{{task.str_start_time}} - {{task.str_end_time}}<br>
|
||||||
|
{{ task.name }}
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
{% endfor %}
|
||||||
|
</table>
|
||||||
|
{% else %}
|
||||||
|
<p>No task are available.</p>
|
||||||
|
{% endif %}
|
@@ -7,6 +7,7 @@ from . import views
|
|||||||
app_name = "caldav"
|
app_name = "caldav"
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
path('task', views.view_task_caldav, name='view_task_caldav'),
|
path('task', views.view_task_caldav, name='view_task_caldav'),
|
||||||
|
path('vhc', views.view_vhc_caldav, name='view_vhc_caldav'),
|
||||||
|
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@@ -10,7 +10,15 @@ from caldav.models import *
|
|||||||
|
|
||||||
@xframe_options_exempt
|
@xframe_options_exempt
|
||||||
def view_task_caldav(request):
|
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()
|
o_caldav.get_caldav_data()
|
||||||
template = loader.get_template("task/task.html")
|
template = loader.get_template("task/task.html")
|
||||||
context = {'latest_task_list':o_caldav.day, 'night_task_list': o_caldav.night}
|
context = {'latest_task_list':o_caldav.day, 'night_task_list': o_caldav.night}
|
||||||
return HttpResponse(template.render(context,request))
|
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))
|
Reference in New Issue
Block a user