178 lines
6.3 KiB
Python
178 lines
6.3 KiB
Python
from django.http import HttpResponse
|
|
from django.http import FileResponse
|
|
from django.shortcuts import render
|
|
from django.views import generic
|
|
from django.template import loader
|
|
from django.views.decorators.clickjacking import xframe_options_exempt
|
|
from django.contrib.auth.decorators import login_required
|
|
from django.db.models import Q
|
|
|
|
|
|
import caldav as cal
|
|
|
|
from datetime import datetime, timedelta, time
|
|
|
|
# Create your views here.
|
|
|
|
from mycaldav.models import *
|
|
from mycaldav.settings import *
|
|
from mycaldav.export_team_pdf import *
|
|
from comm_op.models import comm_opMessage
|
|
|
|
class caldav_item:
|
|
def __init__(self):
|
|
self.uuid = ""
|
|
self.name = ""
|
|
self.desc = ""
|
|
self.key = ""
|
|
self.done = False
|
|
self.href = "#"
|
|
self.str_start_date = ""
|
|
self.str_end_date = ""
|
|
|
|
|
|
|
|
|
|
@xframe_options_exempt
|
|
def view_task_caldav(request):
|
|
o_caldav = cls_caldav(url=caldav_cfg["task"])
|
|
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}
|
|
if (datetime.today().day == 1) or 2==1:
|
|
myClient = cls_caldav_client()
|
|
myClient.init_task_management()
|
|
return HttpResponse(template.render(context,request))
|
|
|
|
@xframe_options_exempt
|
|
def view_task_edit_caldav(request, uuid):
|
|
print(uuid)
|
|
myClient = cls_caldav_client()
|
|
myClient.mark_as_done_task(calandar=myClient.a_task,uuid=uuid)
|
|
return view_task_caldav(request)
|
|
|
|
def view_op_edit_caldav(request, uuid):
|
|
print(uuid)
|
|
object = comm_opMessage.objects.get(pk=uuid)
|
|
object.bDone = True
|
|
object.dtEnd = datetime.today()
|
|
object.save()
|
|
|
|
return view_op_caldav(request)
|
|
|
|
def view_vhc_edit_caldav(request, uuid):
|
|
print(uuid)
|
|
myClient = cls_caldav_client()
|
|
myClient.mark_as_done_task(calandar=myClient.a_vhc,uuid=uuid)
|
|
return view_vhc_caldav(request)
|
|
|
|
@xframe_options_exempt
|
|
def view_vhc_caldav(request):
|
|
o_caldav = cls_caldav(url=caldav_cfg["vhc"])
|
|
o_caldav.get_caldav_data(periode=2)
|
|
template = loader.get_template("vhc/vhc_view.html")
|
|
context = {'latest_task_list': o_caldav.items}
|
|
return HttpResponse(template.render(context, request))
|
|
|
|
@xframe_options_exempt
|
|
def view_rh_caldav(request):
|
|
o_caldav = cls_caldav(url=caldav_cfg["rh"])
|
|
o_caldav.get_caldav_data(periode=2)
|
|
template = loader.get_template("rh/rh_view.html")
|
|
context = {'latest_task_list': o_caldav.items[::-1], 'today': datetime.today().strftime('%d.%m')}
|
|
return HttpResponse(template.render(context, request))
|
|
|
|
@xframe_options_exempt
|
|
def view_road_caldav(request):
|
|
o_caldav = cls_caldav(url=caldav_cfg["road"])
|
|
o_caldav.get_caldav_data(periode=2)
|
|
template = loader.get_template("road/road_view.html")
|
|
context = {'latest_task_list': o_caldav.items[::-1]}
|
|
return HttpResponse(template.render(context, request))
|
|
@xframe_options_exempt
|
|
def view_op_caldav(request):
|
|
old_items = comm_opMessage.objects.filter(bDone=False, dtEnd__lte=datetime.today() - timedelta(days=1))
|
|
for old_item in old_items:
|
|
old_item.bDone = True
|
|
old_item.save()
|
|
|
|
|
|
o_items = comm_opMessage.objects.filter(Q(dtStart__lte= datetime.today() + timedelta(days=1)) & ( Q(dtEnd__gte=datetime.today()) | Q(dtEnd__isnull=True)))
|
|
all_items = []
|
|
for item in o_items:
|
|
temp_item = caldav_item()
|
|
temp_item.uuid = item.uuid
|
|
temp_item.name = item.sTitle
|
|
temp_item.desc = item.sDesc
|
|
temp_item.key = item.sKey
|
|
temp_item.done = item.bDone
|
|
temp_item.str_start_date = str(item.dtStart.day) + "." + str(item.dtStart.month)
|
|
if item.dtEnd != None:
|
|
temp_item.str_end_date = str(item.dtEnd.day) + "." + str(item.dtEnd.month)
|
|
else:
|
|
temp_item.str_end_date = None
|
|
all_items.append(temp_item)
|
|
|
|
template = loader.get_template("op/op_view.html")
|
|
context = {'latest_task_list': all_items}
|
|
return HttpResponse(template.render(context, request))
|
|
|
|
@xframe_options_exempt
|
|
def view_team_caldav(request):
|
|
#Change timezone
|
|
myclient = cls_caldav_client()
|
|
#myclient.reformat_all_events(myclient.a_team)
|
|
#myclient.change_utc_to_zurich_all_events(myclient.a_team)
|
|
#myclient.reformat_all_events(myclient.a_task_config)
|
|
#myclient.change_utc_to_zurich_all_events(myclient.a_task)
|
|
|
|
o_caldav = cls_caldav(url=caldav_cfg["team"])
|
|
o_caldav.get_caldav_data(periode=3)
|
|
template = loader.get_template("team/team_view.html")
|
|
o_caldav.sort_array_by_key(True)
|
|
|
|
context = {'latest_task_list': o_caldav.day, 'night_task_list': o_caldav.night, 'today': datetime.today().strftime('%d.%m'),'yesterday': (datetime.today() + timedelta(days=-1)).strftime('%d.%m'),'tomorow': (datetime.today() + timedelta(days=+1)).strftime('%d.%m')}
|
|
return HttpResponse(template.render(context, request))
|
|
|
|
@xframe_options_exempt
|
|
def view_manif_caldav(request):
|
|
o_caldav = cls_caldav(url=caldav_cfg["manif"])
|
|
o_caldav.get_caldav_data(periode=1)
|
|
template = loader.get_template("manif/manif_view.html")
|
|
o_caldav.sort_array_by_key(True)
|
|
context = {'latest_task_list': o_caldav.items, 'night_task_list': o_caldav.night, 'today': datetime.today().strftime('%d.%m')}
|
|
return HttpResponse(template.render(context, request))
|
|
|
|
@xframe_options_exempt
|
|
def view_team_pdf_caldav(request):
|
|
o_caldav = cls_caldav(url=caldav_cfg["team"])
|
|
if not "dt" in request.GET.keys():
|
|
start = datetime.today()
|
|
else:
|
|
start = datetime.strptime(request.GET['dt'], "%d.%m.%Y")
|
|
|
|
myClient = cls_caldav_client()
|
|
render_pdf(o_caldav, caldavClient=myClient, date=start)
|
|
return FileResponse(open('mycaldav/export.pdf', 'rb'), as_attachment=False, content_type='application/pdf')
|
|
|
|
|
|
|
|
|
|
@xframe_options_exempt
|
|
@login_required
|
|
def view_reskreen(request):
|
|
template = loader.get_template("reskreen.html")
|
|
#context = {'latest_task_list': o_caldav.day, 'night_task_list': o_caldav.night, 'today': datetime.today().strftime('%d.%m')}
|
|
context = {}
|
|
return HttpResponse(template.render(context, request))
|
|
|
|
from django_autologin.templatetags.django_autologin import automatic_login_token
|
|
@login_required
|
|
def view_generate_token(request):
|
|
current_user = request.user
|
|
auto_login = automatic_login_token(current_user)
|
|
print(f"{current_user.username} autologin=> {auto_login}")
|
|
return HttpResponse(f"{current_user.username}autologin=> {auto_login}")
|
|
|
|
|