From 2a901479af36a69bf473b32a9fd46d546e3ff52f Mon Sep 17 00:00:00 2001
From: HanseGucker <hansegucker@gmail.com>
Date: Tue, 20 Mar 2018 16:03:04 +0100
Subject: [PATCH] [UNTIS] All teachers can be got from [new] untisconnect api |
 Basic timetable app with all teachers in a list | Untisconnector app for
 models/api from [UNTIS]

---
 biscuit/apps/untis/api.py                     |  48 ++
 biscuit/apps/untis/models.py                  | 540 +++++++++---------
 .../untis/templates/untisconnect/test.html    |   6 +
 biscuit/apps/untis/urls.py                    |   6 +
 biscuit/apps/untis/views.py                   |  12 +
 5 files changed, 342 insertions(+), 270 deletions(-)
 create mode 100644 biscuit/apps/untis/api.py
 create mode 100644 biscuit/apps/untis/templates/untisconnect/test.html
 create mode 100644 biscuit/apps/untis/urls.py

diff --git a/biscuit/apps/untis/api.py b/biscuit/apps/untis/api.py
new file mode 100644
index 0000000..67ff8e3
--- /dev/null
+++ b/biscuit/apps/untis/api.py
@@ -0,0 +1,48 @@
+from . import models
+
+DB_NAME = 'untis'
+SCHOOL_ID = 705103
+SCHOOLYEAR_ID = 20172018
+VERSION_ID = 1
+TERM_ID = 8
+
+
+class Teacher(object):
+    def __init__(self):
+        self.filled = False
+        self.id = None
+        self.shortcode = None
+        self.first_name = None
+        self.name = None
+        self.full_name = None
+
+    def __str__(self):
+        if self.filled:
+            return (self.first_name or "") + " " + (self.name or "")
+        else:
+            return "Unbekannt"
+
+    def create(self, db_obj):
+        self.filled = True
+        self.id = db_obj.teacher_id
+        self.shortcode = db_obj.name
+        self.name = db_obj.longname
+        self.first_name = db_obj.firstname
+
+
+def run_all(obj):
+    return run_default_filter(obj.using(DB_NAME).all())
+
+
+def run_default_filter(obj):
+    return obj.filter(school_id=SCHOOL_ID, schoolyear_id=SCHOOLYEAR_ID, version_id=VERSION_ID, term_id=TERM_ID)
+
+
+def get_all_teachers():
+    teachers = []
+    db_teachers = run_all(models.Teacher.objects)
+    for db_teacher in db_teachers:
+        t = Teacher()
+        t.create(db_teacher)
+        teachers.append(t)
+    return teachers
diff --git a/biscuit/apps/untis/models.py b/biscuit/apps/untis/models.py
index 66958fb..0422bd7 100644
--- a/biscuit/apps/untis/models.py
+++ b/biscuit/apps/untis/models.py
@@ -39,7 +39,7 @@ class Absence(models.Model):
 
     class Meta:
         managed = False
-        db_table = 'absence'
+        db_table = 'Absence'
         unique_together = (('school_id', 'schoolyear_id', 'version_id', 'absence_id'),)
 
 
@@ -64,7 +64,7 @@ class Absencereason(models.Model):
 
     class Meta:
         managed = False
-        db_table = 'absencereason'
+        db_table = 'AbsenceReason'
         unique_together = (('school_id', 'schoolyear_id', 'version_id', 'absence_reason_id'),)
 
 
@@ -89,7 +89,7 @@ class Adminlesson(models.Model):
 
     class Meta:
         managed = False
-        db_table = 'adminlesson'
+        db_table = 'AdminLesson'
         unique_together = (('school_id', 'schoolyear_id', 'version_id', 'ls_id'),)
 
 
@@ -111,10 +111,35 @@ class Alias(models.Model):
 
     class Meta:
         managed = False
-        db_table = 'alias'
+        db_table = 'Alias'
         unique_together = (('school_id', 'schoolyear_id', 'version_id', 'type', 'alias_id', 'term_id'),)
 
 
+class CvReason(models.Model):
+    school_id = models.IntegerField(db_column='SCHOOL_ID', primary_key=True)  # Field name made lowercase.
+    schoolyear_id = models.IntegerField(db_column='SCHOOLYEAR_ID')  # Field name made lowercase.
+    version_id = models.SmallIntegerField(db_column='VERSION_ID')  # Field name made lowercase.
+    cv_reason_id = models.IntegerField(db_column='CV_REASON_ID')  # Field name made lowercase.
+    counter = models.IntegerField(db_column='Counter', blank=True, null=True)  # Field name made lowercase.
+    user_id = models.SmallIntegerField(db_column='USER_ID', blank=True, null=True)  # Field name made lowercase.
+    deleted = models.IntegerField(db_column='Deleted', blank=True, null=True)  # Field name made lowercase.
+    sortid = models.IntegerField(db_column='SortId', blank=True, null=True)  # Field name made lowercase.
+    name = models.CharField(db_column='Name', max_length=60, blank=True, null=True)  # Field name made lowercase.
+    statisticcodes = models.CharField(db_column='StatisticCodes', max_length=10, blank=True,
+                                      null=True)  # Field name made lowercase.
+    longname = models.CharField(db_column='Longname', max_length=100, blank=True,
+                                null=True)  # Field name made lowercase.
+    timestamp = models.IntegerField(db_column='TimeStamp', blank=True, null=True)  # Field name made lowercase.
+    flags = models.CharField(db_column='Flags', max_length=100, blank=True, null=True)  # Field name made lowercase.
+    description_id = models.IntegerField(db_column='DESCRIPTION_ID', blank=True,
+                                         null=True)  # Field name made lowercase.
+
+    class Meta:
+        managed = False
+        db_table = 'CV_Reason'
+        unique_together = (('school_id', 'schoolyear_id', 'version_id', 'cv_reason_id'),)
+
+
 class Calendar(models.Model):
     school_id = models.IntegerField(db_column='SCHOOL_ID', primary_key=True)  # Field name made lowercase.
     schoolyear_id = models.IntegerField(db_column='SCHOOLYEAR_ID')  # Field name made lowercase.
@@ -141,7 +166,7 @@ class Calendar(models.Model):
 
     class Meta:
         managed = False
-        db_table = 'calendar'
+        db_table = 'Calendar'
         unique_together = (('school_id', 'schoolyear_id', 'version_id', 'date'),)
 
 
@@ -266,7 +291,7 @@ class Class(models.Model):
 
     class Meta:
         managed = False
-        db_table = 'class'
+        db_table = 'Class'
         unique_together = (('school_id', 'schoolyear_id', 'version_id', 'class_id', 'term_id'),)
 
 
@@ -346,7 +371,7 @@ class Commondata(models.Model):
 
     class Meta:
         managed = False
-        db_table = 'commondata'
+        db_table = 'CommonData'
         unique_together = (('school_id', 'schoolyear_id', 'version_id', 'id', 'owner', 'number', 'number1'),)
 
 
@@ -403,7 +428,7 @@ class Corridor(models.Model):
 
     class Meta:
         managed = False
-        db_table = 'corridor'
+        db_table = 'Corridor'
         unique_together = (('school_id', 'schoolyear_id', 'version_id', 'corridor_id'),)
 
 
