Skip to content
Snippets Groups Projects
Commit e6382c55 authored by Frank Poetzsch-Heffter's avatar Frank Poetzsch-Heffter
Browse files

Some experiments

parent 695ab50c
No related branches found
No related tags found
1 merge request!86Merge school-apps
......@@ -2,7 +2,7 @@
<project version="4">
<component name="dataSourceStorageLocal">
<data-source name="Django default" uuid="ef6730d6-e849-4772-acac-62469acab4d2">
<database-info product="MySQL" version="5.7.20-0ubuntu0.16.04.1" jdbc-version="4.0" driver-name="MySQL Connector Java" driver-version="mysql-connector-java-5.1.44 ( Revision: b3cda4f864902ffdde495b9df93937c3e20009be )" family="MYSQL" exact-version="5.7.20">
<database-info product="MySQL" version="5.7.20-0ubuntu0.16.04.1" jdbc-version="4.0" driver-name="MySQL Connector Java" driver-version="mysql-connector-java-5.1.44 ( Revision: b3cda4f864902ffdde495b9df93937c3e20009be )" dbms="MYSQL" exact-version="5.7.20">
<extra-name-characters>#@</extra-name-characters>
<identifier-quote-string>`</identifier-quote-string>
</database-info>
......@@ -11,7 +11,7 @@
<introspection-schemas>*:schoolapps</introspection-schemas>
</data-source>
<data-source name="Django default2" uuid="ea4cff78-5949-410f-aa64-d6daa5fb293d">
<database-info product="MySQL" version="5.7.21-0ubuntu0.16.04.1" jdbc-version="4.0" driver-name="MySQL Connector Java" driver-version="mysql-connector-java-5.1.44 ( Revision: b3cda4f864902ffdde495b9df93937c3e20009be )" family="MYSQL" exact-version="5.7.21">
<database-info product="MySQL" version="5.7.21-0ubuntu0.16.04.1" jdbc-version="4.0" driver-name="MySQL Connector Java" driver-version="mysql-connector-java-5.1.44 ( Revision: b3cda4f864902ffdde495b9df93937c3e20009be )" dbms="MYSQL" exact-version="5.7.21">
<extra-name-characters>#@</extra-name-characters>
<identifier-quote-string>`</identifier-quote-string>
</database-info>
......@@ -20,7 +20,7 @@
<introspection-schemas>*:schoolapps</introspection-schemas>
</data-source>
<data-source name="Django untis" uuid="ae145b31-953d-4d55-ad07-b49b3287f618">
<database-info product="MySQL" version="5.7.21-0ubuntu0.16.04.1" jdbc-version="4.0" driver-name="MySQL Connector Java" driver-version="mysql-connector-java-5.1.44 ( Revision: b3cda4f864902ffdde495b9df93937c3e20009be )" family="MYSQL" exact-version="5.7.21">
<database-info product="MySQL" version="5.7.21-0ubuntu0.16.04.1" jdbc-version="4.0" driver-name="MySQL Connector Java" driver-version="mysql-connector-java-5.1.44 ( Revision: b3cda4f864902ffdde495b9df93937c3e20009be )" dbms="MYSQL" exact-version="5.7.21">
<extra-name-characters>#@</extra-name-characters>
<identifier-quote-string>`</identifier-quote-string>
</database-info>
......
......@@ -3,6 +3,7 @@ from django.core.exceptions import ValidationError
from django.utils import timezone
from datetime import datetime
from material import Layout, Row, Fieldset
from aub.models import Aub
class FilterAUBForm(forms.Form):
timerangechoices = [('today','Heute'),('thisWeek','Diese Woche'), ('thisMonth','Dieser Monat')]
......@@ -19,7 +20,7 @@ class FilterAUBForm(forms.Form):
def clean(self):
cleaned_data = super().clean()
class ApplyForAUBForm(forms.Form):
class ApplyForAUBForm(forms.ModelForm):
lessons = [('', ''), ('8:00', '1.'), ('8:45', '2.'), ('9:45', '3.'), ('10:35', '4.'), ('11:35', '5.'),
('12:25', '6.'), ('13:15', '7.'), ('14:05', '8.'), ('14:50', '9.')]
from_date = forms.DateField(label='Datum', input_formats=['%d.%m.%Y'])
......@@ -41,16 +42,20 @@ class ApplyForAUBForm(forms.Form):
'description'),
)
class Meta:
model = Aub
fields = ('from_dt', 'to_dt', 'description')
def clean(self):
cleaned_data = super().clean()
def clean_from_to_date(self):
# not related to a form field, just to clean datetime values
from_date = self.cleaned_data['from_date']
from_lesson = self.cleaned_data['from_lesson']
# from_lesson = self.cleaned_data['from_lesson']
from_time = self.cleaned_data['from_time']
to_date = self.cleaned_data['to_date']
to_lesson = self.cleaned_data['to_lesson']
# to_lesson = self.cleaned_data['to_lesson']
to_time = self.cleaned_data['to_time']
from_datetime = timezone.datetime.combine(from_date, from_time)
print(from_datetime)
......@@ -62,34 +67,6 @@ class ApplyForAUBForm(forms.Form):
raise ValidationError('Das Von-Datum liegt hinter dem Bis-Datum.')
return True
# def clean_from_date(self):
# data = self.cleaned_data['from_date']
# # if data < timezone.datetime.date(timezone.now()):
# # raise ValidationError('Die Befreiung kann nur zukünftig durchgeführt werden (Datumsfehler).')
# return data
#
# def clean_to_date(self):
# data = self.cleaned_data['to_date']
# # if data < timezone.datetime.date(timezone.now()):
# # raise ValidationError('Die Befreiung kann nur zukünftig durchgeführt werden.')
# return data
#
# def clean_from_time(self):
# data = self.cleaned_data['from_time']
# # print('Data:', type(data), 'Now:', type(timezone.datetime.time(timezone.now())))
#
# # if data < timezone.datetime.time(timezone.now()):
# # raise ValidationError('Die Befreiung kann nur zukünftig durchgeführt werden (Zeitfehler).')
#
# return data
#
# def clean_to_time(self):
# data = self.cleaned_data['to_time']
#
# # if data < timezone.datetime.time(timezone.now()):
# # raise ValidationError('Die Befreiung kann nur zukünftig durchgeführt werden.')
# return data
def clean_description(self):
data = self.cleaned_data['description']
self.clean_from_to_date()
......@@ -98,3 +75,84 @@ class ApplyForAUBForm(forms.Form):
return data
# class ApplyForAUBForm(forms.Form):
# lessons = [('', ''), ('8:00', '1.'), ('8:45', '2.'), ('9:45', '3.'), ('10:35', '4.'), ('11:35', '5.'),
# ('12:25', '6.'), ('13:15', '7.'), ('14:05', '8.'), ('14:50', '9.')]
# from_date = forms.DateField(label='Datum', input_formats=['%d.%m.%Y'])
# from_lesson = forms.ChoiceField(label='Stunde', choices=lessons, required=False,
# widget=forms.Select(attrs={'onchange': 'set_time(this)'}))
# from_time = forms.TimeField(label='Zeit', input_formats=['%H:%M'], initial='8:00', )
# to_date = forms.DateField(label='Datum', input_formats=['%d.%m.%Y'])
# to_lesson = forms.ChoiceField(label='Stunde', choices=lessons, required=False,
# widget=forms.Select(attrs={'onchange': 'set_time(this)'}))
# to_time = forms.TimeField(label='Zeit', input_formats=['%H:%M'], initial='15:35')
#
# description = forms.CharField(label='Bitte begründen Sie Ihren Antrag.')
#
# layout = Layout(Fieldset('Von',
# Row('from_date', 'from_lesson', 'from_time'),
# ),
# Fieldset('Bis',
# Row('to_date', 'to_lesson', 'to_time'),
# ),
# Fieldset('Grund / Vorhaben',
# 'description'),
# )
#
# def clean(self):
# cleaned_data = super().clean()
#
# def clean_from_to_date(self):
# # not related to a form field, just to clean datetime values
# from_date = self.cleaned_data['from_date']
# from_lesson = self.cleaned_data['from_lesson']
# from_time = self.cleaned_data['from_time']
# to_date = self.cleaned_data['to_date']
# to_lesson = self.cleaned_data['to_lesson']
# to_time = self.cleaned_data['to_time']
# from_datetime = timezone.datetime.combine(from_date, from_time)
# print(from_datetime)
# to_datetime = timezone.datetime.combine(to_date, to_time)
# if (from_datetime < datetime.now()) or (to_datetime < datetime.now()):
# raise ValidationError(
# 'Die Befreiung kann nicht für bereits vergangene Tage durchgeführt werden (Datumsfehler).')
# elif from_datetime > to_datetime:
# raise ValidationError('Das Von-Datum liegt hinter dem Bis-Datum.')
# return True
#
# # def clean_from_date(self):
# # data = self.cleaned_data['from_date']
# # # if data < timezone.datetime.date(timezone.now()):
# # # raise ValidationError('Die Befreiung kann nur zukünftig durchgeführt werden (Datumsfehler).')
# # return data
# #
# # def clean_to_date(self):
# # data = self.cleaned_data['to_date']
# # # if data < timezone.datetime.date(timezone.now()):
# # # raise ValidationError('Die Befreiung kann nur zukünftig durchgeführt werden.')
# # return data
# #
# # def clean_from_time(self):
# # data = self.cleaned_data['from_time']
# # # print('Data:', type(data), 'Now:', type(timezone.datetime.time(timezone.now())))
# #
# # # if data < timezone.datetime.time(timezone.now()):
# # # raise ValidationError('Die Befreiung kann nur zukünftig durchgeführt werden (Zeitfehler).')
# #
# # return data
# #
# # def clean_to_time(self):
# # data = self.cleaned_data['to_time']
# #
# # # if data < timezone.datetime.time(timezone.now()):
# # # raise ValidationError('Die Befreiung kann nur zukünftig durchgeführt werden.')
# # return data
#
# def clean_description(self):
# data = self.cleaned_data['description']
# self.clean_from_to_date()
# if len(data) < 10:
# raise ValidationError('Bitte teilen Sie uns etwas mehr über Ihren Befreiungswunsch mit.')
#
# return data
......@@ -32,7 +32,7 @@
</div>
<div class="col s12 m4">
<p>
<form action="" method="POST" class="right">
<form action="{% url 'aub_apply_for' %}" method="POST" class="right">
{% csrf_token %}
<input type="hidden" value="{{ aub.id }}" name="aub-id">
{% if aub.status_id == 1 %}
......@@ -40,6 +40,10 @@
<i class="material-icons center green-text">create</i>
</button>
{% endif %}
</form>
<form action="" method="POST" class="right">
{% csrf_token %}
<input type="hidden" value="{{ aub.id }}" name="aub-id">
{% if aub.status_id == 1 or aub.status_id == 2 %}
<button type="submit" onclick="return confirm('Wollen Sie den Antrag wirklich löschen?')" name="cancel" class="waves-effect waves-light btn-flat btn-flat-medium" title="Löschen">
<i class="material-icons center red-text">cancel</i>
......
......@@ -5,7 +5,6 @@ from . import views
urlpatterns = [
path('', views.index, name='aub_index'),
path('details/<int:aub_id>/', views.details, name='aub_details'),
path('update/', views.apply_for_update, name='aub_apply_for_update'),
path('apply_for', views.apply_for, name='aub_apply_for'),
path('applied_for', views.applied_for, name='aub_applied_for'),
path('check1', views.check1, name='aub_check1'),
......
......@@ -25,8 +25,9 @@ def index(request):
# Edit button pressed?
if 'edit' in request.POST:
aub = Aub.objects.filter(id=aub_id)
print('Edit wurde gewählt')
return render(request, 'aub/update', {'filter': aub})
print('...Edit wurde gewählt')
# return render(request, 'aub/apply_for.html', {'filter': aub})
apply_for(request)
# Cancel button pressed?
elif 'cancel' in request.POST:
......@@ -54,67 +55,89 @@ def details(request, aub_id):
@login_required
@permission_required('aub.apply_for_aub')
def apply_for(request):
if request.method == 'POST':
form = ApplyForAUBForm(request.POST)
if form.is_valid():
from_dt = timezone.datetime.combine(form.cleaned_data['from_date'], form.cleaned_data['from_time'])
to_dt = timezone.datetime.combine(form.cleaned_data['to_date'], form.cleaned_data['to_time'])
description = form.cleaned_data['description']
aub = Aub(from_dt=from_dt, to_dt=to_dt, description=description, created_by=request.user)
aub.save()
a = Activity(user=request.user, title="Antrag auf Unterrichtsbefreiung gestellt",
description="Sie haben einen Antrag auf Unterrichtsbefreiung " +
"für den Zeitraum von {} bis {} gestellt.".format(
aub.from_dt, aub.to_dt), app=AubConfig.verbose_name)
a.save()
return redirect(reverse('aub_applied_for'))
else:
form = ApplyForAUBForm()
context = {
'form': form,
}
return render(request, 'aub/apply_for.html', context)
@login_required
@permission_required('aub.apply_for_aub')
def apply_for_update(request):
if request.method == 'POST':
if 'aub-id' in request.POST:
aub_id = request.POST['aub-id']
aub = Aub.objects.get(id=aub_id)
print(aub)
form = ApplyForAUBForm(request.POST, initial=[aub.from_dt,aub.to_dt,aub.description])
if form.is_valid():
from_dt = timezone.datetime.combine(form.cleaned_data['from_date'], form.cleaned_data['from_time'])
to_dt = timezone.datetime.combine(form.cleaned_data['to_date'], form.cleaned_data['to_time'])
description = form.cleaned_data['description']
aub = Aub(from_dt=from_dt, to_dt=to_dt, description=description, created_by=request.user)
aub.save()
a = Activity(user=request.user, title="Antrag auf Unterrichtsbefreiung gestellt",
description="Sie haben einen Antrag auf Unterrichtsbefreiung " +
"für den Zeitraum von {} bis {} gestellt.".format(
aub.from_dt, aub.to_dt), app=AubConfig.verbose_name)
a.save()
return redirect(reverse('aub_applied_for'))
def apply_for(request, id):
instance = get_object_or_404(Aub, id=id)
form = ApplyForAUBForm(request.POST or None, instance=instance)
if form.is_valid():
form.save()
return redirect('aub_applied_for')
else:
form = ApplyForAUBForm()
context = {
'form': form,
}
return render(request, 'aub/apply_for.html', context)
ApplyForAUBForm(instance=instance)
return render(request,'aub/apply_for.html', {'form': form})
# if request.method == 'POST':
#
# if 'aub-id' in request.POST:
# aub_id = request.POST['aub-id']
# aub = Aub.objects.get(id=aub_id)
# print('AUB:', aub_id, '|', aub.from_dt, '|', aub.to_dt, '|', aub.description)
# form = ApplyForAUBForm(request.POST, instance=aub)
# else:
# form = ApplyForAUBForm(request.POST)
# # form = ApplyForAUBForm(request.POST, initial=[aub.from_dt, aub.to_dt, aub.description])
# if form.is_valid():
# from_dt = timezone.datetime.combine(form.cleaned_data['from_date'], form.cleaned_data['from_time'])
# to_dt = timezone.datetime.combine(form.cleaned_data['to_date'], form.cleaned_data['to_time'])
# description = form.cleaned_data['description']
#
# aub = Aub(from_dt=from_dt, to_dt=to_dt, description=description, created_by=request.user)
# aub.save()
#
# a = Activity(user=request.user, title="Antrag auf Unterrichtsbefreiung gestellt",
# description="Sie haben einen Antrag auf Unterrichtsbefreiung " +
# "für den Zeitraum von {} bis {} gestellt.".format(
# aub.from_dt, aub.to_dt), app=AubConfig.verbose_name)
# a.save()
#
# return redirect(reverse('aub_applied_for'))
#
# else:
# form = ApplyForAUBForm()
#
# context = {
# 'Aub': aub,
# 'form': form,
# }
# return render(request, 'aub/apply_for.html', context)
# @login_required
# @permission_required('aub.apply_for_aub')
# def apply_for(request):
# if request.method == 'POST':
#
# if 'aub-id' in request.POST:
# aub_id = request.POST['aub-id']
# aub = Aub.objects.get(id=aub_id)
# print('AUB:', aub_id, '|', aub.from_dt, '|', aub.to_dt, '|', aub.description)
# form = ApplyForAUBForm(request.POST, instance=aub)
# else:
# form = ApplyForAUBForm(request.POST)
# # form = ApplyForAUBForm(request.POST, initial=[aub.from_dt, aub.to_dt, aub.description])
# if form.is_valid():
# from_dt = timezone.datetime.combine(form.cleaned_data['from_date'], form.cleaned_data['from_time'])
# to_dt = timezone.datetime.combine(form.cleaned_data['to_date'], form.cleaned_data['to_time'])
# description = form.cleaned_data['description']
#
# aub = Aub(from_dt=from_dt, to_dt=to_dt, description=description, created_by=request.user)
# aub.save()
#
# a = Activity(user=request.user, title="Antrag auf Unterrichtsbefreiung gestellt",
# description="Sie haben einen Antrag auf Unterrichtsbefreiung " +
# "für den Zeitraum von {} bis {} gestellt.".format(
# aub.from_dt, aub.to_dt), app=AubConfig.verbose_name)
# a.save()
#
# return redirect(reverse('aub_applied_for'))
#
# else:
# form = ApplyForAUBForm()
#
# context = {
# 'Aub': aub,
# 'form': form,
# }
# return render(request, 'aub/apply_for.html', context)
@login_required
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment