diff --git a/.idea/school-apps.iml b/.idea/school-apps.iml index 603f445156e674305fe1ece3250bc526250ab3d3..d0b5ddd7b4dbd80e5134ef103cfcf8264785005a 100644 --- a/.idea/school-apps.iml +++ b/.idea/school-apps.iml @@ -23,7 +23,7 @@ <excludeFolder url="file://$MODULE_DIR$/env" /> <excludeFolder url="file://$MODULE_DIR$/schoolapps/staticcollect" /> </content> - <orderEntry type="inheritedJdk" /> + <orderEntry type="jdk" jdkName="Python 3.7 (school-apps)" jdkType="Python SDK" /> <orderEntry type="sourceFolder" forTests="false" /> </component> <component name="TemplatesService"> diff --git a/schoolapps/aub/filters.py b/schoolapps/aub/filters.py index 880f283c701b82a908f19465af7a4034805531d9..23dd84fc7ce1121fc65cafa468d3a58d4122348c 100644 --- a/schoolapps/aub/filters.py +++ b/schoolapps/aub/filters.py @@ -1,22 +1,25 @@ -from django import forms from django.contrib.auth.models import User import django_filters from .models import Aub +from django.db.utils import ProgrammingError -class AUBFilter(django_filters.FilterSet): - def getAUBUsers(): - ''' Find all users who sends an AUB''' +def get_aub_users(): + """ Find all users who sends an AUB """ + try: aub_users = Aub.objects.values_list('created_by') users = list(User.objects.filter(id__in=aub_users)) # user_ids = [(str(user.id),user.username) for user in users] - user_ids = [(str(user.id),user.last_name+', '+user.first_name) for user in users] + user_ids = [(str(user.id), user.last_name + ', ' + user.first_name) for user in users] user_ids_sorted = sorted(user_ids, key=lambda user: user[1]) return user_ids_sorted + except ProgrammingError: + return [] + - created_by = django_filters.ChoiceFilter(label='Von', choices=getAUBUsers()) +class AUBFilter(django_filters.FilterSet): + created_by = django_filters.ChoiceFilter(label='Von', choices=get_aub_users()) class Meta: model = Aub - fields = ['created_by',] - + fields = ['created_by', ] diff --git a/schoolapps/aub/migrations/0001_initial.py b/schoolapps/aub/migrations/0001_initial.py index 409cd2cc662fc4b831741735d65762c1591c08ad..ec71e65662b0c5faaf5362a43991e17855973ac8 100644 --- a/schoolapps/aub/migrations/0001_initial.py +++ b/schoolapps/aub/migrations/0001_initial.py @@ -1,7 +1,9 @@ -# Generated by Django 2.1.2 on 2018-10-27 17:37 +# Generated by Django 2.2.1 on 2019-05-29 15:05 +import datetime from django.conf import settings from django.db import migrations, models +import django.db.models.deletion import django.utils.timezone @@ -18,22 +20,27 @@ class Migration(migrations.Migration): name='Aub', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('from_dt', models.DateTimeField(default=django.utils.timezone.now)), - ('to_dt', models.DateTimeField(default=django.utils.timezone.now)), + ('from_date', models.DateField(default=datetime.date.today, verbose_name='Startdatum')), + ('from_time', models.TimeField(default=django.utils.timezone.now, verbose_name='Startzeit')), + ('to_date', models.DateField(default=datetime.date.today, verbose_name='Enddatum')), + ('to_time', models.TimeField(default=django.utils.timezone.now, verbose_name='Endzeit')), ('description', models.TextField()), - ('created_at', models.DateTimeField(default=django.utils.timezone.now)), - ('created_by', models.ForeignKey(default=1, on_delete=models.SET(1), related_name='aubs', to=settings.AUTH_USER_MODEL)), + ('status', models.IntegerField( + choices=[(0, 'In Bearbeitung 1'), (1, 'In Bearbeitung 2'), (2, 'Genehmigt'), (3, 'Abgelehnt')], + default=0, verbose_name='Status')), + ('created_at', + models.DateTimeField(default=django.utils.timezone.now, verbose_name='Erstellungszeitpunkt')), + ('created_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, + related_name='aubs', to=settings.AUTH_USER_MODEL, + verbose_name='Erstellt von')), ], options={ - 'permissions': (('apply_for_aub', 'Apply for a AUB'), ('cancel_aub', 'Cancel a AUB'), ('allow1_aub', 'First permission'), ('allow2_aub', 'Second permission'), ('check1_aub', 'Check a AUB'), ('check2_aub', 'Check a AUB')), + 'verbose_name': 'AUB', + 'verbose_name_plural': 'AUBs', + 'permissions': (('apply_for_aub', 'Apply for a AUB'), ('cancel_aub', 'Cancel a AUB'), + ('allow1_aub', 'First permission'), ('allow2_aub', 'Second permission'), + ('check1_aub', 'Check a AUB'), ('check2_aub', 'Check a AUB'), + ('view_archive', 'View AUB archive')), }, ), - migrations.CreateModel( - name='Status', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('name', models.CharField(max_length=100)), - ('style_classes', models.CharField(max_length=200)), - ], - ), ] diff --git a/schoolapps/aub/migrations/0002_aub_status.py b/schoolapps/aub/migrations/0002_aub_status.py deleted file mode 100644 index b32b83b9e3655fe7c15329ed3491f8f323e940d8..0000000000000000000000000000000000000000 --- a/schoolapps/aub/migrations/0002_aub_status.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 2.1.2 on 2018-10-27 17:39 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('aub', '0001_initial'), - ] - - operations = [ - migrations.AddField( - model_name='aub', - name='status', - field=models.ForeignKey(default=1, on_delete=models.SET(1), related_name='aubs', to='aub.Status'), - ), - ] diff --git a/schoolapps/aub/migrations/0003_auto_20181031_1551.py b/schoolapps/aub/migrations/0003_auto_20181031_1551.py deleted file mode 100644 index c3c527456a1c54606896ca8fd667653bdd742251..0000000000000000000000000000000000000000 --- a/schoolapps/aub/migrations/0003_auto_20181031_1551.py +++ /dev/null @@ -1,24 +0,0 @@ -# Generated by Django 2.0.7 on 2018-10-31 14:51 - -from django.conf import settings -from django.db import migrations, models - - -class Migration(migrations.Migration): - dependencies = [ - ('aub', '0002_aub_status'), - ] - - operations = [ - migrations.AlterField( - model_name='aub', - name='created_by', - field=models.ForeignKey(default=3, on_delete=models.SET(3), related_name='aubs', - to=settings.AUTH_USER_MODEL), - ), - migrations.AlterField( - model_name='aub', - name='status', - field=models.ForeignKey(default=5, on_delete=models.SET(5), related_name='aubs', to='aub.Status'), - ), - ] diff --git a/schoolapps/aub/migrations/0003_auto_20181223_0905.py b/schoolapps/aub/migrations/0003_auto_20181223_0905.py deleted file mode 100644 index 4ed0109e2fc0134f0c4d4c9fc121cc9d566cb4a4..0000000000000000000000000000000000000000 --- a/schoolapps/aub/migrations/0003_auto_20181223_0905.py +++ /dev/null @@ -1,43 +0,0 @@ -# Generated by Django 2.1.2 on 2018-12-23 08:05 - -import datetime -from django.db import migrations, models -import django.utils.timezone - - -class Migration(migrations.Migration): - - dependencies = [ - ('aub', '0002_aub_status'), - ] - - operations = [ - migrations.RemoveField( - model_name='aub', - name='from_dt', - ), - migrations.RemoveField( - model_name='aub', - name='to_dt', - ), - migrations.AddField( - model_name='aub', - name='from_date', - field=models.DateField(default=datetime.date.today), - ), - migrations.AddField( - model_name='aub', - name='from_time', - field=models.TimeField(default=django.utils.timezone.now), - ), - migrations.AddField( - model_name='aub', - name='to_date', - field=models.DateField(default=datetime.date.today), - ), - migrations.AddField( - model_name='aub', - name='to_time', - field=models.TimeField(default=django.utils.timezone.now), - ), - ] diff --git a/schoolapps/aub/migrations/0004_auto_20181031_1617.py b/schoolapps/aub/migrations/0004_auto_20181031_1617.py deleted file mode 100644 index 200b95a88a937563000130b794f6fcc38f532b7d..0000000000000000000000000000000000000000 --- a/schoolapps/aub/migrations/0004_auto_20181031_1617.py +++ /dev/null @@ -1,19 +0,0 @@ -# Generated by Django 2.0.4 on 2018-10-31 15:17 - -from django.conf import settings -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('aub', '0003_auto_20181031_1551'), - ] - - operations = [ - migrations.AlterField( - model_name='aub', - name='created_by', - field=models.ForeignKey(default=1, on_delete=models.SET(1), related_name='aubs', to=settings.AUTH_USER_MODEL), - ), - ] diff --git a/schoolapps/aub/migrations/0005_auto_20181128_1709.py b/schoolapps/aub/migrations/0005_auto_20181128_1709.py deleted file mode 100644 index 13997ca7604660e60cd0ff668004e3908f3f8999..0000000000000000000000000000000000000000 --- a/schoolapps/aub/migrations/0005_auto_20181128_1709.py +++ /dev/null @@ -1,19 +0,0 @@ -# Generated by Django 2.0.7 on 2018-11-28 16:09 - -from django.conf import settings -from django.db import migrations, models - - -class Migration(migrations.Migration): - dependencies = [ - ('aub', '0004_auto_20181031_1617'), - ] - - operations = [ - migrations.AlterField( - model_name='aub', - name='created_by', - field=models.ForeignKey(default=3, on_delete=models.SET(3), related_name='aubs', - to=settings.AUTH_USER_MODEL), - ), - ] diff --git a/schoolapps/aub/migrations/0006_auto_20181219_1107.py b/schoolapps/aub/migrations/0006_auto_20181219_1107.py deleted file mode 100644 index 2d7f31b40958a64aca6d96a9f65405a1bd784675..0000000000000000000000000000000000000000 --- a/schoolapps/aub/migrations/0006_auto_20181219_1107.py +++ /dev/null @@ -1,24 +0,0 @@ -# Generated by Django 2.0.4 on 2018-12-19 10:07 - -from django.conf import settings -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('aub', '0005_auto_20181128_1709'), - ] - - operations = [ - migrations.AlterField( - model_name='aub', - name='created_by', - field=models.ForeignKey(default=1, on_delete=models.SET(1), related_name='aubs', to=settings.AUTH_USER_MODEL), - ), - migrations.AlterField( - model_name='aub', - name='status', - field=models.ForeignKey(default=7, on_delete=models.SET(7), related_name='aubs', to='aub.Status'), - ), - ] diff --git a/schoolapps/aub/migrations/0007_merge_20190426_1620.py b/schoolapps/aub/migrations/0007_merge_20190426_1620.py deleted file mode 100644 index bb9ad1f46e606f11c01e4969394fd42c942cab53..0000000000000000000000000000000000000000 --- a/schoolapps/aub/migrations/0007_merge_20190426_1620.py +++ /dev/null @@ -1,14 +0,0 @@ -# Generated by Django 2.1.5 on 2019-04-26 14:20 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('aub', '0003_auto_20181223_0905'), - ('aub', '0006_auto_20181219_1107'), - ] - - operations = [ - ] diff --git a/schoolapps/aub/migrations/0008_auto_20190426_1654.py b/schoolapps/aub/migrations/0008_auto_20190426_1654.py deleted file mode 100644 index ca3dab694aa925bc45fed6a511647fc55206c149..0000000000000000000000000000000000000000 --- a/schoolapps/aub/migrations/0008_auto_20190426_1654.py +++ /dev/null @@ -1,58 +0,0 @@ -# Generated by Django 2.1.5 on 2019-04-26 14:54 - -import datetime -from django.conf import settings -from django.db import migrations, models -import django.utils.timezone - - -class Migration(migrations.Migration): - - dependencies = [ - ('aub', '0007_merge_20190426_1620'), - ] - - operations = [ - migrations.AlterModelOptions( - name='aub', - options={'permissions': (('apply_for_aub', 'Apply for a AUB'), ('cancel_aub', 'Cancel a AUB'), ('allow1_aub', 'First permission'), ('allow2_aub', 'Second permission'), ('check1_aub', 'Check a AUB'), ('check2_aub', 'Check a AUB'), ('view_archive', 'View AUB archive')), 'verbose_name': 'AUB', 'verbose_name_plural': 'AUBs'}, - ), - migrations.AlterField( - model_name='aub', - name='created_at', - field=models.DateTimeField(default=django.utils.timezone.now, verbose_name='Erstellungszeitpunkt'), - ), - migrations.AlterField( - model_name='aub', - name='created_by', - field=models.ForeignKey(default=1, on_delete=models.SET(1), related_name='aubs', to=settings.AUTH_USER_MODEL, verbose_name='Erstellt von'), - ), - migrations.AlterField( - model_name='aub', - name='from_date', - field=models.DateField(default=datetime.date.today, verbose_name='Startdatum'), - ), - migrations.AlterField( - model_name='aub', - name='from_time', - field=models.TimeField(default=django.utils.timezone.now, verbose_name='Startzeit'), - ), - migrations.AlterField( - model_name='aub', - name='status', - field=models.IntegerField(choices=[(0, 'In Bearbeitung 1'), (1, 'In Bearbeitung 2'), (2, 'Genehmigt'), (3, 'Abgelehnt')], default=0, verbose_name='Status'), - ), - migrations.AlterField( - model_name='aub', - name='to_date', - field=models.DateField(default=datetime.date.today, verbose_name='Enddatum'), - ), - migrations.AlterField( - model_name='aub', - name='to_time', - field=models.TimeField(default=django.utils.timezone.now, verbose_name='Endzeit'), - ), - migrations.DeleteModel( - name='Status', - ), - ] diff --git a/schoolapps/aub/models.py b/schoolapps/aub/models.py index ce8b64259676e35aac57ba8aabec3833f81dc57e..6b1ef6807b380650e456f7da88c4e79614d16a69 100755 --- a/schoolapps/aub/models.py +++ b/schoolapps/aub/models.py @@ -4,12 +4,12 @@ from django.contrib.auth.models import User from datetime import date -def get_default_user(): - user, created = User.objects.get_or_create(username='nouser') - return user.id +# def get_default_user(): +# user, created = User.objects.get_or_create(username='nouser') +# return user.id -class Status(): +class Status: def __init__(self, name, style_class): self.name = name self.style_class = style_class @@ -24,7 +24,7 @@ status_list = [ Status(name='Genehmigt', style_class='green'), Status(name='Abgelehnt', style_class='red'), ] -print("status_list[0].name :", status_list[0].name) +# print("status_list[0].name :", status_list[0].name) status_choices = [(x, val.name) for x, val in enumerate(status_list)] @@ -40,8 +40,8 @@ class Aub(models.Model): status = models.IntegerField(default=0, choices=status_choices, verbose_name="Status") # Meta - created_by = models.ForeignKey(User, related_name='aubs', on_delete=models.SET(get_default_user()), - default=get_default_user(), verbose_name="Erstellt von") + created_by = models.ForeignKey(User, related_name='aubs', on_delete=models.SET_NULL + , verbose_name="Erstellt von", blank=True, null=True) created_at = models.DateTimeField(default=timezone.now, verbose_name="Erstellungszeitpunkt") def getStatus(self): diff --git a/schoolapps/dashboard/migrations/0001_initial.py b/schoolapps/dashboard/migrations/0001_initial.py index 9fe6a8f8b80f410dc85d47276a288bacf81e1c88..b98c580d6c71ce0871d5260d9ae591322e824b0e 100644 --- a/schoolapps/dashboard/migrations/0001_initial.py +++ b/schoolapps/dashboard/migrations/0001_initial.py @@ -1,4 +1,4 @@ -# Generated by Django 2.1.2 on 2018-10-27 16:55 +# Generated by Django 2.2.1 on 2019-05-29 15:06 from django.conf import settings from django.db import migrations, models @@ -16,26 +16,27 @@ class Migration(migrations.Migration): operations = [ migrations.CreateModel( - name='Activity', + name='Notification', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('title', models.CharField(max_length=200)), ('description', models.TextField(max_length=500)), + ('link', models.URLField(blank=True)), ('app', models.CharField(max_length=100)), ('created_at', models.DateTimeField(default=django.utils.timezone.now)), - ('user', models.ForeignKey(default=None, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='notifications', + to=settings.AUTH_USER_MODEL)), ], ), migrations.CreateModel( - name='Notification', + name='Activity', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('title', models.CharField(max_length=200)), ('description', models.TextField(max_length=500)), - ('link', models.URLField(blank=True)), ('app', models.CharField(max_length=100)), ('created_at', models.DateTimeField(default=django.utils.timezone.now)), - ('user', models.ForeignKey(default=None, on_delete=django.db.models.deletion.CASCADE, related_name='notifications', to=settings.AUTH_USER_MODEL)), + ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), ], ), ] diff --git a/schoolapps/dashboard/models.py b/schoolapps/dashboard/models.py index d1d4651264b00bc90e07177d1d01b4b6f734a69d..218eb4e438c3937989dc9fb9dd532323a0467168 100755 --- a/schoolapps/dashboard/models.py +++ b/schoolapps/dashboard/models.py @@ -6,14 +6,14 @@ from django.utils import timezone from mailer import send_mail_with_template -def get_default_user(): - User.objects.get_or_create(username='nouser') +# def get_default_user(): +# User.objects.get_or_create(username='nouser') # Create your models here. class Activity(models.Model): - user = models.ForeignKey(to=User, on_delete=models.CASCADE, default=get_default_user()) + user = models.ForeignKey(to=User, on_delete=models.CASCADE) title = models.CharField(max_length=200) description = models.TextField(max_length=500) @@ -28,7 +28,7 @@ class Activity(models.Model): class Notification(models.Model): # to = models.ManyToManyField(User, related_name='notifications') - user = models.ForeignKey(to=User, on_delete=models.CASCADE, default=get_default_user(), related_name="notifications") + user = models.ForeignKey(to=User, on_delete=models.CASCADE, related_name="notifications") title = models.CharField(max_length=200) description = models.TextField(max_length=500) link = models.URLField(blank=True) diff --git a/schoolapps/doc/__init__.py b/schoolapps/doc/__init__.py deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/schoolapps/doc/admin.py b/schoolapps/doc/admin.py deleted file mode 100644 index 8c38f3f3dad51e4585f3984282c2a4bec5349c1e..0000000000000000000000000000000000000000 --- a/schoolapps/doc/admin.py +++ /dev/null @@ -1,3 +0,0 @@ -from django.contrib import admin - -# Register your models here. diff --git a/schoolapps/doc/apps.py b/schoolapps/doc/apps.py deleted file mode 100644 index 1c79f22e3c332864a6c60822280d4e5400b1fe0b..0000000000000000000000000000000000000000 --- a/schoolapps/doc/apps.py +++ /dev/null @@ -1,5 +0,0 @@ -from django.apps import AppConfig - - -class DocConfig(AppConfig): - name = 'doc' diff --git a/schoolapps/doc/migrations/0002_auto_20190106_0905.py b/schoolapps/doc/migrations/0002_auto_20190106_0905.py deleted file mode 100644 index b1cae31961ab9646d73de5ade1737cd6128088b4..0000000000000000000000000000000000000000 --- a/schoolapps/doc/migrations/0002_auto_20190106_0905.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 2.1.2 on 2019-01-06 08:05 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('doc', '0001_initial'), - ] - - operations = [ - migrations.AlterField( - model_name='subject', - name='abbreviation', - field=models.CharField(max_length=5), - ), - ] diff --git a/schoolapps/doc/migrations/0003_auto_20190108_1626.py b/schoolapps/doc/migrations/0003_auto_20190108_1626.py deleted file mode 100644 index 89de0be627df14ca1974eec05ba73d4bb799ceb3..0000000000000000000000000000000000000000 --- a/schoolapps/doc/migrations/0003_auto_20190108_1626.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 2.1.2 on 2019-01-08 15:26 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('doc', '0002_auto_20190106_0905'), - ] - - operations = [ - migrations.AlterField( - model_name='subject', - name='abbreviation', - field=models.CharField(max_length=5, unique=True), - ), - ] diff --git a/schoolapps/doc/migrations/__init__.py b/schoolapps/doc/migrations/__init__.py deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/schoolapps/doc/models.py b/schoolapps/doc/models.py deleted file mode 100644 index a7e425d408c0e0669ba9f6c336ed809b77049b52..0000000000000000000000000000000000000000 --- a/schoolapps/doc/models.py +++ /dev/null @@ -1,54 +0,0 @@ -from django.db import models - -# Create your models here. -class Teacher(models.Model): - abbreviation = models.CharField(max_length=5, primary_key=True, unique=True) - firstname = models.CharField(max_length=20) - lastname = models.CharField(max_length=40) - - -class Certificate(models.Model): - teacher = models.ForeignKey(to=Teacher.abbreviation, on_delete=models.CASCADE) - subject = models.ForeignKey(to=Subject.abbreviation, on_delete=models.CASCADE) - - -class WorkingTime(models.Model): - teacher = models.ForeignKey(to=Teacher.abbreviation) - term = models.ForeignKey('Term', on_delete=models.CASCADE) - debit = models.DecimalField(max_digits=5, decimal_places=1) - - - -class Subject(models.Model): - abbreviation = models.CharField(max_length=5, primary_key=True, unique=True) - name = models.CharField(max_length=30) - - -class SubjectTitle(models.Model): - subject_title = models.CharField(max_length=6, primary_key=True, unique=True) - abbreviation = models.ForeignKey(to=Subject.abbreviation, on_delete=models.CASCADE) - - -class Course(models.Model): - grade = models.CharField(max_length=6) - group = models.CharField(max_length=6) - subject_title = models.ForeignKey(to=SubjectTitle.subject_title, on_delete=models.CASCADE) - teacher = models.ForeignKey(to=Teacher.abbreviation, on_delete=models.CASCADE) - - -class NoLessons(models.Model): - day = models.DateField() - reason = models.CharField(max_length=50) - - -class Schoolyear(models.Model): - begin = models.DateField() - end = models.DateField() - - -class Term(models.Model): - begin = models.DateField() - end = models.DateField() - - - diff --git a/schoolapps/doc/tests.py b/schoolapps/doc/tests.py deleted file mode 100644 index 7ce503c2dd97ba78597f6ff6e4393132753573f6..0000000000000000000000000000000000000000 --- a/schoolapps/doc/tests.py +++ /dev/null @@ -1,3 +0,0 @@ -from django.test import TestCase - -# Create your tests here. diff --git a/schoolapps/doc/views.py b/schoolapps/doc/views.py deleted file mode 100644 index 91ea44a218fbd2f408430959283f0419c921093e..0000000000000000000000000000000000000000 --- a/schoolapps/doc/views.py +++ /dev/null @@ -1,3 +0,0 @@ -from django.shortcuts import render - -# Create your views here. diff --git a/schoolapps/faq/migrations/0001_initial.py b/schoolapps/faq/migrations/0001_initial.py index f399d43ad9bef00f3331d59da6783818f24a379b..8f23b0f8372abc5b768c4b6bd1ef16b1eb2f29d6 100644 --- a/schoolapps/faq/migrations/0001_initial.py +++ b/schoolapps/faq/migrations/0001_initial.py @@ -1,4 +1,4 @@ -# Generated by Django 2.1.5 on 2019-04-29 10:58 +# Generated by Django 2.2.1 on 2019-05-29 15:05 from django.conf import settings from django.db import migrations, models @@ -14,25 +14,14 @@ class Migration(migrations.Migration): ] operations = [ - migrations.CreateModel( - name='FAQAnswer', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('answer_text', models.CharField(max_length=1000)), - ], - options={ - 'verbose_name': 'FAQ-Antwort', - 'verbose_name_plural': 'FAQ-Antworten', - }, - ), migrations.CreateModel( name='FAQQuestion', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('question_text', models.CharField(max_length=200)), - ('icon', models.CharField(max_length=20)), - ('answered', models.BooleanField(default=False, verbose_name='Beantwortet')), - ('answer', models.ForeignKey(blank=True, on_delete=django.db.models.deletion.CASCADE, to='faq.FAQAnswer')), + ('question_text', models.TextField()), + ('icon', models.CharField(blank=True, default='question_answer', max_length=20)), + ('show', models.BooleanField(default=False, verbose_name='Veröffentlicht')), + ('answer_text', models.TextField(blank=True)), ], options={ 'verbose_name': 'FAQ-Frage', @@ -43,7 +32,7 @@ class Migration(migrations.Migration): name='Question', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('question_text', models.CharField(max_length=200)), + ('question_text', models.TextField()), ('pub_date', models.DateTimeField(verbose_name='date published')), ('answered', models.BooleanField(default=False, verbose_name='Beantwortet')), ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), diff --git a/schoolapps/faq/migrations/0002_auto_20190429_1329.py b/schoolapps/faq/migrations/0002_auto_20190429_1329.py deleted file mode 100644 index b0975ee6e37896412aea50dafa3569b7f07532e8..0000000000000000000000000000000000000000 --- a/schoolapps/faq/migrations/0002_auto_20190429_1329.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 2.1.5 on 2019-04-29 11:29 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('faq', '0001_initial'), - ] - - operations = [ - migrations.AlterField( - model_name='faqquestion', - name='icon', - field=models.CharField(blank=True, default='question_answer', max_length=20), - ), - ] diff --git a/schoolapps/faq/migrations/0003_auto_20190429_1338.py b/schoolapps/faq/migrations/0003_auto_20190429_1338.py deleted file mode 100644 index ee0b13532dadfd635a5ea2c1e4669643f22fc6dc..0000000000000000000000000000000000000000 --- a/schoolapps/faq/migrations/0003_auto_20190429_1338.py +++ /dev/null @@ -1,23 +0,0 @@ -# Generated by Django 2.1.5 on 2019-04-29 11:38 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('faq', '0002_auto_20190429_1329'), - ] - - operations = [ - migrations.AlterField( - model_name='faqquestion', - name='question_text', - field=models.TextField(), - ), - migrations.AlterField( - model_name='question', - name='question_text', - field=models.TextField(), - ), - ] diff --git a/schoolapps/faq/migrations/0004_auto_20190429_1339.py b/schoolapps/faq/migrations/0004_auto_20190429_1339.py deleted file mode 100644 index 8e578ab065d3afe99dce1ca0d50df00e5e160718..0000000000000000000000000000000000000000 --- a/schoolapps/faq/migrations/0004_auto_20190429_1339.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 2.1.5 on 2019-04-29 11:39 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('faq', '0003_auto_20190429_1338'), - ] - - operations = [ - migrations.AlterField( - model_name='faqanswer', - name='answer_text', - field=models.TextField(), - ), - ] diff --git a/schoolapps/faq/migrations/0005_auto_20190429_2121.py b/schoolapps/faq/migrations/0005_auto_20190429_2121.py deleted file mode 100644 index c9d466fae602167f6f35499c3db30e914143ae84..0000000000000000000000000000000000000000 --- a/schoolapps/faq/migrations/0005_auto_20190429_2121.py +++ /dev/null @@ -1,25 +0,0 @@ -# Generated by Django 2.1.5 on 2019-04-29 19:21 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('faq', '0004_auto_20190429_1339'), - ] - - operations = [ - migrations.RemoveField( - model_name='faqquestion', - name='answer', - ), - migrations.AddField( - model_name='faqquestion', - name='answer_text', - field=models.TextField(blank=True), - ), - migrations.DeleteModel( - name='FAQAnswer', - ), - ] diff --git a/schoolapps/faq/migrations/0006_auto_20190501_1406.py b/schoolapps/faq/migrations/0006_auto_20190501_1406.py deleted file mode 100644 index 568a818df4acdca8e032c2be1ef14ab9a6d524ae..0000000000000000000000000000000000000000 --- a/schoolapps/faq/migrations/0006_auto_20190501_1406.py +++ /dev/null @@ -1,22 +0,0 @@ -# Generated by Django 2.2 on 2019-05-01 12:06 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('faq', '0005_auto_20190429_2121'), - ] - - operations = [ - migrations.RemoveField( - model_name='faqquestion', - name='answered', - ), - migrations.AddField( - model_name='faqquestion', - name='show', - field=models.BooleanField(default=False, verbose_name='Veröffentlicht'), - ), - ] diff --git a/schoolapps/menu/migrations/0001_initial.py b/schoolapps/menu/migrations/0001_initial.py index ba1c3a0c1289d9244e0a5454bd573a23c5edbe50..e1433af66b7b9fe326745664ffbd6ae62e4ee995 100644 --- a/schoolapps/menu/migrations/0001_initial.py +++ b/schoolapps/menu/migrations/0001_initial.py @@ -1,9 +1,11 @@ -# Generated by Django 2.0.7 on 2018-11-28 16:14 +# Generated by Django 2.2.1 on 2019-05-29 15:05 from django.db import migrations, models +import helper class Migration(migrations.Migration): + initial = True dependencies = [ @@ -11,12 +13,17 @@ class Migration(migrations.Migration): operations = [ migrations.CreateModel( - name='MealPlan', + name='Menu', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('calendar_week', models.IntegerField()), - ('year', models.IntegerField()), - ('pdf', models.FileField(upload_to='mealplan/%Y/')), + ('calendar_week', models.IntegerField(verbose_name='KW')), + ('year', models.IntegerField(verbose_name='Jahr')), + ('pdf', models.FileField(upload_to=helper.path_and_rename, verbose_name='PDF')), ], + options={ + 'verbose_name': 'Speiseplan', + 'verbose_name_plural': 'Speisepläne', + 'unique_together': {('calendar_week', 'year')}, + }, ), ] diff --git a/schoolapps/menu/migrations/0002_auto_20181129_1743.py b/schoolapps/menu/migrations/0002_auto_20181129_1743.py deleted file mode 100644 index f1a9d77ca93b7caa9051455b39ad7117d8cbdfce..0000000000000000000000000000000000000000 --- a/schoolapps/menu/migrations/0002_auto_20181129_1743.py +++ /dev/null @@ -1,17 +0,0 @@ -# Generated by Django 2.0.7 on 2018-11-29 16:43 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - dependencies = [ - ('menu', '0001_initial'), - ] - - operations = [ - migrations.AlterField( - model_name='mealplan', - name='pdf', - field=models.FileField(upload_to='menus/'), - ), - ] diff --git a/schoolapps/menu/migrations/0003_auto_20181129_1747.py b/schoolapps/menu/migrations/0003_auto_20181129_1747.py deleted file mode 100644 index 4976b2af8febefa1a9d66ccec8bc6dc53a1d194d..0000000000000000000000000000000000000000 --- a/schoolapps/menu/migrations/0003_auto_20181129_1747.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 2.0.7 on 2018-11-29 16:47 - -from django.db import migrations, models -import helper - - -class Migration(migrations.Migration): - dependencies = [ - ('menu', '0002_auto_20181129_1743'), - ] - - operations = [ - migrations.AlterField( - model_name='mealplan', - name='pdf', - field=models.FileField(upload_to=helper.path_and_rename), - ), - ] diff --git a/schoolapps/menu/migrations/0004_auto_20181211_1648.py b/schoolapps/menu/migrations/0004_auto_20181211_1648.py deleted file mode 100644 index 1dd555897b21b7909e7190d83d129ae5a1035841..0000000000000000000000000000000000000000 --- a/schoolapps/menu/migrations/0004_auto_20181211_1648.py +++ /dev/null @@ -1,16 +0,0 @@ -# Generated by Django 2.0.7 on 2018-12-11 15:48 - -from django.db import migrations - - -class Migration(migrations.Migration): - dependencies = [ - ('menu', '0003_auto_20181129_1747'), - ] - - operations = [ - migrations.AlterUniqueTogether( - name='mealplan', - unique_together={('calendar_week', 'year')}, - ), - ] diff --git a/schoolapps/menu/migrations/0005_auto_20181211_1743.py b/schoolapps/menu/migrations/0005_auto_20181211_1743.py deleted file mode 100644 index 0947f0d80db4683b4ce0af8d5eeb7d34fcc83965..0000000000000000000000000000000000000000 --- a/schoolapps/menu/migrations/0005_auto_20181211_1743.py +++ /dev/null @@ -1,33 +0,0 @@ -# Generated by Django 2.0.7 on 2018-12-11 16:43 - -from django.db import migrations, models -import helper - - -class Migration(migrations.Migration): - dependencies = [ - ('menu', '0004_auto_20181211_1648'), - ] - - operations = [ - migrations.CreateModel( - name='Menu', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('calendar_week', models.IntegerField(verbose_name='KW')), - ('year', models.IntegerField(verbose_name='Jahr')), - ('pdf', models.FileField(upload_to=helper.path_and_rename, verbose_name='PDF')), - ], - options={ - 'verbose_name': 'Speiseplan', - 'verbose_name_plural': 'Speisepläne', - }, - ), - migrations.DeleteModel( - name='MealPlan', - ), - migrations.AlterUniqueTogether( - name='menu', - unique_together={('calendar_week', 'year')}, - ), - ] diff --git a/schoolapps/support/migrations/0001_initial.py b/schoolapps/support/migrations/0001_initial.py index a4552536d56db9ce75aaf4a42cfd691d6ab1e306..1bd02efd702e0e94b79cf971868280dd91c30a9e 100644 --- a/schoolapps/support/migrations/0001_initial.py +++ b/schoolapps/support/migrations/0001_initial.py @@ -1,4 +1,4 @@ -# Generated by Django 2.1.5 on 2019-01-20 15:39 +# Generated by Django 2.2.1 on 2019-05-29 15:05 from django.db import migrations, models diff --git a/schoolapps/support/migrations/0002_auto_20190120_1640.py b/schoolapps/support/migrations/0002_auto_20190120_1640.py deleted file mode 100644 index 703fc14c1c80404eddc5540daea1ecce08f8cd71..0000000000000000000000000000000000000000 --- a/schoolapps/support/migrations/0002_auto_20190120_1640.py +++ /dev/null @@ -1,17 +0,0 @@ -# Generated by Django 2.1.5 on 2019-01-20 15:40 - -from django.db import migrations - - -class Migration(migrations.Migration): - dependencies = [ - ('support', '0001_initial'), - ] - - operations = [ - migrations.AlterModelOptions( - name='support', - options={'permissions': (('use_rebus', 'Can use REBUS'), ('send_feedback', 'Can send feedback'), - ('can_edit_support_settings', 'Can edit support settings'))}, - ), - ] diff --git a/schoolapps/support/migrations/0003_auto_20190120_1642.py b/schoolapps/support/migrations/0003_auto_20190120_1642.py deleted file mode 100644 index a78f349d4780c4dcc9b468079064d5d643726880..0000000000000000000000000000000000000000 --- a/schoolapps/support/migrations/0003_auto_20190120_1642.py +++ /dev/null @@ -1,16 +0,0 @@ -# Generated by Django 2.1.5 on 2019-01-20 15:42 - -from django.db import migrations - - -class Migration(migrations.Migration): - dependencies = [ - ('support', '0002_auto_20190120_1640'), - ] - - operations = [ - migrations.AlterModelOptions( - name='support', - options={'permissions': (('use_rebus', 'Can use REBUS'), ('send_feedback', 'Can send feedback'))}, - ), - ] diff --git a/schoolapps/timetable/failback_view.py b/schoolapps/timetable/failback_view.py new file mode 100644 index 0000000000000000000000000000000000000000..c1a4ac139a933e253cfc5bd7e8c0c8de50e40e6b --- /dev/null +++ b/schoolapps/timetable/failback_view.py @@ -0,0 +1,7 @@ +from django.contrib.auth.decorators import login_required +from django.shortcuts import render + + +@login_required +def failback(request, *args, **kwargs): + return render(request, "timetable/failback.html") diff --git a/schoolapps/timetable/pdf.py b/schoolapps/timetable/pdf.py index 52f8cb8792fccbbd01d4896a7fff410bcc966d1c..d4d39a1ae6f7fe8fbc4de04fdc404070c6f9c8e4 100644 --- a/schoolapps/timetable/pdf.py +++ b/schoolapps/timetable/pdf.py @@ -7,7 +7,7 @@ from django.utils import formats from schoolapps.settings import BASE_DIR # LaTeX constants -from untisconnect.sub import get_header_information +# from untisconnect.sub import get_header_information DIR = os.path.join(BASE_DIR, "static", "common", "logo.png") TEX_HEADER_1 = """\\documentclass[11pt]{article} diff --git a/schoolapps/timetable/templates/timetable/failback.html b/schoolapps/timetable/templates/timetable/failback.html new file mode 100755 index 0000000000000000000000000000000000000000..b68dbeed2525673e4f40f2daa369c08280054ef2 --- /dev/null +++ b/schoolapps/timetable/templates/timetable/failback.html @@ -0,0 +1,8 @@ +{% include 'partials/header.html' %} + +<main> + <h3>Die Stundenpläne sind aktuell noch nicht einsehbar.</h3> + +</main> + +{% include 'partials/footer.html' %} diff --git a/schoolapps/timetable/urls.py b/schoolapps/timetable/urls.py index 61eb454ca4df89d46680baf71cc59a56e20607d2..aac4d06f00dbdc42d5082b32d9b883a88e61e336 100755 --- a/schoolapps/timetable/urls.py +++ b/schoolapps/timetable/urls.py @@ -1,17 +1,39 @@ from django.urls import path -from . import views +from untisconnect.models import Terms -urlpatterns = [ - path('', views.all, name='timetable_admin_all'), - path('my', views.my_plan, name='timetable_my_plan'), - path('my/<int:year>/<int:month>/<int:day>/', views.my_plan, name='timetable_my_plan'), - path('quick/', views.quicklaunch, name='timetable_quicklaunch'), - # plan_type = ["teacher", "class", "room"] - path('<str:plan_type>/<int:plan_id>', views.plan, name='timetable_smart_plan'), - path('<str:plan_type>/<int:plan_id>/<str:regular>', views.plan, name='timetable_regular_plan'), - path('<str:plan_type>/<int:plan_id>/<int:year>/<int:calendar_week>', views.plan, - name='timetable_smart_plan_week'), - path('substitutions/', views.substitutions, name='timetable_substitutions'), - path('substitutions/<int:year>/<int:month>/<int:day>/', views.substitutions, name='timetable_substitutions_date'), - path('class.pdf', views.sub_pdf, name="timetable_substitutions_pdf") -] +try: + from . import views + + urlpatterns = [ + path('', views.all, name='timetable_admin_all'), + path('my', views.my_plan, name='timetable_my_plan'), + path('my/<int:year>/<int:month>/<int:day>/', views.my_plan, name='timetable_my_plan'), + path('quick/', views.quicklaunch, name='timetable_quicklaunch'), + # plan_type = ["teacher", "class", "room"] + path('<str:plan_type>/<int:plan_id>', views.plan, name='timetable_smart_plan'), + path('<str:plan_type>/<int:plan_id>/<str:regular>', views.plan, name='timetable_regular_plan'), + path('<str:plan_type>/<int:plan_id>/<int:year>/<int:calendar_week>', views.plan, + name='timetable_smart_plan_week'), + path('substitutions/', views.substitutions, name='timetable_substitutions'), + path('substitutions/<int:year>/<int:month>/<int:day>/', views.substitutions, + name='timetable_substitutions_date'), + path('class.pdf', views.sub_pdf, name="timetable_substitutions_pdf") + ] + +except Terms.DoesNotExist: + from . import failback_view + + urlpatterns = [ + path('', failback_view.failback, name='timetable_admin_all'), + path('my', failback_view.failback, name='timetable_my_plan'), + path('my/<int:year>/<int:month>/<int:day>/', failback_view.failback, name='timetable_my_plan'), + path('quick/', failback_view.failback, name='timetable_quicklaunch'), + path('<str:plan_type>/<int:plan_id>', failback_view.failback, name='timetable_smart_plan'), + path('<str:plan_type>/<int:plan_id>/<str:regular>', failback_view.failback, name='timetable_regular_plan'), + path('<str:plan_type>/<int:plan_id>/<int:year>/<int:calendar_week>', failback_view.failback, + name='timetable_smart_plan_week'), + path('substitutions/', failback_view.failback, name='timetable_substitutions'), + path('substitutions/<int:year>/<int:month>/<int:day>/', failback_view.failback, + name='timetable_substitutions_date'), + path('class.pdf', failback_view.failback, name="timetable_substitutions_pdf") + ]