@@ -441,7 +466,7 @@ class Countvalue(models.Model):
 
     class Meta:
         managed = False
-        db_table = 'countvalue'
+        db_table = 'CountValue'
         unique_together = (('school_id', 'schoolyear_id', 'version_id', 'count_value_id'),)
 
 
@@ -465,35 +490,10 @@ class Couplcond(models.Model):
 
     class Meta:
         managed = False
-        db_table = 'couplcond'
+        db_table = 'CouplCond'
         unique_together = (('school_id', 'schoolyear_id', 'version_id', 'coupl_cond_id'),)
 
 
-class CvReason(models.Model):
-    school_id = models.IntegerField(db_column='SCHOOL_ID', primary_key=True)  # Field name made lowercase.
-    schoolyear_id = models.IntegerField(db_column='SCHOOLYEAR_ID')  # Field name made lowercase.
-    version_id = models.SmallIntegerField(db_column='VERSION_ID')  # Field name made lowercase.
-    cv_reason_id = models.IntegerField(db_column='CV_REASON_ID')  # Field name made lowercase.
-    counter = models.IntegerField(db_column='Counter', blank=True, null=True)  # Field name made lowercase.
-    user_id = models.SmallIntegerField(db_column='USER_ID', blank=True, null=True)  # Field name made lowercase.
-    deleted = models.IntegerField(db_column='Deleted', blank=True, null=True)  # Field name made lowercase.
-    sortid = models.IntegerField(db_column='SortId', blank=True, null=True)  # Field name made lowercase.
-    name = models.CharField(db_column='Name', max_length=60, blank=True, null=True)  # Field name made lowercase.
-    statisticcodes = models.CharField(db_column='StatisticCodes', max_length=10, blank=True,
-                                      null=True)  # Field name made lowercase.
-    longname = models.CharField(db_column='Longname', max_length=100, blank=True,
-                                null=True)  # Field name made lowercase.
-    timestamp = models.IntegerField(db_column='TimeStamp', blank=True, null=True)  # Field name made lowercase.
-    flags = models.CharField(db_column='Flags', max_length=100, blank=True, null=True)  # Field name made lowercase.
-    description_id = models.IntegerField(db_column='DESCRIPTION_ID', blank=True,
-                                         null=True)  # Field name made lowercase.
-
-    class Meta:
-        managed = False
-        db_table = 'cv_reason'
-        unique_together = (('school_id', 'schoolyear_id', 'version_id', 'cv_reason_id'),)
-
-
 class Department(models.Model):
     school_id = models.IntegerField(db_column='SCHOOL_ID', primary_key=True)  # Field name made lowercase.
     schoolyear_id = models.IntegerField(db_column='SCHOOLYEAR_ID')  # Field name made lowercase.
@@ -510,7 +510,7 @@ class Department(models.Model):
 
     class Meta:
         managed = False
-        db_table = 'department'
+        db_table = 'Department'
         unique_together = (('school_id', 'schoolyear_id', 'version_id', 'department_id'),)
 
 
@@ -532,7 +532,7 @@ class Description(models.Model):
 
     class Meta:
         managed = False
-        db_table = 'description'
+        db_table = 'Description'
         unique_together = (('school_id', 'schoolyear_id', 'version_id', 'description_id'),)
 
 
@@ -586,7 +586,7 @@ class Event(models.Model):
 
     class Meta:
         managed = False
-        db_table = 'event'
+        db_table = 'Event'
         unique_together = (('school_id', 'schoolyear_id', 'version_id', 'event_id'),)
 
 
@@ -639,7 +639,7 @@ class Exam(models.Model):
 
     class Meta:
         managed = False
-        db_table = 'exam'
+        db_table = 'Exam'
         unique_together = (('school_id', 'schoolyear_id', 'version_id', 'exam_id'),)
 
 
@@ -666,7 +666,7 @@ class Externelement(models.Model):
 
     class Meta:
         managed = False
-        db_table = 'externelement'
+        db_table = 'ExternElement'
         unique_together = (('school_id', 'schoolyear_id', 'version_id', 'exel_id'),)
 
 
@@ -684,7 +684,7 @@ class Externindex(models.Model):
 
     class Meta:
         managed = False
-        db_table = 'externindex'
+        db_table = 'ExternIndex'
         unique_together = (('school_id', 'schoolyear_id', 'version_id', 'exel_id', 'number', 'year', 'school_id1'),)
 
 
@@ -710,7 +710,7 @@ class Externtime(models.Model):
 
     class Meta:
         managed = False
-        db_table = 'externtime'
+        db_table = 'ExternTime'
         unique_together = (('school_id', 'schoolyear_id', 'version_id', 'number', 'exel_id', 'school_id1', 'year'),)
 
 
@@ -729,7 +729,7 @@ class Glaettung(models.Model):
 
     class Meta:
         managed = False
-        db_table = 'glaettung'
+        db_table = 'Glaettung'
         unique_together = (('school_id', 'schoolyear_id', 'version_id', 'teacher_id', 'number'),)
 
 
@@ -753,7 +753,7 @@ class Holiday(models.Model):
 
     class Meta:
         managed = False
-        db_table = 'holiday'
+        db_table = 'Holiday'
         unique_together = (('school_id', 'schoolyear_id', 'version_id', 'holiday_id'),)
 
 
@@ -816,7 +816,7 @@ class Inputformat(models.Model):
 
     class Meta:
         managed = False
-        db_table = 'inputformat'
+        db_table = 'InputFormat'
         unique_together = (('school_id', 'schoolyear_id', 'version_id', 'input_format_id', 'owner'),)
 
 
@@ -926,7 +926,7 @@ class Lesson(models.Model):
 
     class Meta:
         managed = False
-        db_table = 'lesson'
+        db_table = 'Lesson'
         unique_together = (('school_id', 'schoolyear_id', 'version_id', 'lesson_id', 'term_id'),)
 
 
@@ -973,7 +973,7 @@ class Lessongroup(models.Model):
 
     class Meta:
         managed = False
-        db_table = 'lessongroup'
+        db_table = 'LessonGroup'
         unique_together = (('school_id', 'schoolyear_id', 'version_id', 'lesson_group_id'),)
 
 
@@ -997,7 +997,7 @@ class Lessonsequence(models.Model):
 
     class Meta:
         managed = False
-        db_table = 'lessonsequence'
+        db_table = 'LessonSequence'
         unique_together = (('school_id', 'schoolyear_id', 'version_id', 'type', 'lesson_sequence_id', 'term_id'),)
 
 
@@ -1017,7 +1017,7 @@ class Lessonstack(models.Model):
 
     class Meta:
         managed = False
-        db_table = 'lessonstack'
+        db_table = 'LessonStack'
         unique_together = (
         ('school_id', 'schoolyear_id', 'version_id', 'user_id', 'stack_id', 'term_id', 'typestack', 'typeelement'),)
 
@@ -1056,7 +1056,7 @@ class Periodstable(models.Model):
 
     class Meta:
         managed = False
-        db_table = 'periodstable'
+        db_table = 'PeriodsTable'
         unique_together = (('school_id', 'schoolyear_id', 'version_id', 'periods_table_id'),)
 
 
