You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

155 lines
8.6 KiB

from django.shortcuts import render, redirect
from django.contrib.auth.decorators import login_required
import datetime
from . import models as MainModel
def actualMonday():
today = datetime.date.today()
last_monday = today - datetime.timedelta(days=today.weekday())
return last_monday
def FutureyDate(date, FutureWeeks):
date = date + datetime.timedelta(weeks=FutureWeeks)
return date
def PastDate(date, FutureWeeks):
date = date - datetime.timedelta(weeks=FutureWeeks)
return date
def separate_string(input_string):
separated_string = ""
index = 1
for i in input_string:
if index == 2:
separated_string += i + "."
index = 0
else:
separated_string += i
index += 1
return separated_string[:8]
@login_required
def index(request):
error = False
if request.GET.get("date"):
actual = False
actualdate = actualMonday()
get_Date = separate_string(request.GET.get("date"))
url_date = datetime.datetime.strptime(get_Date, "%d.%m.%y")
if url_date.date() <= actualdate or url_date.weekday() != 0:
url_date = actualdate
actual = True
error = True
elif url_date.date() == actualdate:
actual = True
else:
url_date = actualMonday()
actual = True
strDate = url_date.strftime("%d.%m.%y")
# AB HIER WIRD DAS SPEICHERN BEHANDELT
# PRÜFEN OB DAS FORMULAR GESENDET WURDE UND AUCH DER BUTTON VERWENDET WURDE
if request.method == "POST":
if 'formsend' in request.POST:
# ÜBERPRÜFEN OB DIE "WEEK" SCHON EINEN EINTRAG HAT - SONST ANLEGEN
MainModel.week.objects.create(date_of_monday=strDate) if MainModel.week.objects.filter(date_of_monday=strDate).count() < 1 else ...
# FUNKTION ZUM VERGLEICH DER BEIDEN DATENSÄTZE
def check_is_same(a, b):
return True if a == b else False
# Abfrage der Datenbanken um Informationen abzugleichen
gruppen_data = MainModel.group.objects.all()
persons = MainModel.contributors.objects.all()
steward_data = MainModel.steward.objects.get(week__date_of_monday=strDate) if MainModel.steward.objects.filter(week__date_of_monday=strDate).count() > 0 else None
regie_data = MainModel.regie.objects.get(week__date_of_monday=strDate) if MainModel.regie.objects.filter(week__date_of_monday=strDate).count() > 0 else None
info_data = MainModel.info.objects.get(week__date_of_monday=strDate) if MainModel.info.objects.filter(week__date_of_monday=strDate).count() > 0 else None
service_data = MainModel.service.objects.get(week__date_of_monday=strDate) if MainModel.service.objects.filter(week__date_of_monday=strDate).count() > 0 else None
# Abfragen der POST-Daten
post_info = request.POST.getlist("info")
post_service_date = request.POST.getlist("smd")
post_service_time = request.POST.getlist("smt")
post_service_type = request.POST.getlist("smm")
post_service_speaker = request.POST.getlist("sms")
post_steward = request.POST.getlist("ods")
post_regie = request.POST.getlist("regie")
# INFOS
if info_data == None:
info_data = MainModel.info.objects.create(
week = MainModel.week.objects.get(date_of_monday=strDate),
gast = gruppen_data.get(id=post_info[0]) if post_info[0] != "0" else None,
cleaning = gruppen_data.get(id=post_info[1]) if post_info[1] != "0" else None,
)
else:
info_data.gast = gruppen_data.get(id=post_info[0]) if post_info[0] != "0" else None
info_data.cleaning = gruppen_data.get(id=post_info[1]) if post_info[1] != "0" else None
info_data.save()
# PREDIGTDIENST
if service_data == None: service_data = MainModel.service.objects.create(week = MainModel.week.objects.get(date_of_monday=strDate))
for i in range(1, 7):
# Datum
service_data.__setattr__("date_"+str(i), post_service_date[i-1]) if post_service_date[i-1] != "" else service_data.__setattr__("date_"+str(i), None)
# Uhrzeit
service_data.__setattr__("time_"+str(i), post_service_time[i-1]) if post_service_time[i-1] != "" else service_data.__setattr__("time_"+str(i), None)
# Type
service_data.__setattr__("type_"+str(i), post_service_type[i-1]) if post_service_type[i-1] != "0" else service_data.__setattr__("type_"+str(i), None)
# Leiter
service_data.__setattr__("speaker_"+str(i), persons.get(id=post_service_speaker[i-1])) if post_service_speaker[i-1] != "0" else service_data.__setattr__("speaker_"+str(i), None)
service_data.save()
# ORDNUNGSIENST
if steward_data == None: steward_data = MainModel.steward.objects.create(week = MainModel.week.objects.get(date_of_monday=strDate))
steward_data.hall_1 = persons.get(id=post_steward[0]) if post_steward[0] != "0" else None
steward_data.hall_2 = persons.get(id=post_steward[1]) if post_steward[1] != "0" else None
steward_data.foyer_1 = persons.get(id=post_steward[2]) if post_steward[2] != "0" else None
steward_data.foyer_2 = persons.get(id=post_steward[3]) if post_steward[3] != "0" else None
steward_data.save()
# TECHNIK
if regie_data == None: regie_data = MainModel.regie.objects.create(week = MainModel.week.objects.get(date_of_monday=strDate))
regie_data.regie_1 = persons.get(id=post_regie[0]) if post_regie[0] != "0" else None
regie_data.regie_2 = persons.get(id=post_regie[1]) if post_regie[1] != "0" else None
regie_data.zoom_1 = persons.get(id=post_regie[2]) if post_regie[2] != "0" else None
regie_data.zoom_2 = persons.get(id=post_regie[3]) if post_regie[3] != "0" else None
regie_data.stage = persons.get(id=post_regie[4]) if post_regie[4] != "0" else None
regie_data.save()
# Abfrage der Datenbanken um Informationen einzublenden
steward_data = MainModel.steward.objects.filter(week__date_of_monday=strDate)[0] if MainModel.steward.objects.filter(week__date_of_monday=strDate).count() > 0 else {}
regie_data = MainModel.regie.objects.filter(week__date_of_monday=strDate)[0] if MainModel.regie.objects.filter(week__date_of_monday=strDate).count() > 0 else {}
info_data = MainModel.info.objects.filter(week__date_of_monday=strDate)[0] if MainModel.info.objects.filter(week__date_of_monday=strDate).count() > 0 else {}
gruppen_data = MainModel.group.objects.all()
persons = MainModel.contributors.objects.all()
service_data = MainModel.service.objects.filter(week__date_of_monday=strDate)[0] if MainModel.service.objects.filter(week__date_of_monday=strDate).count() > 0 else {}
return render(request, 'main/index.html', {'actual' : actual,
'error' : error,
'date': strDate,
'next_date': FutureyDate(url_date, 1).strftime("%d%m%y"),
'past_date': PastDate(url_date, 1).strftime("%d%m%y"),
'saal_ordner' : persons.filter(saalordner=True),
'ordner' : persons.filter(ordner=True),
'anlage' : persons.filter(anlage=True),
'zoom' : persons.filter(zoom=True),
'buehne' : persons.filter(buehne=True),
'sm' : persons.filter(treffpunkt=True),
'date_area' : {
'min' : str(url_date),
'value' : str(url_date),
'max' : str(FutureyDate(url_date - datetime.timedelta(days=1), 1))},
'steward_data' : steward_data,
'regie_data' : regie_data,
'info_data' : info_data,
'gruppen_data' : gruppen_data,
'service_data' : service_data
})

Powered by TurnKey Linux.