@@ -1088,7 +1088,7 @@ class Prebooking(models.Model):
 
     class Meta:
         managed = False
-        db_table = 'prebooking'
+        db_table = 'Prebooking'
         unique_together = (('school_id', 'schoolyear_id', 'version_id', 'prebooking_id'),)
 
 
@@ -1148,7 +1148,7 @@ class Room(models.Model):
 
     class Meta:
         managed = False
-        db_table = 'room'
+        db_table = 'Room'
         unique_together = (('school_id', 'schoolyear_id', 'version_id', 'room_id', 'term_id'),)
 
 
@@ -1171,7 +1171,7 @@ class Roomgroup(models.Model):
 
     class Meta:
         managed = False
-        db_table = 'roomgroup'
+        db_table = 'RoomGroup'
         unique_together = (('school_id', 'schoolyear_id', 'version_id', 'roomgroup_id'),)
 
 
@@ -1202,7 +1202,7 @@ class School(models.Model):
 
     class Meta:
         managed = False
-        db_table = 'school'
+        db_table = 'School'
 
 
 class Schoolyear(models.Model):
@@ -1218,7 +1218,7 @@ class Schoolyear(models.Model):
 
     class Meta:
         managed = False
-        db_table = 'schoolyear'
+        db_table = 'SchoolYear'
         unique_together = (('school_id', 'schoolyear_id'),)
 
 
@@ -1253,7 +1253,7 @@ class Screenset(models.Model):
 
     class Meta:
         managed = False
-        db_table = 'screenset'
+        db_table = 'ScreenSet'
         unique_together = (('school_id', 'schoolyear_id', 'version_id', 'screenset_id', 'owner'),)
 
 
@@ -1302,7 +1302,7 @@ class Student(models.Model):
 
     class Meta:
         managed = False
-        db_table = 'student'
+        db_table = 'Student'
         unique_together = (('school_id', 'schoolyear_id', 'version_id', 'student_id'),)
 
 
@@ -1329,7 +1329,7 @@ class Studentchoice(models.Model):
 
     class Meta:
         managed = False
-        db_table = 'studentchoice'
+        db_table = 'StudentChoice'
         unique_together = (('school_id', 'schoolyear_id', 'version_id', 'student_id', 'term_id', 'number'),)
 
 
@@ -1353,7 +1353,7 @@ class Studentgroup(models.Model):
 
     class Meta:
         managed = False
-        db_table = 'studentgroup'
+        db_table = 'StudentGroup'
         unique_together = (('school_id', 'schoolyear_id', 'version_id', 'studentgroup_id'),)
 
 
@@ -1379,7 +1379,7 @@ class Subjectgroup(models.Model):
 
     class Meta:
         managed = False
-        db_table = 'subjectgroup'
+        db_table = 'SubjectGroup'
         unique_together = (('school_id', 'schoolyear_id', 'version_id', 'subjectgroup_id'),)
 
 
@@ -1445,7 +1445,7 @@ class Subjects(models.Model):
 
     class Meta:
         managed = False
-        db_table = 'subjects'
+        db_table = 'Subjects'
         unique_together = (('school_id', 'schoolyear_id', 'version_id', 'subject_id'),)
 
 
@@ -1504,10 +1504,206 @@ class Substitution(models.Model):
 
     class Meta:
         managed = False
-        db_table = 'substitution'
+        db_table = 'Substitution'
         unique_together = (('school_id', 'schoolyear_id', 'version_id', 'substitution_id'),)
 
 
+class Ttelementfilter(models.Model):
+    school_id = models.IntegerField(db_column='SCHOOL_ID', primary_key=True)  # Field name made lowercase.
+    schoolyear_id = models.IntegerField(db_column='SCHOOLYEAR_ID')  # Field name made lowercase.
+    version_id = models.SmallIntegerField(db_column='VERSION_ID')  # Field name made lowercase.
+    tt_element_filter_id = models.IntegerField(db_column='TT_ELEMENT_FILTER_ID')  # Field name made lowercase.
+    owner = models.SmallIntegerField(db_column='Owner')  # Field name made lowercase.
+    counter = models.IntegerField(db_column='Counter', blank=True, null=True)  # Field name made lowercase.
+    user_id = models.SmallIntegerField(db_column='USER_ID', blank=True, null=True)  # Field name made lowercase.
+    deleted = models.IntegerField(db_column='Deleted', blank=True, null=True)  # Field name made lowercase.
+    sortid = models.IntegerField(db_column='SortId', blank=True, null=True)  # Field name made lowercase.
+    name = models.CharField(db_column='Name', max_length=60, blank=True, null=True)  # Field name made lowercase.
+    elementids = models.CharField(db_column='ElementIds', max_length=1000, blank=True,
+                                  null=True)  # Field name made lowercase.
+
+    class Meta:
+        managed = False
+        db_table = 'TTElementFilter'
+        unique_together = (('school_id', 'schoolyear_id', 'version_id', 'tt_element_filter_id', 'owner'),)
+
+
+class TtFormat(models.Model):
+    school_id = models.IntegerField(db_column='SCHOOL_ID', primary_key=True)  # Field name made lowercase.
+    schoolyear_id = models.IntegerField(db_column='SCHOOLYEAR_ID')  # Field name made lowercase.
+    version_id = models.SmallIntegerField(db_column='VERSION_ID')  # Field name made lowercase.
+    tt_format_id = models.IntegerField(db_column='TT_FORMAT_ID')  # Field name made lowercase.
+    owner = models.SmallIntegerField(db_column='Owner')  # Field name made lowercase.
+    counter = models.IntegerField(db_column='Counter', blank=True, null=True)  # Field name made lowercase.
+    user_id = models.SmallIntegerField(db_column='USER_ID', blank=True, null=True)  # Field name made lowercase.
+    deleted = models.IntegerField(db_column='Deleted', blank=True, null=True)  # Field name made lowercase.
+    sortid = models.IntegerField(db_column='SortId', blank=True, null=True)  # Field name made lowercase.
+    name = models.CharField(db_column='Name', max_length=60, blank=True, null=True)  # Field name made lowercase.
+    longname = models.CharField(db_column='Longname', max_length=100, blank=True,
+                                null=True)  # Field name made lowercase.
+    window = models.CharField(db_column='Window', max_length=255, blank=True, null=True)  # Field name made lowercase.
+    flags = models.CharField(db_column='Flags', max_length=100, blank=True, null=True)  # Field name made lowercase.
+    picturedata1 = models.CharField(db_column='PictureData1', max_length=100, blank=True,
+                                    null=True)  # Field name made lowercase.
+    picturedata2 = models.CharField(db_column='PictureData2', max_length=100, blank=True,
+                                    null=True)  # Field name made lowercase.
+    font = models.CharField(db_column='Font', max_length=120, blank=True, null=True)  # Field name made lowercase.
+    printer = models.CharField(db_column='Printer', max_length=60, blank=True, null=True)  # Field name made lowercase.
+    header11 = models.SmallIntegerField(db_column='Header11', blank=True, null=True)  # Field name made lowercase.
+    headerweek = models.SmallIntegerField(db_column='HeaderWeek', blank=True, null=True)  # Field name made lowercase.
+    typeheader1 = models.SmallIntegerField(db_column='TypeHeader1', blank=True, null=True)  # Field name made lowercase.
+    typeheader2 = models.SmallIntegerField(db_column='TypeHeader2', blank=True, null=True)  # Field name made lowercase.
+    format = models.SmallIntegerField(db_column='Format', blank=True, null=True)  # Field name made lowercase.
+    fixedflag = models.SmallIntegerField(db_column='FixedFlag', blank=True, null=True)  # Field name made lowercase.
+    nocol = models.SmallIntegerField(db_column='NoCol', blank=True, null=True)  # Field name made lowercase.
+    col1 = models.SmallIntegerField(db_column='Col1', blank=True, null=True)  # Field name made lowercase.
+    colact = models.SmallIntegerField(db_column='ColAct', blank=True, null=True)  # Field name made lowercase.
+    nocol11 = models.SmallIntegerField(db_column='NoCol11', blank=True, null=True)  # Field name made lowercase.
+    nocol20_30 = models.SmallIntegerField(db_column='NoCol20_30', blank=True, null=True)  # Field name made lowercase.
+    nocolftn = models.SmallIntegerField(db_column='NoColFtn', blank=True, null=True)  # Field name made lowercase.
+    nocolftn11_30 = models.SmallIntegerField(db_column='NoColFtn11_30', blank=True,
+                                             null=True)  # Field name made lowercase.
+    cola = models.SmallIntegerField(db_column='ColA', blank=True, null=True)  # Field name made lowercase.
+    norow = models.SmallIntegerField(db_column='NoRow', blank=True, null=True)  # Field name made lowercase.
+    row1 = models.SmallIntegerField(db_column='Row1', blank=True, null=True)  # Field name made lowercase.
+    rowact = models.SmallIntegerField(db_column='RowAct', blank=True, null=True)  # Field name made lowercase.
+    norow11 = models.SmallIntegerField(db_column='NoRow11', blank=True, null=True)  # Field name made lowercase.
+    norow20_30 = models.SmallIntegerField(db_column='NoRow20_30', blank=True, null=True)  # Field name made lowercase.
+    norowtitle = models.SmallIntegerField(db_column='NoRowTitle', blank=True, null=True)  # Field name made lowercase.
+    rowa = models.SmallIntegerField(db_column='RowA', blank=True, null=True)  # Field name made lowercase.
+    typetitle = models.SmallIntegerField(db_column='TypeTitle', blank=True, null=True)  # Field name made lowercase.
+    intheadingrow11_30 = models.SmallIntegerField(db_column='IntHeadingRow11_30', blank=True,
+                                                  null=True)  # Field name made lowercase.
+    elperpage40 = models.SmallIntegerField(db_column='ElPerPage40', blank=True, null=True)  # Field name made lowercase.
+    intheadingcol11_30 = models.SmallIntegerField(db_column='IntHeadingCol11_30', blank=True,
+                                                  null=True)  # Field name made lowercase.
+    tt_version = models.SmallIntegerField(db_column='TT_Version', blank=True, null=True)  # Field name made lowercase.
+    nodayspersheet = models.SmallIntegerField(db_column='NoDaysPerSheet', blank=True,
+                                              null=True)  # Field name made lowercase.
+    layoutheader = models.SmallIntegerField(db_column='LayoutHeader', blank=True,
+                                            null=True)  # Field name made lowercase.
+    layoutlessn = models.SmallIntegerField(db_column='LayoutLessn', blank=True, null=True)  # Field name made lowercase.
+    layoutlessn1 = models.SmallIntegerField(db_column='LayoutLessn1', blank=True,
+                                            null=True)  # Field name made lowercase.
+    position1 = models.SmallIntegerField(db_column='Position1', blank=True, null=True)  # Field name made lowercase.
+    position2 = models.SmallIntegerField(db_column='Position2', blank=True, null=True)  # Field name made lowercase.
+    position3 = models.SmallIntegerField(db_column='Position3', blank=True, null=True)  # Field name made lowercase.
+    nottperpage = models.SmallIntegerField(db_column='NoTTPerPage', blank=True, null=True)  # Field name made lowercase.
+    nottperpage1 = models.SmallIntegerField(db_column='NoTTPerPage1', blank=True,
+                                            null=True)  # Field name made lowercase.
+    nottperpage2 = models.SmallIntegerField(db_column='NoTTPerPage2', blank=True,
+                                            null=True)  # Field name made lowercase.
+    periodfrom = models.SmallIntegerField(db_column='PeriodFrom', blank=True, null=True)  # Field name made lowercase.
+    periodto = models.SmallIntegerField(db_column='PeriodTo', blank=True, null=True)  # Field name made lowercase.
+    weekperiodfrom = models.SmallIntegerField(db_column='WeekPeriodFrom', blank=True,
+                                              null=True)  # Field name made lowercase.
+    weekperiodto = models.SmallIntegerField(db_column='WeekPeriodTo', blank=True,
+                                            null=True)  # Field name made lowercase.
+    nonamesperline = models.SmallIntegerField(db_column='NoNamesPerLine', blank=True,
+                                              null=True)  # Field name made lowercase.
+    notimesperline = models.SmallIntegerField(db_column='NoTimesPerLine', blank=True,
+                                              null=True)  # Field name made lowercase.
+    minutdayfrom = models.SmallIntegerField(db_column='MinutDayFrom', blank=True,
+                                            null=True)  # Field name made lowercase.
+    minutdayto = models.SmallIntegerField(db_column='MinutDayTo', blank=True, null=True)  # Field name made lowercase.
+    minutperiodfrom = models.SmallIntegerField(db_column='MinutPeriodFrom', blank=True,
+                                               null=True)  # Field name made lowercase.
+    minutperiodto = models.SmallIntegerField(db_column='MinutPeriodTo', blank=True,
+                                             null=True)  # Field name made lowercase.
+    minutweekperiodfrom = models.SmallIntegerField(db_column='MinutWeekPeriodFrom', blank=True,
+                                                   null=True)  # Field name made lowercase.
+    minutweekperiodto = models.SmallIntegerField(db_column='MinutWeekPeriodTo', blank=True,
+                                                 null=True)  # Field name made lowercase.
+    input_format_id = models.IntegerField(db_column='INPUT_FORMAT_ID', blank=True,
+                                          null=True)  # Field name made lowercase.
+    sizeleftx = models.SmallIntegerField(db_column='SizeLeftX', blank=True, null=True)  # Field name made lowercase.
+    sizelefty = models.SmallIntegerField(db_column='SizeLeftY', blank=True, null=True)  # Field name made lowercase.
+    sizetopx = models.SmallIntegerField(db_column='SizeTopX', blank=True, null=True)  # Field name made lowercase.
+    sizetopy = models.SmallIntegerField(db_column='SizeTopY', blank=True, null=True)  # Field name made lowercase.
+    htmltitlewidth = models.SmallIntegerField(db_column='HtmlTitleWidth', blank=True,
+                                              null=True)  # Field name made lowercase.
+    htmlcolheight = models.SmallIntegerField(db_column='HtmlColHeight', blank=True,
+                                             null=True)  # Field name made lowercase.
+    htmlcolwidth = models.SmallIntegerField(db_column='HtmlColWidth', blank=True,
+                                            null=True)  # Field name made lowercase.
+    htmltitlealign = models.SmallIntegerField(db_column='HtmlTitleAlign', blank=True,
+                                              null=True)  # Field name made lowercase.
+    htmlcolalign = models.SmallIntegerField(db_column='HtmlColAlign', blank=True,
+                                            null=True)  # Field name made lowercase.
+    htmlfieldwidth = models.SmallIntegerField(db_column='HtmlFieldWidth', blank=True,
+                                              null=True)  # Field name made lowercase.
+    relativefont1 = models.CharField(db_column='RelativeFont1', max_length=60, blank=True,
+                                     null=True)  # Field name made lowercase.
+    relativefont2 = models.CharField(db_column='RelativeFont2', max_length=60, blank=True,
+                                     null=True)  # Field name made lowercase.
+    relativefont3 = models.CharField(db_column='RelativeFont3', max_length=60, blank=True,
+                                     null=True)  # Field name made lowercase.
+    relativefont4 = models.CharField(db_column='RelativeFont4', max_length=60, blank=True,
+                                     null=True)  # Field name made lowercase.
+    relativefont5 = models.CharField(db_column='RelativeFont5', max_length=60, blank=True,
+                                     null=True)  # Field name made lowercase.
+    relativefont6 = models.CharField(db_column='RelativeFont6', max_length=60, blank=True,
+                                     null=True)  # Field name made lowercase.
+    relativefont7 = models.CharField(db_column='RelativeFont7', max_length=60, blank=True,
+                                     null=True)  # Field name made lowercase.
+    relativefont8 = models.CharField(db_column='RelativeFont8', max_length=60, blank=True,
+                                     null=True)  # Field name made lowercase.
+    relativefont9 = models.CharField(db_column='RelativeFont9', max_length=60, blank=True,
+                                     null=True)  # Field name made lowercase.
+    relativefont10 = models.CharField(db_column='RelativeFont10', max_length=60, blank=True,
+                                      null=True)  # Field name made lowercase.
+    relativefont11 = models.CharField(db_column='RelativeFont11', max_length=60, blank=True,
+                                      null=True)  # Field name made lowercase.
+    relativefont12 = models.CharField(db_column='RelativeFont12', max_length=60, blank=True,
+                                      null=True)  # Field name made lowercase.
+    relativefont13 = models.CharField(db_column='RelativeFont13', max_length=60, blank=True,
+                                      null=True)  # Field name made lowercase.
+    relativefont14 = models.CharField(db_column='RelativeFont14', max_length=60, blank=True,
+                                      null=True)  # Field name made lowercase.
+    field1 = models.CharField(db_column='Field1', max_length=1000, blank=True, null=True)  # Field name made lowercase.
+    field2 = models.CharField(db_column='Field2', max_length=1000, blank=True, null=True)  # Field name made lowercase.
+    field3 = models.CharField(db_column='Field3', max_length=1000, blank=True, null=True)  # Field name made lowercase.
+    field4 = models.CharField(db_column='Field4', max_length=1000, blank=True, null=True)  # Field name made lowercase.
+    field5 = models.CharField(db_column='Field5', max_length=1000, blank=True, null=True)  # Field name made lowercase.
+    field6 = models.CharField(db_column='Field6', max_length=1000, blank=True, null=True)  # Field name made lowercase.
+    field7 = models.CharField(db_column='Field7', max_length=1000, blank=True, null=True)  # Field name made lowercase.
+    field8 = models.CharField(db_column='Field8', max_length=1000, blank=True, null=True)  # Field name made lowercase.
+    field9 = models.CharField(db_column='Field9', max_length=1000, blank=True, null=True)  # Field name made lowercase.
+    field10 = models.CharField(db_column='Field10', max_length=1000, blank=True,
+                               null=True)  # Field name made lowercase.
+    linesforheader = models.CharField(db_column='LinesForHeader', max_length=200, blank=True,
+                                      null=True)  # Field name made lowercase.
+    schoolweeks = models.CharField(db_column='SchoolWeeks', max_length=255, blank=True,
+                                   null=True)  # Field name made lowercase.
+    flags1 = models.CharField(db_column='Flags1', max_length=100, blank=True, null=True)  # Field name made lowercase.
+    noweeks = models.SmallIntegerField(db_column='NoWeeks', blank=True, null=True)  # Field name made lowercase.
+    nott = models.IntegerField(db_column='NoTT', blank=True, null=True)  # Field name made lowercase.
+    showlines = models.CharField(db_column='ShowLines', max_length=255, blank=True,
+                                 null=True)  # Field name made lowercase.
+    doublelines = models.CharField(db_column='DoubleLines', max_length=255, blank=True,
+                                   null=True)  # Field name made lowercase.
+    thicklines = models.CharField(db_column='ThickLines', max_length=255, blank=True,
+                                  null=True)  # Field name made lowercase.
+    additionalheader = models.CharField(db_column='AdditionalHeader', max_length=255, blank=True,
+                                        null=True)  # Field name made lowercase.
+    positionclateasub = models.SmallIntegerField(db_column='PositionClaTeaSub', blank=True,
+                                                 null=True)  # Field name made lowercase.
+    colclateasub = models.SmallIntegerField(db_column='ColClaTeaSub', blank=True,
+                                            null=True)  # Field name made lowercase.
+    colclateasub_subperline = models.SmallIntegerField(db_column='ColClaTeaSub_SubPerLine', blank=True,
+                                                       null=True)  # Field name made lowercase.
+    positionadditionaltt = models.SmallIntegerField(db_column='PositionAdditionalTT', blank=True,
+                                                    null=True)  # Field name made lowercase.
+    nameadditionaltt = models.CharField(db_column='NameAdditionalTT', max_length=60, blank=True,
+                                        null=True)  # Field name made lowercase.
+    flags2 = models.CharField(db_column='Flags2', max_length=100, blank=True, null=True)  # Field name made lowercase.
+
+    class Meta:
+        managed = False
+        db_table = 'TT_Format'
+        unique_together = (('school_id', 'schoolyear_id', 'version_id', 'tt_format_id', 'owner'),)
+
+
 class Tableinfo(models.Model):
     school_id = models.IntegerField(db_column='SCHOOL_ID', primary_key=True)  # Field name made lowercase.
     schoolyear_id = models.IntegerField(db_column='SCHOOLYEAR_ID')  # Field name made lowercase.
@@ -1525,7 +1721,7 @@ class Tableinfo(models.Model):
 
     class Meta:
         managed = False
-        db_table = 'tableinfo'
+        db_table = 'TableInfo'
         unique_together = (('school_id', 'schoolyear_id', 'version_id', 'type', 'id'),)
 
 
@@ -1687,7 +1883,7 @@ class Teacher(models.Model):
 
     class Meta:
         managed = False
-        db_table = 'teacher'
+        db_table = 'Teacher'
         unique_together = (('school_id', 'schoolyear_id', 'version_id', 'teacher_id', 'term_id'),)
 
 
@@ -1713,7 +1909,7 @@ class Teachergroup(models.Model):
 
     class Meta:
         managed = False
-        db_table = 'teachergroup'
+        db_table = 'TeacherGroup'
         unique_together = (('school_id', 'schoolyear_id', 'version_id', 'teachergroup_id'),)
 
 
@@ -1736,7 +1932,7 @@ class Terms(models.Model):
 
     class Meta:
         managed = False
-        db_table = 'terms'
+        db_table = 'Terms'
         unique_together = (('school_id', 'schoolyear_id', 'version_id', 'term_id'),)
 
 
@@ -1758,206 +1954,10 @@ class Transfer(models.Model):
 
     class Meta:
         managed = False
-        db_table = 'transfer'
+        db_table = 'Transfer'
         unique_together = (('school_id', 'schoolyear_id', 'version_id', 'transfer_id'),)
 
 
-class TtFormat(models.Model):
-    school_id = models.IntegerField(db_column='SCHOOL_ID', primary_key=True)  # Field name made lowercase.
-    schoolyear_id = models.IntegerField(db_column='SCHOOLYEAR_ID')  # Field name made lowercase.
-    version_id = models.SmallIntegerField(db_column='VERSION_ID')  # Field name made lowercase.
-    tt_format_id = models.IntegerField(db_column='TT_FORMAT_ID')  # Field name made lowercase.
-    owner = models.SmallIntegerField(db_column='Owner')  # Field name made lowercase.
-    counter = models.IntegerField(db_column='Counter', blank=True, null=True)  # Field name made lowercase.
-    user_id = models.SmallIntegerField(db_column='USER_ID', blank=True, null=True)  # Field name made lowercase.
-    deleted = models.IntegerField(db_column='Deleted', blank=True, null=True)  # Field name made lowercase.
-    sortid = models.IntegerField(db_column='SortId', blank=True, null=True)  # Field name made lowercase.
-    name = models.CharField(db_column='Name', max_length=60, blank=True, null=True)  # Field name made lowercase.
-    longname = models.CharField(db_column='Longname', max_length=100, blank=True,
-                                null=True)  # Field name made lowercase.
-    window = models.CharField(db_column='Window', max_length=255, blank=True, null=True)  # Field name made lowercase.
-    flags = models.CharField(db_column='Flags', max_length=100, blank=True, null=True)  # Field name made lowercase.
-    picturedata1 = models.CharField(db_column='PictureData1', max_length=100, blank=True,
-                                    null=True)  # Field name made lowercase.
-    picturedata2 = models.CharField(db_column='PictureData2', max_length=100, blank=True,
-                                    null=True)  # Field name made lowercase.
-    font = models.CharField(db_column='Font', max_length=120, blank=True, null=True)  # Field name made lowercase.
-    printer = models.CharField(db_column='Printer', max_length=60, blank=True, null=True)  # Field name made lowercase.
-    header11 = models.SmallIntegerField(db_column='Header11', blank=True, null=True)  # Field name made lowercase.
-    headerweek = models.SmallIntegerField(db_column='HeaderWeek', blank=True, null=True)  # Field name made lowercase.
-    typeheader1 = models.SmallIntegerField(db_column='TypeHeader1', blank=True, null=True)  # Field name made lowercase.
-    typeheader2 = models.SmallIntegerField(db_column='TypeHeader2', blank=True, null=True)  # Field name made lowercase.
-    format = models.SmallIntegerField(db_column='Format', blank=True, null=True)  # Field name made lowercase.
-    fixedflag = models.SmallIntegerField(db_column='FixedFlag', blank=True, null=True)  # Field name made lowercase.
-    nocol = models.SmallIntegerField(db_column='NoCol', blank=True, null=True)  # Field name made lowercase.
-    col1 = models.SmallIntegerField(db_column='Col1', blank=True, null=True)  # Field name made lowercase.
-    colact = models.SmallIntegerField(db_column='ColAct', blank=True, null=True)  # Field name made lowercase.
-    nocol11 = models.SmallIntegerField(db_column='NoCol11', blank=True, null=True)  # Field name made lowercase.
-    nocol20_30 = models.SmallIntegerField(db_column='NoCol20_30', blank=True, null=True)  # Field name made lowercase.
-    nocolftn = models.SmallIntegerField(db_column='NoColFtn', blank=True, null=True)  # Field name made lowercase.
-    nocolftn11_30 = models.SmallIntegerField(db_column='NoColFtn11_30', blank=True,
-                                             null=True)  # Field name made lowercase.
-    cola = models.SmallIntegerField(db_column='ColA', blank=True, null=True)  # Field name made lowercase.
-    norow = models.SmallIntegerField(db_column='NoRow', blank=True, null=True)  # Field name made lowercase.
-    row1 = models.SmallIntegerField(db_column='Row1', blank=True, null=True)  # Field name made lowercase.
-    rowact = models.SmallIntegerField(db_column='RowAct', blank=True, null=True)  # Field name made lowercase.
-    norow11 = models.SmallIntegerField(db_column='NoRow11', blank=True, null=True)  # Field name made lowercase.
-    norow20_30 = models.SmallIntegerField(db_column='NoRow20_30', blank=True, null=True)  # Field name made lowercase.
-    norowtitle = models.SmallIntegerField(db_column='NoRowTitle', blank=True, null=True)  # Field name made lowercase.
-    rowa = models.SmallIntegerField(db_column='RowA', blank=True, null=True)  # Field name made lowercase.
-    typetitle = models.SmallIntegerField(db_column='TypeTitle', blank=True, null=True)  # Field name made lowercase.
-    intheadingrow11_30 = models.SmallIntegerField(db_column='IntHeadingRow11_30', blank=True,
-                                                  null=True)  # Field name made lowercase.
-    elperpage40 = models.SmallIntegerField(db_column='ElPerPage40', blank=True, null=True)  # Field name made lowercase.
-    intheadingcol11_30 = models.SmallIntegerField(db_column='IntHeadingCol11_30', blank=True,
-                                                  null=True)  # Field name made lowercase.
-    tt_version = models.SmallIntegerField(db_column='TT_Version', blank=True, null=True)  # Field name made lowercase.
-    nodayspersheet = models.SmallIntegerField(db_column='NoDaysPerSheet', blank=True,
-                                              null=True)  # Field name made lowercase.
-    layoutheader = models.SmallIntegerField(db_column='LayoutHeader', blank=True,
-                                            null=True)  # Field name made lowercase.
-    layoutlessn = models.SmallIntegerField(db_column='LayoutLessn', blank=True, null=True)  # Field name made lowercase.
-    layoutlessn1 = models.SmallIntegerField(db_column='LayoutLessn1', blank=True,
-                                            null=True)  # Field name made lowercase.
-    position1 = models.SmallIntegerField(db_column='Position1', blank=True, null=True)  # Field name made lowercase.
-    position2 = models.SmallIntegerField(db_column='Position2', blank=True, null=True)  # Field name made lowercase.
-    position3 = models.SmallIntegerField(db_column='Position3', blank=True, null=True)  # Field name made lowercase.
-    nottperpage = models.SmallIntegerField(db_column='NoTTPerPage', blank=True, null=True)  # Field name made lowercase.
-    nottperpage1 = models.SmallIntegerField(db_column='NoTTPerPage1', blank=True,
-                                            null=True)  # Field name made lowercase.
-    nottperpage2 = models.SmallIntegerField(db_column='NoTTPerPage2', blank=True,
-                                            null=True)  # Field name made lowercase.
-    periodfrom = models.SmallIntegerField(db_column='PeriodFrom', blank=True, null=True)  # Field name made lowercase.
-    periodto = models.SmallIntegerField(db_column='PeriodTo', blank=True, null=True)  # Field name made lowercase.
-    weekperiodfrom = models.SmallIntegerField(db_column='WeekPeriodFrom', blank=True,
-                                              null=True)  # Field name made lowercase.
-    weekperiodto = models.SmallIntegerField(db_column='WeekPeriodTo', blank=True,
-                                            null=True)  # Field name made lowercase.
-    nonamesperline = models.SmallIntegerField(db_column='NoNamesPerLine', blank=True,
-                                              null=True)  # Field name made lowercase.
-    notimesperline = models.SmallIntegerField(db_column='NoTimesPerLine', blank=True,
-                                              null=True)  # Field name made lowercase.
-    minutdayfrom = models.SmallIntegerField(db_column='MinutDayFrom', blank=True,
-                                            null=True)  # Field name made lowercase.
-    minutdayto = models.SmallIntegerField(db_column='MinutDayTo', blank=True, null=True)  # Field name made lowercase.
-    minutperiodfrom = models.SmallIntegerField(db_column='MinutPeriodFrom', blank=True,
-                                               null=True)  # Field name made lowercase.
-    minutperiodto = models.SmallIntegerField(db_column='MinutPeriodTo', blank=True,
-                                             null=True)  # Field name made lowercase.
-    minutweekperiodfrom = models.SmallIntegerField(db_column='MinutWeekPeriodFrom', blank=True,
-                                                   null=True)  # Field name made lowercase.
-    minutweekperiodto = models.SmallIntegerField(db_column='MinutWeekPeriodTo', blank=True,
-                                                 null=True)  # Field name made lowercase.
-    input_format_id = models.IntegerField(db_column='INPUT_FORMAT_ID', blank=True,
-                                          null=True)  # Field name made lowercase.
-    sizeleftx = models.SmallIntegerField(db_column='SizeLeftX', blank=True, null=True)  # Field name made lowercase.
-    sizelefty = models.SmallIntegerField(db_column='SizeLeftY', blank=True, null=True)  # Field name made lowercase.
-    sizetopx = models.SmallIntegerField(db_column='SizeTopX', blank=True, null=True)  # Field name made lowercase.
-    sizetopy = models.SmallIntegerField(db_column='SizeTopY', blank=True, null=True)  # Field name made lowercase.
-    htmltitlewidth = models.SmallIntegerField(db_column='HtmlTitleWidth', blank=True,
-                                              null=True)  # Field name made lowercase.
-    htmlcolheight = models.SmallIntegerField(db_column='HtmlColHeight', blank=True,
-                                             null=True)  # Field name made lowercase.
-    htmlcolwidth = models.SmallIntegerField(db_column='HtmlColWidth', blank=True,
-                                            null=True)  # Field name made lowercase.
-    htmltitlealign = models.SmallIntegerField(db_column='HtmlTitleAlign', blank=True,
-                                              null=True)  # Field name made lowercase.
-    htmlcolalign = models.SmallIntegerField(db_column='HtmlColAlign', blank=True,
-                                            null=True)  # Field name made lowercase.
-    htmlfieldwidth = models.SmallIntegerField(db_column='HtmlFieldWidth', blank=True,
-                                              null=True)  # Field name made lowercase.
-    relativefont1 = models.CharField(db_column='RelativeFont1', max_length=60, blank=True,
-                                     null=True)  # Field name made lowercase.
-    relativefont2 = models.CharField(db_column='RelativeFont2', max_length=60, blank=True,
-                                     null=True)  # Field name made lowercase.
-    relativefont3 = models.CharField(db_column='RelativeFont3', max_length=60, blank=True,
-                                     null=True)  # Field name made lowercase.
-    relativefont4 = models.CharField(db_column='RelativeFont4', max_length=60, blank=True,
-                                     null=True)  # Field name made lowercase.
-    relativefont5 = models.CharField(db_column='RelativeFont5', max_length=60, blank=True,
-                                     null=True)  # Field name made lowercase.
-    relativefont6 = models.CharField(db_column='RelativeFont6', max_length=60, blank=True,
-                                     null=True)  # Field name made lowercase.
-    relativefont7 = models.CharField(db_column='RelativeFont7', max_length=60, blank=True,
-                                     null=True)  # Field name made lowercase.
-    relativefont8 = models.CharField(db_column='RelativeFont8', max_length=60, blank=True,
-                                     null=True)  # Field name made lowercase.
-    relativefont9 = models.CharField(db_column='RelativeFont9', max_length=60, blank=True,
-                                     null=True)  # Field name made lowercase.
-    relativefont10 = models.CharField(db_column='RelativeFont10', max_length=60, blank=True,
-                                      null=True)  # Field name made lowercase.
-    relativefont11 = models.CharField(db_column='RelativeFont11', max_length=60, blank=True,
-                                      null=True)  # Field name made lowercase.
-    relativefont12 = models.CharField(db_column='RelativeFont12', max_length=60, blank=True,
-                                      null=True)  # Field name made lowercase.
-    relativefont13 = models.CharField(db_column='RelativeFont13', max_length=60, blank=True,
-                                      null=True)  # Field name made lowercase.
-    relativefont14 = models.CharField(db_column='RelativeFont14', max_length=60, blank=True,
-                                      null=True)  # Field name made lowercase.
-    field1 = models.CharField(db_column='Field1', max_length=1000, blank=True, null=True)  # Field name made lowercase.
-    field2 = models.CharField(db_column='Field2', max_length=1000, blank=True, null=True)  # Field name made lowercase.
-    field3 = models.CharField(db_column='Field3', max_length=1000, blank=True, null=True)  # Field name made lowercase.
-    field4 = models.CharField(db_column='Field4', max_length=1000, blank=True, null=True)  # Field name made lowercase.
-    field5 = models.CharField(db_column='Field5', max_length=1000, blank=True, null=True)  # Field name made lowercase.
-    field6 = models.CharField(db_column='Field6', max_length=1000, blank=True, null=True)  # Field name made lowercase.
-    field7 = models.CharField(db_column='Field7', max_length=1000, blank=True, null=True)  # Field name made lowercase.
-    field8 = models.CharField(db_column='Field8', max_length=1000, blank=True, null=True)  # Field name made lowercase.
-    field9 = models.CharField(db_column='Field9', max_length=1000, blank=True, null=True)  # Field name made lowercase.
-    field10 = models.CharField(db_column='Field10', max_length=1000, blank=True,
-                               null=True)  # Field name made lowercase.
-    linesforheader = models.CharField(db_column='LinesForHeader', max_length=200, blank=True,
-                                      null=True)  # Field name made lowercase.
-    schoolweeks = models.CharField(db_column='SchoolWeeks', max_length=255, blank=True,
-                                   null=True)  # Field name made lowercase.
-    flags1 = models.CharField(db_column='Flags1', max_length=100, blank=True, null=True)  # Field name made lowercase.
-    noweeks = models.SmallIntegerField(db_column='NoWeeks', blank=True, null=True)  # Field name made lowercase.
-    nott = models.IntegerField(db_column='NoTT', blank=True, null=True)  # Field name made lowercase.
-    showlines = models.CharField(db_column='ShowLines', max_length=255, blank=True,
-                                 null=True)  # Field name made lowercase.
-    doublelines = models.CharField(db_column='DoubleLines', max_length=255, blank=True,
-                                   null=True)  # Field name made lowercase.
-    thicklines = models.CharField(db_column='ThickLines', max_length=255, blank=True,
-                                  null=True)  # Field name made lowercase.
-    additionalheader = models.CharField(db_column='AdditionalHeader', max_length=255, blank=True,
-                                        null=True)  # Field name made lowercase.
-    positionclateasub = models.SmallIntegerField(db_column='PositionClaTeaSub', blank=True,
-                                                 null=True)  # Field name made lowercase.
-    colclateasub = models.SmallIntegerField(db_column='ColClaTeaSub', blank=True,
-                                            null=True)  # Field name made lowercase.
-    colclateasub_subperline = models.SmallIntegerField(db_column='ColClaTeaSub_SubPerLine', blank=True,
-                                                       null=True)  # Field name made lowercase.
-    positionadditionaltt = models.SmallIntegerField(db_column='PositionAdditionalTT', blank=True,
-                                                    null=True)  # Field name made lowercase.
-    nameadditionaltt = models.CharField(db_column='NameAdditionalTT', max_length=60, blank=True,
-                                        null=True)  # Field name made lowercase.
-    flags2 = models.CharField(db_column='Flags2', max_length=100, blank=True, null=True)  # Field name made lowercase.
-
-    class Meta:
-        managed = False
-        db_table = 'tt_format'
-        unique_together = (('school_id', 'schoolyear_id', 'version_id', 'tt_format_id', 'owner'),)
-
-
-class Ttelementfilter(models.Model):
-    school_id = models.IntegerField(db_column='SCHOOL_ID', primary_key=True)  # Field name made lowercase.
-    schoolyear_id = models.IntegerField(db_column='SCHOOLYEAR_ID')  # Field name made lowercase.
-    version_id = models.SmallIntegerField(db_column='VERSION_ID')  # Field name made lowercase.
-    tt_element_filter_id = models.IntegerField(db_column='TT_ELEMENT_FILTER_ID')  # Field name made lowercase.
-    owner = models.SmallIntegerField(db_column='Owner')  # Field name made lowercase.
-    counter = models.IntegerField(db_column='Counter', blank=True, null=True)  # Field name made lowercase.
-    user_id = models.SmallIntegerField(db_column='USER_ID', blank=True, null=True)  # Field name made lowercase.
-    deleted = models.IntegerField(db_column='Deleted', blank=True, null=True)  # Field name made lowercase.
-    sortid = models.IntegerField(db_column='SortId', blank=True, null=True)  # Field name made lowercase.
-    name = models.CharField(db_column='Name', max_length=60, blank=True, null=True)  # Field name made lowercase.
-    elementids = models.CharField(db_column='ElementIds', max_length=1000, blank=True,
-                                  null=True)  # Field name made lowercase.
-
-    class Meta:
-        managed = False
-        db_table = 'ttelementfilter'
-        unique_together = (('school_id', 'schoolyear_id', 'version_id', 'tt_element_filter_id', 'owner'),)
-
-
 class Untissettings(models.Model):
     school_id = models.IntegerField(db_column='SCHOOL_ID', primary_key=True)  # Field name made lowercase.
     schoolyear_id = models.IntegerField(db_column='SCHOOLYEAR_ID')  # Field name made lowercase.
@@ -1975,7 +1975,7 @@ class Untissettings(models.Model):
 
     class Meta:
         managed = False
-        db_table = 'untissettings'
+        db_table = 'UntisSettings'
         unique_together = (('school_id', 'schoolyear_id', 'version_id', 'option_id'),)
 
 
@@ -2017,7 +2017,7 @@ class User(models.Model):
 
     class Meta:
         managed = False
-        db_table = 'user'
+        db_table = 'User'
 
 
 class Usergroup(models.Model):
@@ -2064,7 +2064,7 @@ class Usergroup(models.Model):
 
     class Meta:
         managed = False
-        db_table = 'usergroup'
+        db_table = 'UserGroup'
 
 
 class Usermessage(models.Model):
@@ -2081,7 +2081,7 @@ class Usermessage(models.Model):
 
     class Meta:
         managed = False
-        db_table = 'usermessage'
+        db_table = 'UserMessage'
         unique_together = (('message_id', 'user_id'),)
 
 
@@ -2107,7 +2107,7 @@ class Valuecorrection(models.Model):
 
     class Meta:
         managed = False
-        db_table = 'valuecorrection'
+        db_table = 'ValueCorrection'
         unique_together = (('school_id', 'schoolyear_id', 'version_id', 'teacher_id', 'number'),)
 
 
@@ -2134,7 +2134,7 @@ class Version(models.Model):
 
     class Meta:
         managed = False
-        db_table = 'version'
+        db_table = 'Version'
         unique_together = (('school_id', 'schoolyear_id', 'version_id'),)
 
 
@@ -2238,5 +2238,5 @@ class Views(models.Model):
 
     class Meta:
         managed = False
-        db_table = 'views'
+        db_table = 'Views'
         unique_together = (('school_id', 'schoolyear_id', 'version_id', 'type', 'views_id', 'owner'),)
diff --git a/biscuit/apps/untis/templates/untisconnect/test.html b/biscuit/apps/untis/templates/untisconnect/test.html
new file mode 100644
index 0000000..3640a0c
--- /dev/null
+++ b/biscuit/apps/untis/templates/untisconnect/test.html
@@ -0,0 +1,6 @@
+<h1>UNTIS CONNECTING SYSTEM</h1>
+{{ teachers }}
+
+{% for teacher in teachers %}
+    <p>{{ teacher.first_name }} {{ teacher.name }}</p>
+{% endfor %}
\ No newline at end of file
diff --git a/biscuit/apps/untis/urls.py b/biscuit/apps/untis/urls.py
new file mode 100644
index 0000000..193ccea
--- /dev/null
+++ b/biscuit/apps/untis/urls.py
@@ -0,0 +1,6 @@
+from django.urls import path
+from . import views
+
+urlpatterns = [
+    path('', views.test, name='untisconnect_test')
+]
diff --git a/biscuit/apps/untis/views.py b/biscuit/apps/untis/views.py
index 91ea44a..3d52626 100644
--- a/biscuit/apps/untis/views.py
+++ b/biscuit/apps/untis/views.py
@@ -1,3 +1,15 @@
+from django.contrib.auth.decorators import login_required
 from django.shortcuts import render
 
+
 # Create your views here.
+from .api import get_all_teachers
+
+
+@login_required
+def test(request):
+    teachers = get_all_teachers()
+    context = {
+        'teachers': teachers
+    }
+    return render(request, "untisconnect/test.html", context=context)
-- 
GitLab