diff --git a/aleksis/apps/untis/api.py b/aleksis/apps/untis/api.py deleted file mode 100644 index 767e5b599a9eb51ecf26c683228de34fa714dd7c..0000000000000000000000000000000000000000 --- a/aleksis/apps/untis/api.py +++ /dev/null @@ -1,466 +0,0 @@ -from django.conf import settings - -from untisconnect.api_helper import get_term_by_ids, run_using, untis_date_to_date, date_to_untis_date, \ - untis_split_first -from . import models -from timetable.settings import untis_settings - -TYPE_TEACHER = 0 -TYPE_ROOM = 1 -TYPE_CLASS = 2 - - -def run_all(obj, filter_term=True): - return run_default_filter(run_using(obj).all(), filter_term=filter_term) - - -def run_one(obj, filter_term=True): - return run_default_filter(run_using(obj), filter_term=filter_term) - - -def run_default_filter(obj, filter_term=True): - # Get term by settings in db - TERM_ID = untis_settings.term - SCHOOLYEAR_ID = untis_settings.school_year # 20172018 - TERM = get_term_by_ids(TERM_ID, SCHOOLYEAR_ID) - SCHOOL_ID = TERM.school_id # 705103 - VERSION_ID = TERM.version_id # 1 - - if filter_term: - return obj.filter(school_id=SCHOOL_ID, schoolyear_id=SCHOOLYEAR_ID, version_id=VERSION_ID, term_id=TERM_ID) - else: - return obj.filter(school_id=SCHOOL_ID, schoolyear_id=SCHOOLYEAR_ID, version_id=VERSION_ID) - - -def row_by_row_helper(db_rows, obj): - out_rows = [] - for db_row in db_rows: - o = obj() - o.create(db_row) - out_rows.append(o) - return out_rows - - -def row_by_row(db_ref, obj, filter_term=True): - db_rows = run_all(db_ref.objects, filter_term=filter_term) - return row_by_row_helper(db_rows, obj) - - -def one_by_id(db_ref, obj): - # print(db_ref) - if db_ref is not None: - o = obj() - o.create(db_ref) - return o - else: - return None - - -########### -# TEACHER # -########### -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 __eq__(self, other): - if not isinstance(other, Teacher): - # don't attempt to compare against unrelated types - return NotImplemented - - return self.id == other.id - - 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 get_all_teachers(): - teachers = row_by_row(models.Teacher, Teacher) - teachers.sort(key=lambda a: a.shortcode) - return teachers - - -def get_teacher_by_id(id): - teacher = run_one(models.Teacher.objects).get(teacher_id=id) - return one_by_id(teacher, Teacher) - - -def get_teacher_by_shortcode(shortcode): - shortcode = shortcode.upper() - teacher = run_one(models.Teacher.objects).get(name__icontains=shortcode) - return one_by_id(teacher, Teacher) - - -######### -# CLASS # -######### -class Class(object): - def __init__(self): - self.filled = False - self.id = None - self.name = None - self.text1 = None - self.text2 = None - self.room = None - self.teachers = [] - - def __str__(self): - if self.filled: - return self.name or "Unbekannt" - else: - return "Unbekannt" - - def __eq__(self, other): - if not isinstance(other, Class): - # don't attempt to compare against unrelated types - return NotImplemented - - return self.id == other.id - - def create(self, db_obj): - self.filled = True - self.id = db_obj.class_id - self.name = db_obj.name - self.text1 = db_obj.longname - self.text2 = db_obj.text - teacher_ids = untis_split_first(db_obj.teacherids, int) - self.teachers = [get_teacher_by_id(t_id) for t_id in teacher_ids] - print(self.teachers) - # print(db_obj.room_id) - if db_obj.room_id != 0: - # print("RAUM") - self.room = get_room_by_id(db_obj.room_id) - - -def get_all_classes(): - classes = row_by_row(models.Class, Class) - classes.sort(key=lambda a: a.name) - return classes - - -def get_class_by_id(id): - _class = run_one(models.Class.objects).get(class_id=id) - return one_by_id(_class, Class) - - -def get_class_by_name(name): - name = name[0].upper() + name[1:] - _class = run_one(models.Class.objects).filter(name__icontains=name).all()[0] - return one_by_id(_class, Class) - - -def format_classes(classes): - """ - Formats a list of Class objects to a combined string - - example return: "9abcd" for classes 9a, 9b, 9c and 9d - - :param classes: Class list - :return: combined string - """ - classes_as_dict = {} - - classes = sorted(classes, key=lambda class_: class_.name) - - for _class in classes: - step = _class.name[:-1] - part = _class.name[-1:] - if step not in classes_as_dict.keys(): - classes_as_dict[step] = [part] - else: - classes_as_dict[step].append(part) - - out = [] - for key, value in classes_as_dict.items(): - out.append(key + "".join(value)) - return ", ".join(out) - - -######## -# ROOM # -######## -class Room(object): - def __init__(self): - self.filled = False - self.id = None - self.shortcode = None - self.name = None - - def __str__(self): - if self.filled: - return self.name or "Unbekannt" - else: - return "Unbekannt" - - def __eq__(self, other): - if not isinstance(other, Room): - # don't attempt to compare against unrelated types - return NotImplemented - - return self.id == other.id - - def create(self, db_obj): - self.filled = True - self.id = db_obj.room_id - self.shortcode = db_obj.name - self.name = db_obj.longname - - -def get_all_rooms(): - rooms = row_by_row(models.Room, Room) - rooms.sort(key=lambda a: a.shortcode) - return rooms - - -def get_room_by_id(id): - room = run_one(models.Room.objects).get(room_id=id) - return one_by_id(room, Room) - - -######## -# CORRIDOR # -######## -class Corridor(object): - def __init__(self): - self.filled = False - self.id = None - self.name = None - - def __str__(self): - if self.filled: - return self.name or "Unbekannt" - else: - return "Unbekannt" - - def __eq__(self, other): - if not isinstance(other, Corridor): - # don't attempt to compare against unrelated types - return NotImplemented - - return self.id == other.id - - def create(self, db_obj): - self.filled = True - self.id = db_obj.corridor_id - self.name = db_obj.name - - -def get_all_corridors(): - corridors = row_by_row(models.Corridor, Corridor, filter_term=False) - corridors.sort(key=lambda a: a.name) - return corridors - - -def get_corridor_by_id(id): - # print(id) - corridor = run_one(models.Corridor.objects, filter_term=False).get(corridor_id=id) - return one_by_id(corridor, Corridor) - - -########### -# SUBJECT # -########### -class Subject(object): - def __init__(self): - self.filled = False - self.id = None - self.shortcode = None - self.name = None - self.color = None - self.hex_color = None - - def __str__(self): - if self.filled: - return self.shortcode or "Unbekannt" - else: - return "Unbekannt" - - def __eq__(self, other): - if not isinstance(other, Teacher): - # don't attempt to compare against unrelated types - return NotImplemented - - return self.id == other.id - - def create(self, db_obj): - self.filled = True - self.id = db_obj.subject_id - self.shortcode = db_obj.name - self.name = db_obj.longname - self.color = db_obj.backcolor - - # Convert UNTIS number to HEX - hex_bgr = str(hex(db_obj.backcolor)).replace("0x", "") - - # Add beginning zeros if len < 6 - if len(hex_bgr) < 6: - hex_bgr = "0" * (6 - len(hex_bgr)) + hex_bgr - - # Change BGR to RGB - hex_rgb = hex_bgr[4:6] + hex_bgr[2:4] + hex_bgr[0:2] - - # Add html # - self.hex_color = "#" + hex_rgb - - -def get_all_subjects(): - subjects = row_by_row(models.Subjects, Subject, filter_term=False) - subjects.sort(key=lambda a: a.shortcode) - - return subjects - - -def get_subject_by_id(id): - subject = run_one(models.Subjects.objects, filter_term=False).get(subject_id=id) - return one_by_id(subject, Subject) - - -class Absence(object): - def __init__(self): - self.filled = None - self.teacher = None - self.room = None - self.type = TYPE_TEACHER - self.from_date = None - self.to_date = None - self.from_lesson = None - self.to_lesson = None - self.is_whole_day = None - - def create(self, db_obj): - self.filled = True - # print(db_obj.ida) - # print(db_obj.typea) - if db_obj.typea == 101: - self.type = TYPE_TEACHER - elif db_obj.typea == 100: - self.type = TYPE_CLASS - elif db_obj.typea == 102: - self.type = TYPE_ROOM - - if self.type == TYPE_TEACHER: - # print("IDA", db_obj.ida) - self.teacher = get_teacher_by_id(db_obj.ida) - else: - self.room = get_room_by_id(db_obj.ida) - self.from_date = untis_date_to_date(db_obj.datefrom) - self.to_date = untis_date_to_date(db_obj.dateto) - self.from_lesson = db_obj.lessonfrom - self.to_lesson = db_obj.lessonto - self.is_whole_day = self.from_lesson == 1 and self.to_lesson >= settings.TIMETABLE_HEIGHT - - -def get_all_absences_by_date(date): - d_i = int(date_to_untis_date(date)) - db_rows = run_all(models.Absence.objects.filter(dateto__gte=d_i, datefrom__lte=d_i, deleted=0), filter_term=False) - return row_by_row_helper(db_rows, Absence) - - -def get_absence_by_id(id): - absence = run_one(models.Absence.objects, filter_term=False).get(absence_id=id) - return one_by_id(absence, Absence) - - -######### -# EVENT # -######### - -class Event(object): - def __init__(self): - self.filled = None - self.text = None - self.teachers = [] - self.classes = [] - self.rooms = [] - self.absences = [] - self.from_date = None - self.to_date = None - self.from_lesson = None - self.to_lesson = None - self.is_whole_day = None - - def create(self, db_obj): - """0~0~19~0~1859~0,0~0~65~0~1860~0,0~0~21~0~1861~0,0~0~3~0~1862~0""" - self.filled = True - event_parsed = db_obj.eventelement1.split(",") - elements = [] - for element in event_parsed: - elements.append(element.split("~")) - - for element in elements: - if element[0] != "0" and element[0] != "": - self.classes.append(element[0]) - - if element[2] != "0" and element[2] != "": - self.teachers.append(element[2]) - - if element[3] != "0" and element[3] != "": - self.rooms.append(element[3]) - - if element[4] != "0" and element[4] != "": - self.absences.append(element[4]) - - self.text = db_obj.text - self.from_date = untis_date_to_date(db_obj.datefrom) - self.to_date = untis_date_to_date(db_obj.dateto) - self.from_lesson = db_obj.lessonfrom - self.to_lesson = db_obj.lessonto - self.is_whole_day = self.from_lesson == 1 and self.to_lesson >= settings.TIMETABLE_HEIGHT - - -def get_all_events_by_date(date): - d_i = int(date_to_untis_date(date)) - db_rows = run_all(models.Event.objects.filter(dateto__gte=d_i, datefrom__lte=d_i, deleted=0), filter_term=False) - return row_by_row_helper(db_rows, Event) - - -########## -# LESSON # -########## -def get_raw_lessons(): - return run_all(models.Lesson.objects.filter(deleted=0)) - - -########### -# HOLIDAY # -########### -class Holiday(object): - def __init__(self): - self.filled = False - self.name = None - self.datefrom = None - self.dateto = None - - def __str__(self): - if self.filled: - return self.name or "Unbekannt" - else: - return "Unbekannt" - - def create(self, db_obj): - self.filled = True - self.name = db_obj.name - self.datefrom = db_obj.datefrom - self.dateto = db_obj.dateto - - -def get_today_holidays(date): - # db_holidays = row_by_row(models.Holiday, Holiday) - d_i = int(date_to_untis_date(date)) - db_rows = run_all(models.Holiday.objects.filter(dateto__gte=d_i, datefrom__lte=d_i), filter_term=False) - return row_by_row_helper(db_rows, Holiday) diff --git a/aleksis/apps/untis/api_helper.py b/aleksis/apps/untis/api_helper.py deleted file mode 100644 index a543cbd126403b25e018c910c14af882a856814f..0000000000000000000000000000000000000000 --- a/aleksis/apps/untis/api_helper.py +++ /dev/null @@ -1,117 +0,0 @@ -from django.utils import timezone - -from . import models - -DB_NAME = 'untis' - - -##################### -# BASIC DEFINITIONS # -##################### -class Basic(object): - def __init__(self): - self.filled = False - self.id = None - - def create(self, db_obj): - self.filled = True - - -def run_using(obj): - return obj.using(DB_NAME) - - -def get_term_by_ids(term_id, school_year_id): - data = run_using(models.Terms.objects).get(term_id=term_id, schoolyear_id=school_year_id) - # print(data.schoolyear_id) - return data - - -######## -# TERM # -######## -class Term(object): - def __init__(self): - self.filled = False - self.id = None - self.name = None - self.school_year_id = None - - def create(self, db_obj): - self.filled = True - self.id = db_obj.term_id - self.name = db_obj.longname - self.school_year_id = db_obj.schoolyear_id - - -def get_terms(): - data = run_using(models.Terms.objects).all() - terms = [] - for item in data: - term = Term() - term.create(item) - terms.append(term) - # print(term.name) - return terms - - -############## -# SCHOOLYEAR # -############## -class SchoolYear(object): - def __init__(self): - self.filled = False - self.id = None - self.name = None - - def create(self, db_obj): - self.filled = True - self.id = db_obj.schoolyear_id - self.name = db_obj.schoolyearzoned - - -def get_school_years(): - data = run_using(models.Schoolyear.objects).all() - years = [] - for item in data: - year = SchoolYear() - year.create(item) - years.append(year) - # print(term.name) - return years - - -################ -# HELP METHODS # -################ -def clean_array(a, conv=None): - b = [] - for el in a: - if el != '' and el != "0": - if conv is not None: - el = conv(el) - b.append(el) - return b - - -def untis_split_first(s, conv=None): - return clean_array(s.split(","), conv=conv) - - -def untis_split_second(s, conv=None): - return clean_array(s.split("~"), conv=conv) - - -def untis_split_third(s, conv=None): - return clean_array(s.split(";"), conv=conv) - - -DATE_FORMAT = "%Y%m%d" - - -def untis_date_to_date(untis): - return timezone.datetime.strptime(str(untis), DATE_FORMAT) - - -def date_to_untis_date(date): - return date.strftime(DATE_FORMAT) diff --git a/aleksis/apps/untis/datetimeutils.py b/aleksis/apps/untis/datetimeutils.py deleted file mode 100644 index 698aa917ca4952d7b0833c387e57bac3e5eeb448..0000000000000000000000000000000000000000 --- a/aleksis/apps/untis/datetimeutils.py +++ /dev/null @@ -1,115 +0,0 @@ -import datetime - -from django.utils import timezone, formats - -from schoolapps.settings import LONG_WEEK_DAYS -from untisconnect.api import TYPE_TEACHER, get_teacher_by_shortcode, TYPE_CLASS, get_class_by_name, get_all_teachers, \ - get_all_classes, get_all_rooms, get_all_subjects -from userinformation import UserInformation - - -def get_name_for_next_week_day_from_today() -> str: - """ - Return the next week day as you would say it from today: "today", "tomorrow" or "<weekday>" - :return: Formatted date - """ - # Next weekday - next_weekday: timezone.datetime = get_next_weekday_with_time(timezone.now(), timezone.now().time()) - - if next_weekday.date() == timezone.now().date(): - # Today - date_formatted = "heute" - elif next_weekday.date() == timezone.now().date() + timezone.timedelta(days=1): - # Tomorrow - date_formatted = "morgen" - else: - # Other weekday - date_formatted = LONG_WEEK_DAYS[next_weekday.isoweekday() - 1][0] - - return date_formatted - - -def get_calendar_weeks(year=timezone.datetime.now().year): - weeks = [] - - # Get first day of year > first calendar week - first_day_of_year = timezone.datetime(year=year, month=1, day=1) - if first_day_of_year.isoweekday() != 1: - days_to_next_monday = 1 - first_day_of_year.isoweekday() - first_day_of_year += datetime.timedelta(days=days_to_next_monday) - - # Go for all weeks in year and create week dict - first_day_of_week = first_day_of_year - for i in range(52): - calendar_week = i + 1 - last_day_of_week = first_day_of_week + datetime.timedelta(days=4) - weeks.append({ - "calendar_week": calendar_week, - "first_day": first_day_of_week, - "last_day": last_day_of_week - }) - first_day_of_week += datetime.timedelta(weeks=1) - - return weeks - - -def find_out_what_is_today(year=None, month=None, day=None): - date = timezone.datetime.now() - time = datetime.datetime.now().time() - if year is not None and day is not None and month is not None: - date = timezone.datetime(year=year, month=month, day=day) - if date != timezone.datetime.now(): - time = datetime.time(0) - return date, time - - -def get_calendar_week(calendar_week, year=timezone.datetime.now().year): - weeks = get_calendar_weeks(year=year) - for week in weeks: - if week["calendar_week"] == calendar_week: - return week - return None - - -def get_next_weekday(date=None): - """Get the next weekday by a datetime object""" - if date is None: - date = timezone.now().date() - - if date.isoweekday() in {6, 7}: - if date.isoweekday() == 6: - plus = 2 - else: - plus = 1 - date += datetime.timedelta(days=plus) - return date - - -def get_next_weekday_with_time(date=None, time=None) -> datetime.datetime: - """Get the next weekday by a datetime object""" - if date is None: - date = timezone.now().date() - if time is None: - time = timezone.now().time() - - if time > datetime.time(15, 35): - date += datetime.timedelta(days=1) - if date.isoweekday() in {6, 7}: - if date.isoweekday() == 6: - plus = 2 - else: - plus = 1 - date += datetime.timedelta(days=plus) - return date - - -def calendar_week(date: datetime) -> int: - return date.isocalendar()[1] - - -def weekday(date: datetime) -> int: - return date.isoweekday() - 1 - - -def format_lesson_time(time: datetime) -> str: - return formats.date_format(time, "H:i") diff --git a/aleksis/apps/untis/drive.py b/aleksis/apps/untis/drive.py deleted file mode 100644 index a57627807bfa1b2d9a4c4920606bdc0176abc8ad..0000000000000000000000000000000000000000 --- a/aleksis/apps/untis/drive.py +++ /dev/null @@ -1,29 +0,0 @@ -from dashboard.caches import DRIVE_CACHE, Cache -from .api import * - - -def build_drive(force_update=False): - cached = DRIVE_CACHE.get() - if cached is not False and not force_update: - print("Drive come from cache") - return cached - odrive = { - "teachers": get_all_teachers(), - "rooms": get_all_rooms(), - "classes": get_all_classes(), - "subjects": get_all_subjects(), - "corridors": get_all_corridors(), - } - - drive = {} - for key, value in odrive.items(): - drive[key] = {} - for el in value: - id = el.id - drive[key][id] = el - - DRIVE_CACHE.update(drive) - return drive - - -drive = build_drive() diff --git a/aleksis/apps/untis/events.py b/aleksis/apps/untis/events.py deleted file mode 100644 index 66f76c6c1b0605363e3d4f0e0ee7adc7b6e5d3e8..0000000000000000000000000000000000000000 --- a/aleksis/apps/untis/events.py +++ /dev/null @@ -1,87 +0,0 @@ -from django.conf import settings - -from schoolapps.settings import TIMETABLE_HEIGHT -from .drive import drive -from .api_helper import untis_date_to_date, date_to_untis_date -from .api import row_by_row_helper, run_all, get_absence_by_id -from . import models - - -######### -# EVENT # -######### - -class Event(object): - def __init__(self): - self.filled = None - self.id = None - self.text = None - self.teachers = [] - self.classes = [] - self.rooms = [] - self.absences = [] - self.from_date = None - self.to_date = None - self.from_lesson = None - self.to_lesson = None - self.is_whole_day = None - - def create(self, db_obj): - """0~0~19~0~1859~0,0~0~65~0~1860~0,0~0~21~0~1861~0,0~0~3~0~1862~0""" - self.filled = True - self.id = db_obj.event_id - - event_parsed = db_obj.eventelement1.split(",") - elements = [] - for element in event_parsed: - elements.append(element.split("~")) - - for element in elements: - if element[0] != "0" and element[0] != "": - class_id = int(element[0]) - obj = drive["classes"][class_id] - self.classes.append(obj) - - if element[2] != "0" and element[2] != "": - teacher_id = int(element[2]) - obj = drive["teachers"][teacher_id] - self.teachers.append(obj) - - if element[3] != "0" and element[3] != "": - room_id = int(element[3]) - obj = drive["rooms"][room_id] - self.rooms.append(obj) - - if element[4] != "0" and element[4] != "": - # print(element[4]) - try: - absence_id = int(element[4]) - absence = get_absence_by_id(absence_id) - self.absences.append(absence) - except models.Absence.DoesNotExist: - pass - self.text = db_obj.text - self.from_date = untis_date_to_date(db_obj.datefrom) - self.to_date = untis_date_to_date(db_obj.dateto) - self.from_lesson = db_obj.lessonfrom - self.to_lesson = db_obj.lessonto - self.is_whole_day = self.from_lesson == 1 and self.to_lesson >= settings.TIMETABLE_HEIGHT - - -def get_all_events_by_date(date): - d_i = int(date_to_untis_date(date)) - db_rows = run_all(models.Event.objects.filter(dateto__gte=d_i, datefrom__lte=d_i, deleted=0), filter_term=False) - rows = row_by_row_helper(db_rows, Event) - - # Remap the lesson numbers matching for the given date - for i, event in enumerate(rows): - if event.from_date != event.to_date: - if event.from_date == date: - event.to_lesson = TIMETABLE_HEIGHT - elif event.to_date == date: - event.from_lesson = 1 - else: - event.from_lesson = 1 - event.to_lesson = TIMETABLE_HEIGHT - - return rows diff --git a/aleksis/apps/untis/forms.py b/aleksis/apps/untis/forms.py index 1cf55a8b65ea3590933e9321bbac7e8d5e466601..fee160cf7165d1d8102c77cf11af3090757d37e5 100644 --- a/aleksis/apps/untis/forms.py +++ b/aleksis/apps/untis/forms.py @@ -1,6 +1,15 @@ from django import forms from django.utils.translation import ugettext_lazy as _ +from constance import config +from material import Fieldset + +from aleksis.core.forms import EditGroupForm + class UntisUploadForm(forms.Form): untis_xml = forms.FileField(label=_("Untis XML export")) + + +if config.UNTIS_IMPORT_MYSQL_USE_COURSE_GROUPS: + EditGroupForm.add_node_to_layout(Fieldset(_("UNTIS import"), "untis_subject")) diff --git a/aleksis/apps/untis/management/commands/untis_import_mysql.py b/aleksis/apps/untis/management/commands/untis_import_mysql.py new file mode 100644 index 0000000000000000000000000000000000000000..1e286068a045786527fe408c5226718629a7aa09 --- /dev/null +++ b/aleksis/apps/untis/management/commands/untis_import_mysql.py @@ -0,0 +1,8 @@ +from django.core.management.base import BaseCommand + +from ...tasks import untis_import_mysql + + +class Command(BaseCommand): + def handle(self, *args, **options): + untis_import_mysql() diff --git a/aleksis/apps/untis/management/commands/untis_import.py b/aleksis/apps/untis/management/commands/untis_import_xml.py similarity index 89% rename from aleksis/apps/untis/management/commands/untis_import.py rename to aleksis/apps/untis/management/commands/untis_import_xml.py index 8a263c84a041fc8cfd6433da61a722d39556f43f..efbaa675f26561d2961e856c0251086cb2956263 100644 --- a/aleksis/apps/untis/management/commands/untis_import.py +++ b/aleksis/apps/untis/management/commands/untis_import_xml.py @@ -1,7 +1,7 @@ from django.core.management.base import BaseCommand from django.utils.translation import ugettext as _ -from ...util import untis_import_xml +from ...util.xml.xml import untis_import_xml class Command(BaseCommand): diff --git a/aleksis/apps/untis/menus.py b/aleksis/apps/untis/menus.py index 3bda041ce510e34e5c31825919b9b4baed3d4439..7e4cbd69476ea51e978df1f488957871b383dd95 100644 --- a/aleksis/apps/untis/menus.py +++ b/aleksis/apps/untis/menus.py @@ -3,8 +3,8 @@ from django.utils.translation import ugettext_lazy as _ MENUS = { "DATA_MANAGEMENT_MENU": [ { - "name": _("Units import"), - "url": "untis_import", + "name": _("Untis XML import"), + "url": "untis_xml_import", "validators": [ "menu_generator.validators.is_authenticated", "menu_generator.validators.is_superuser", diff --git a/aleksis/apps/untis/model_extensions.py b/aleksis/apps/untis/model_extensions.py new file mode 100644 index 0000000000000000000000000000000000000000..b9a3eef0f95f75276ae745cc3f59c96ead640126 --- /dev/null +++ b/aleksis/apps/untis/model_extensions.py @@ -0,0 +1,76 @@ +from django.utils.translation import gettext as _ + +from constance import config +from jsonstore import CharField, IntegerField + +from aleksis.apps.chronos import models as chronos_models +from aleksis.core import models as core_models + +# Core models +core_models.Person.field( + import_ref_untis=IntegerField(verbose_name=_("UNTIS import reference"), null=True, blank=True) +) +core_models.Group.field( + import_ref_untis=IntegerField(verbose_name=_("UNTIS import reference"), null=True, blank=True) +) +if config.UNTIS_IMPORT_MYSQL_USE_COURSE_GROUPS: + core_models.Group.field( + untis_subject=CharField( + verbose_name=_("UNTIS subject"), + help_text=_( + "The UNTIS import will use this for matching course groups (along with parent groups)." + ), + blank=True, + null=True, + max_length=255, + ) + ) + +# Chronos models +chronos_models.Subject.field( + import_ref_untis=IntegerField(verbose_name=_("UNTIS import reference"), null=True, blank=True) +) +chronos_models.Room.field( + import_ref_untis=IntegerField(verbose_name=_("UNTIS import reference"), null=True, blank=True) +) +chronos_models.SupervisionArea.field( + import_ref_untis=IntegerField(verbose_name=_("UNTIS import reference"), null=True, blank=True) +) +chronos_models.Lesson.field( + lesson_id_untis=IntegerField(verbose_name=_("Lesson id in UNTIS"), null=True, blank=True) +) +chronos_models.Lesson.field( + element_id_untis=IntegerField( + verbose_name=_("Number of lesson element in UNTIS"), null=True, blank=True + ) +) +chronos_models.Lesson.field( + term_untis=IntegerField(verbose_name=_("Term id in UNTIS"), null=True, blank=True) +) +chronos_models.LessonPeriod.field( + element_id_untis=IntegerField( + verbose_name=_("Number of lesson element in UNTIS"), null=True, blank=True + ) +) +chronos_models.LessonSubstitution.field( + import_ref_untis=IntegerField(verbose_name=_("UNTIS import reference"), null=True, blank=True) +) +chronos_models.SupervisionSubstitution.field( + import_ref_untis=IntegerField(verbose_name=_("UNTIS import reference"), null=True, blank=True) +) +chronos_models.AbsenceReason.field( + import_ref_untis=IntegerField(verbose_name=_("UNTIS import reference"), null=True, blank=True) +) +chronos_models.Absence.field( + import_ref_untis=IntegerField(verbose_name=_("UNTIS import reference"), null=True, blank=True) +) +chronos_models.Event.field( + import_ref_untis=IntegerField(verbose_name=_("UNTIS import reference"), null=True, blank=True) +) +chronos_models.Holiday.field( + import_ref_untis=IntegerField(verbose_name=_("UNTIS import reference"), null=True, blank=True) +) +chronos_models.ExtraLesson.field( + import_ref_untis=IntegerField(verbose_name=_("UNTIS import reference"), null=True, blank=True) +) + diff --git a/aleksis/apps/untis/models.py b/aleksis/apps/untis/models.py index 56cb112da75cfdfc2b996e7fced297f80d9cd805..9080208ff684218dda8bac3a523677a4d9f4eecf 100644 --- a/aleksis/apps/untis/models.py +++ b/aleksis/apps/untis/models.py @@ -1,3 +1,6 @@ +# pylint: skip-file +# flake8: noqa + # This is an auto-generated Django model module. # You'll have to do the following manually to clean this up: # * Rearrange models' order @@ -7,2236 +10,4194 @@ # Feel free to rename the models, but don't rename db_table values or field names. from django.db import models - -class Absence(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. - absence_id = models.IntegerField(db_column='ABSENCE_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. - text = models.CharField(db_column='Text', 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. - foreignkey = models.CharField(db_column='ForeignKey', max_length=50, blank=True, - null=True) # Field name made lowercase. - typea = models.SmallIntegerField(db_column='TypeA', blank=True, null=True) # Field name made lowercase. - ida = models.IntegerField(db_column='IDA', blank=True, null=True) # Field name made lowercase. - datefrom = models.IntegerField(db_column='DateFrom', blank=True, null=True) # Field name made lowercase. - dateto = models.IntegerField(db_column='DateTo', blank=True, null=True) # Field name made lowercase. - absence_reason_id = models.IntegerField(db_column='ABSENCE_REASON_ID', blank=True, - null=True) # Field name made lowercase. - lessonfrom = models.SmallIntegerField(db_column='LessonFrom', blank=True, null=True) # Field name made lowercase. - lessonto = models.SmallIntegerField(db_column='LessonTo', blank=True, null=True) # Field name made lowercase. - transfer_id = models.IntegerField(db_column='TRANSFER_ID', blank=True, null=True) # Field name made lowercase. - event_id = models.IntegerField(db_column='EVENT_ID', blank=True, null=True) # Field name made lowercase. - valuededuction = models.IntegerField(db_column='ValueDeduction', blank=True, - null=True) # Field name made lowercase. - prebookingnr = models.IntegerField(db_column='PrebookingNr', blank=True, null=True) # Field name made lowercase. - timefrom = models.IntegerField(db_column='TimeFrom', blank=True, null=True) # Field name made lowercase. - timeto = models.IntegerField(db_column='TimeTo', blank=True, null=True) # Field name made lowercase. +from aleksis.core.mixins import PureDjangoModel + + +class Absence(models.Model, PureDjangoModel): + 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. + absence_id = models.IntegerField(db_column="ABSENCE_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. + text = models.CharField( + db_column="Text", 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. + foreignkey = models.CharField( + db_column="ForeignKey", max_length=50, blank=True, null=True + ) # Field name made lowercase. + typea = models.SmallIntegerField( + db_column="TypeA", blank=True, null=True + ) # Field name made lowercase. + ida = models.IntegerField(db_column="IDA", blank=True, null=True) # Field name made lowercase. + datefrom = models.IntegerField( + db_column="DateFrom", blank=True, null=True + ) # Field name made lowercase. + dateto = models.IntegerField( + db_column="DateTo", blank=True, null=True + ) # Field name made lowercase. + absence_reason_id = models.IntegerField( + db_column="ABSENCE_REASON_ID", blank=True, null=True + ) # Field name made lowercase. + lessonfrom = models.SmallIntegerField( + db_column="LessonFrom", blank=True, null=True + ) # Field name made lowercase. + lessonto = models.SmallIntegerField( + db_column="LessonTo", blank=True, null=True + ) # Field name made lowercase. + transfer_id = models.IntegerField( + db_column="TRANSFER_ID", blank=True, null=True + ) # Field name made lowercase. + event_id = models.IntegerField( + db_column="EVENT_ID", blank=True, null=True + ) # Field name made lowercase. + valuededuction = models.IntegerField( + db_column="ValueDeduction", blank=True, null=True + ) # Field name made lowercase. + prebookingnr = models.IntegerField( + db_column="PrebookingNr", blank=True, null=True + ) # Field name made lowercase. + timefrom = models.IntegerField( + db_column="TimeFrom", blank=True, null=True + ) # Field name made lowercase. + timeto = models.IntegerField( + db_column="TimeTo", blank=True, null=True + ) # Field name made lowercase. class Meta: managed = False - db_table = 'Absence' - unique_together = (('school_id', 'schoolyear_id', 'version_id', 'absence_id'),) - - -class Absencereason(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. - absence_reason_id = models.IntegerField(db_column='ABSENCE_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. + db_table = "Absence" + unique_together = (("school_id", "schoolyear_id", "version_id", "absence_id"),) + + +class Absencereason(models.Model, PureDjangoModel): + 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. + absence_reason_id = models.IntegerField( + db_column="ABSENCE_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 = 'AbsenceReason' - unique_together = (('school_id', 'schoolyear_id', 'version_id', 'absence_reason_id'),) - - -class Adminlesson(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. - ls_id = models.IntegerField(db_column='LS_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. - startdate = models.IntegerField(db_column='StartDate', blank=True, null=True) # Field name made lowercase. - enddate = models.IntegerField(db_column='EndDate', blank=True, null=True) # Field name made lowercase. - subjectid = models.IntegerField(db_column='SubjectId', blank=True, null=True) # Field name made lowercase. - studentgroupid = models.IntegerField(db_column='StudentGroupId', blank=True, - null=True) # Field name made lowercase. - classids = models.CharField(db_column='ClassIds', max_length=600, blank=True, - null=True) # Field name made lowercase. - teacherassignments = models.TextField(db_column='TeacherAssignments', blank=True, - null=True) # Field name made lowercase. + db_table = "AbsenceReason" + unique_together = (("school_id", "schoolyear_id", "version_id", "absence_reason_id"),) + + +class Adminlesson(models.Model, PureDjangoModel): + 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. + ls_id = models.IntegerField(db_column="LS_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. + startdate = models.IntegerField( + db_column="StartDate", blank=True, null=True + ) # Field name made lowercase. + enddate = models.IntegerField( + db_column="EndDate", blank=True, null=True + ) # Field name made lowercase. + subjectid = models.IntegerField( + db_column="SubjectId", blank=True, null=True + ) # Field name made lowercase. + studentgroupid = models.IntegerField( + db_column="StudentGroupId", blank=True, null=True + ) # Field name made lowercase. + classids = models.CharField( + db_column="ClassIds", max_length=600, blank=True, null=True + ) # Field name made lowercase. + teacherassignments = models.TextField( + db_column="TeacherAssignments", blank=True, null=True + ) # Field name made lowercase. class Meta: managed = False - db_table = 'AdminLesson' - unique_together = (('school_id', 'schoolyear_id', 'version_id', 'ls_id'),) - - -class Alias(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. - type = models.SmallIntegerField(db_column='Type') # Field name made lowercase. - term_id = models.SmallIntegerField(db_column='TERM_ID') # Field name made lowercase. - alias_id = models.IntegerField(db_column='ALIAS_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. - flags = models.CharField(db_column='Flags', max_length=100, blank=True, null=True) # Field name made lowercase. - elementids = models.CharField(db_column='ElementIds', max_length=255, blank=True, - null=True) # Field name made lowercase. + db_table = "AdminLesson" + unique_together = (("school_id", "schoolyear_id", "version_id", "ls_id"),) + + +class Alias(models.Model, PureDjangoModel): + 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. + type = models.SmallIntegerField(db_column="Type") # Field name made lowercase. + term_id = models.SmallIntegerField(db_column="TERM_ID") # Field name made lowercase. + alias_id = models.IntegerField(db_column="ALIAS_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. + flags = models.CharField( + db_column="Flags", max_length=100, blank=True, null=True + ) # Field name made lowercase. + elementids = models.CharField( + db_column="ElementIds", max_length=255, blank=True, null=True + ) # Field name made lowercase. class Meta: managed = False - 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. + db_table = "Alias" + unique_together = ( + ("school_id", "schoolyear_id", "version_id", "type", "alias_id", "term_id"), + ) + + +class CvReason(models.Model, PureDjangoModel): + 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. - version_id = models.SmallIntegerField(db_column='VERSION_ID') # Field name made lowercase. - date = models.IntegerField(db_column='Date') # 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. - text = models.CharField(db_column='Text', max_length=150, 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. - absence_reason_id = models.IntegerField(db_column='ABSENCE_REASON_ID', blank=True, - null=True) # Field name made lowercase. - note = models.CharField(db_column='Note', max_length=150, blank=True, null=True) # Field name made lowercase. - freelessons = models.CharField(db_column='FreeLessons', max_length=255, blank=True, - null=True) # Field name made lowercase. - daytext = models.CharField(db_column='DayText', max_length=2000, blank=True, - null=True) # Field name made lowercase. - elementids = models.CharField(db_column='ElementIds', max_length=2000, blank=True, - null=True) # Field name made lowercase. - textguid = models.CharField(db_column='TextGuid', max_length=2000, blank=True, - null=True) # Field name made lowercase. - additionaldays = models.CharField(db_column='AdditionalDays', max_length=255, blank=True, - null=True) # Field name made lowercase. + db_table = "CV_Reason" + unique_together = (("school_id", "schoolyear_id", "version_id", "cv_reason_id"),) + + +class Calendar(models.Model, PureDjangoModel): + 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. + date = models.IntegerField(db_column="Date") # 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. + text = models.CharField( + db_column="Text", max_length=150, 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. + absence_reason_id = models.IntegerField( + db_column="ABSENCE_REASON_ID", blank=True, null=True + ) # Field name made lowercase. + note = models.CharField( + db_column="Note", max_length=150, blank=True, null=True + ) # Field name made lowercase. + freelessons = models.CharField( + db_column="FreeLessons", max_length=255, blank=True, null=True + ) # Field name made lowercase. + daytext = models.CharField( + db_column="DayText", max_length=2000, blank=True, null=True + ) # Field name made lowercase. + elementids = models.CharField( + db_column="ElementIds", max_length=2000, blank=True, null=True + ) # Field name made lowercase. + textguid = models.CharField( + db_column="TextGuid", max_length=2000, blank=True, null=True + ) # Field name made lowercase. + additionaldays = models.CharField( + db_column="AdditionalDays", max_length=255, blank=True, null=True + ) # Field name made lowercase. class Meta: managed = False - db_table = 'Calendar' - unique_together = (('school_id', 'schoolyear_id', 'version_id', 'date'),) - - -class Class(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. - class_id = models.IntegerField(db_column='CLASS_ID') # Field name made lowercase. - term_id = models.SmallIntegerField(db_column='TERM_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. - text = models.CharField(db_column='Text', max_length=100, 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. - statisticcodes2 = models.CharField(db_column='StatisticCodes2', 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. - timerequest = models.CharField(db_column='TimeRequest', max_length=400, blank=True, - null=True) # Field name made lowercase. - timerequestminut = models.CharField(db_column='TimeRequestMinut', max_length=400, blank=True, - null=True) # Field name made lowercase. - dayrequest = models.CharField(db_column='DayRequest', max_length=400, blank=True, - null=True) # Field name made lowercase. - timerequestunspecified = models.CharField(db_column='TimeRequestUnspecified', max_length=400, blank=True, - null=True) # Field name made lowercase. - selmatrix = models.CharField(db_column='SelMatrix', 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. - blankflags = models.CharField(db_column='BlankFlags', max_length=80, blank=True, - null=True) # Field name made lowercase. - room_id = models.IntegerField(db_column='ROOM_ID', blank=True, null=True) # Field name made lowercase. - description_id = models.IntegerField(db_column='DESCRIPTION_ID', blank=True, - null=True) # Field name made lowercase. - forecolor = models.IntegerField(db_column='ForeColor', blank=True, null=True) # Field name made lowercase. - backcolor = models.IntegerField(db_column='BackColor', blank=True, null=True) # Field name made lowercase. - factor = models.CharField(db_column='Factor', max_length=9, blank=True, null=True) # Field name made lowercase. - foreigndata = models.CharField(db_column='ForeignData', max_length=255, blank=True, - null=True) # Field name made lowercase. - foreignkey = models.CharField(db_column='ForeignKey', max_length=50, blank=True, - null=True) # Field name made lowercase. - oldname = models.CharField(db_column='OldName', max_length=60, blank=True, null=True) # Field name made lowercase. - minutbreakmin = models.SmallIntegerField(db_column='MinutBreakMin', blank=True, - null=True) # Field name made lowercase. - lunchbreakmin = models.SmallIntegerField(db_column='LunchBreakMin', blank=True, - null=True) # Field name made lowercase. - lunchbreakmax = models.SmallIntegerField(db_column='LunchBreakMax', blank=True, - null=True) # Field name made lowercase. - lssnperdaymin = models.SmallIntegerField(db_column='LssnPerDayMin', blank=True, - null=True) # Field name made lowercase. - lssnperdaymax = models.SmallIntegerField(db_column='LssnPerDayMax', blank=True, - null=True) # Field name made lowercase. - minutminutesperdaymin = models.SmallIntegerField(db_column='MinutMinutesPerDayMin', blank=True, - null=True) # Field name made lowercase. - minutminutesperdaymax = models.SmallIntegerField(db_column='MinutMinutesPerDayMax', blank=True, - null=True) # Field name made lowercase. - minutlunchbreakperdaymin = models.SmallIntegerField(db_column='MinutLunchBreakPerDayMin', blank=True, - null=True) # Field name made lowercase. - minutlunchbreakperdaymax = models.SmallIntegerField(db_column='MinutLunchBreakPerDayMax', blank=True, - null=True) # Field name made lowercase. - blocksnodays = models.SmallIntegerField(db_column='BlocksNoDays', blank=True, - null=True) # Field name made lowercase. - blockslssnfrom = models.SmallIntegerField(db_column='BlocksLssnFrom', blank=True, - null=True) # Field name made lowercase. - blockslssnto = models.SmallIntegerField(db_column='BlocksLssnTo', blank=True, - null=True) # Field name made lowercase. - weekquotamin = models.SmallIntegerField(db_column='WeekQuotaMin', blank=True, - null=True) # Field name made lowercase. - weekquotamax = models.SmallIntegerField(db_column='WeekQuotaMax', blank=True, - null=True) # Field name made lowercase. - weekquotaideal = models.SmallIntegerField(db_column='WeekQuotaIdeal', blank=True, - null=True) # Field name made lowercase. - nameyearbefore = models.CharField(db_column='NameYearBefore', max_length=20, blank=True, - null=True) # Field name made lowercase. - periods_table_id = models.IntegerField(db_column='PERIODS_TABLE_ID', blank=True, - null=True) # Field name made lowercase. - mainclass = models.CharField(db_column='MainClass', max_length=255, blank=True, - null=True) # Field name made lowercase. - teacherids = models.CharField(db_column='TeacherIds', max_length=50, blank=True, - null=True) # Field name made lowercase. - teacher_id = models.IntegerField(db_column='TEACHER_ID', blank=True, null=True) # Field name made lowercase. - department_id = models.IntegerField(db_column='DEPARTMENT_ID', blank=True, null=True) # Field name made lowercase. - ownschool = models.CharField(db_column='OwnSchool', max_length=20, blank=True, - null=True) # Field name made lowercase. - datefrom = models.IntegerField(db_column='DateFrom', blank=True, null=True) # Field name made lowercase. - dateto = models.IntegerField(db_column='DateTo', blank=True, null=True) # Field name made lowercase. - msubjsuccmax = models.SmallIntegerField(db_column='MSubjSuccMax', blank=True, - null=True) # Field name made lowercase. - msubjdaymax = models.SmallIntegerField(db_column='MSubjDayMax', blank=True, null=True) # Field name made lowercase. - classgroup = models.CharField(db_column='ClassGroup', max_length=1, blank=True, - null=True) # Field name made lowercase. - classlevel = models.CharField(db_column='ClassLevel', max_length=50, blank=True, - null=True) # Field name made lowercase. - nostudentmale = models.SmallIntegerField(db_column='NoStudentMale', blank=True, - null=True) # Field name made lowercase. - nostudentfemale = models.SmallIntegerField(db_column='NoStudentFemale', blank=True, - null=True) # Field name made lowercase. - minutmsubjdaymax = models.SmallIntegerField(db_column='MinutMSubjDayMax', blank=True, - null=True) # Field name made lowercase. - minutbreakmax = models.SmallIntegerField(db_column='MinutBreakMax', blank=True, - null=True) # Field name made lowercase. - notlastperiod = models.CharField(db_column='NotLastPeriod', max_length=255, blank=True, - null=True) # Field name made lowercase. - doubleorsingle = models.CharField(db_column='DoubleOrSingle', max_length=255, blank=True, - null=True) # Field name made lowercase. - substplgrid = models.CharField(db_column='SubstPlGrid', max_length=1000, blank=True, - null=True) # Field name made lowercase. - nrtimegrid = models.SmallIntegerField(db_column='NrTimeGrid', blank=True, null=True) # Field name made lowercase. - difflessonmax = models.SmallIntegerField(db_column='DiffLessonMax', blank=True, - null=True) # Field name made lowercase. - text1 = models.CharField(db_column='Text1', max_length=100, blank=True, null=True) # Field name made lowercase. - text2 = models.CharField(db_column='Text2', max_length=100, blank=True, null=True) # Field name made lowercase. - plannedyear = models.IntegerField(db_column='PlannedYear', blank=True, null=True) # Field name made lowercase. - externname = models.CharField(db_column='ExternName', max_length=60, blank=True, - null=True) # Field name made lowercase. - weeklytargetclasses = models.IntegerField(db_column='WeeklyTargetClasses', blank=True, - null=True) # Field name made lowercase. + db_table = "Calendar" + unique_together = (("school_id", "schoolyear_id", "version_id", "date"),) + + +class Class(models.Model, PureDjangoModel): + 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. + class_id = models.IntegerField(db_column="CLASS_ID") # Field name made lowercase. + term_id = models.SmallIntegerField(db_column="TERM_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. + text = models.CharField( + db_column="Text", max_length=100, 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. + statisticcodes2 = models.CharField( + db_column="StatisticCodes2", 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. + timerequest = models.CharField( + db_column="TimeRequest", max_length=400, blank=True, null=True + ) # Field name made lowercase. + timerequestminut = models.CharField( + db_column="TimeRequestMinut", max_length=400, blank=True, null=True + ) # Field name made lowercase. + dayrequest = models.CharField( + db_column="DayRequest", max_length=400, blank=True, null=True + ) # Field name made lowercase. + timerequestunspecified = models.CharField( + db_column="TimeRequestUnspecified", max_length=400, blank=True, null=True + ) # Field name made lowercase. + selmatrix = models.CharField( + db_column="SelMatrix", 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. + blankflags = models.CharField( + db_column="BlankFlags", max_length=80, blank=True, null=True + ) # Field name made lowercase. + room_id = models.IntegerField( + db_column="ROOM_ID", blank=True, null=True + ) # Field name made lowercase. + description_id = models.IntegerField( + db_column="DESCRIPTION_ID", blank=True, null=True + ) # Field name made lowercase. + forecolor = models.IntegerField( + db_column="ForeColor", blank=True, null=True + ) # Field name made lowercase. + backcolor = models.IntegerField( + db_column="BackColor", blank=True, null=True + ) # Field name made lowercase. + factor = models.CharField( + db_column="Factor", max_length=9, blank=True, null=True + ) # Field name made lowercase. + foreigndata = models.CharField( + db_column="ForeignData", max_length=255, blank=True, null=True + ) # Field name made lowercase. + foreignkey = models.CharField( + db_column="ForeignKey", max_length=50, blank=True, null=True + ) # Field name made lowercase. + oldname = models.CharField( + db_column="OldName", max_length=60, blank=True, null=True + ) # Field name made lowercase. + minutbreakmin = models.SmallIntegerField( + db_column="MinutBreakMin", blank=True, null=True + ) # Field name made lowercase. + lunchbreakmin = models.SmallIntegerField( + db_column="LunchBreakMin", blank=True, null=True + ) # Field name made lowercase. + lunchbreakmax = models.SmallIntegerField( + db_column="LunchBreakMax", blank=True, null=True + ) # Field name made lowercase. + lssnperdaymin = models.SmallIntegerField( + db_column="LssnPerDayMin", blank=True, null=True + ) # Field name made lowercase. + lssnperdaymax = models.SmallIntegerField( + db_column="LssnPerDayMax", blank=True, null=True + ) # Field name made lowercase. + minutminutesperdaymin = models.SmallIntegerField( + db_column="MinutMinutesPerDayMin", blank=True, null=True + ) # Field name made lowercase. + minutminutesperdaymax = models.SmallIntegerField( + db_column="MinutMinutesPerDayMax", blank=True, null=True + ) # Field name made lowercase. + minutlunchbreakperdaymin = models.SmallIntegerField( + db_column="MinutLunchBreakPerDayMin", blank=True, null=True + ) # Field name made lowercase. + minutlunchbreakperdaymax = models.SmallIntegerField( + db_column="MinutLunchBreakPerDayMax", blank=True, null=True + ) # Field name made lowercase. + blocksnodays = models.SmallIntegerField( + db_column="BlocksNoDays", blank=True, null=True + ) # Field name made lowercase. + blockslssnfrom = models.SmallIntegerField( + db_column="BlocksLssnFrom", blank=True, null=True + ) # Field name made lowercase. + blockslssnto = models.SmallIntegerField( + db_column="BlocksLssnTo", blank=True, null=True + ) # Field name made lowercase. + weekquotamin = models.SmallIntegerField( + db_column="WeekQuotaMin", blank=True, null=True + ) # Field name made lowercase. + weekquotamax = models.SmallIntegerField( + db_column="WeekQuotaMax", blank=True, null=True + ) # Field name made lowercase. + weekquotaideal = models.SmallIntegerField( + db_column="WeekQuotaIdeal", blank=True, null=True + ) # Field name made lowercase. + nameyearbefore = models.CharField( + db_column="NameYearBefore", max_length=20, blank=True, null=True + ) # Field name made lowercase. + periods_table_id = models.IntegerField( + db_column="PERIODS_TABLE_ID", blank=True, null=True + ) # Field name made lowercase. + mainclass = models.CharField( + db_column="MainClass", max_length=255, blank=True, null=True + ) # Field name made lowercase. + teacherids = models.CharField( + db_column="TeacherIds", max_length=50, blank=True, null=True + ) # Field name made lowercase. + teacher_id = models.IntegerField( + db_column="TEACHER_ID", blank=True, null=True + ) # Field name made lowercase. + department_id = models.IntegerField( + db_column="DEPARTMENT_ID", blank=True, null=True + ) # Field name made lowercase. + ownschool = models.CharField( + db_column="OwnSchool", max_length=20, blank=True, null=True + ) # Field name made lowercase. + datefrom = models.IntegerField( + db_column="DateFrom", blank=True, null=True + ) # Field name made lowercase. + dateto = models.IntegerField( + db_column="DateTo", blank=True, null=True + ) # Field name made lowercase. + msubjsuccmax = models.SmallIntegerField( + db_column="MSubjSuccMax", blank=True, null=True + ) # Field name made lowercase. + msubjdaymax = models.SmallIntegerField( + db_column="MSubjDayMax", blank=True, null=True + ) # Field name made lowercase. + classgroup = models.CharField( + db_column="ClassGroup", max_length=1, blank=True, null=True + ) # Field name made lowercase. + classlevel = models.CharField( + db_column="ClassLevel", max_length=50, blank=True, null=True + ) # Field name made lowercase. + nostudentmale = models.SmallIntegerField( + db_column="NoStudentMale", blank=True, null=True + ) # Field name made lowercase. + nostudentfemale = models.SmallIntegerField( + db_column="NoStudentFemale", blank=True, null=True + ) # Field name made lowercase. + minutmsubjdaymax = models.SmallIntegerField( + db_column="MinutMSubjDayMax", blank=True, null=True + ) # Field name made lowercase. + minutbreakmax = models.SmallIntegerField( + db_column="MinutBreakMax", blank=True, null=True + ) # Field name made lowercase. + notlastperiod = models.CharField( + db_column="NotLastPeriod", max_length=255, blank=True, null=True + ) # Field name made lowercase. + doubleorsingle = models.CharField( + db_column="DoubleOrSingle", max_length=255, blank=True, null=True + ) # Field name made lowercase. + substplgrid = models.CharField( + db_column="SubstPlGrid", max_length=1000, blank=True, null=True + ) # Field name made lowercase. + nrtimegrid = models.SmallIntegerField( + db_column="NrTimeGrid", blank=True, null=True + ) # Field name made lowercase. + difflessonmax = models.SmallIntegerField( + db_column="DiffLessonMax", blank=True, null=True + ) # Field name made lowercase. + text1 = models.CharField( + db_column="Text1", max_length=100, blank=True, null=True + ) # Field name made lowercase. + text2 = models.CharField( + db_column="Text2", max_length=100, blank=True, null=True + ) # Field name made lowercase. + plannedyear = models.IntegerField( + db_column="PlannedYear", blank=True, null=True + ) # Field name made lowercase. + externname = models.CharField( + db_column="ExternName", max_length=60, blank=True, null=True + ) # Field name made lowercase. + weeklytargetclasses = models.IntegerField( + db_column="WeeklyTargetClasses", blank=True, null=True + ) # Field name made lowercase. class Meta: managed = False - db_table = 'Class' - unique_together = (('school_id', 'schoolyear_id', 'version_id', 'class_id', 'term_id'),) - - -class Commondata(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. - id = models.SmallIntegerField(db_column='ID') # Field name made lowercase. - owner = models.SmallIntegerField(db_column='Owner') # Field name made lowercase. - number = models.SmallIntegerField(db_column='Number') # Field name made lowercase. - number1 = models.SmallIntegerField(db_column='Number1') # 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. - fieldbool1 = models.IntegerField(db_column='FieldBool1', blank=True, null=True) # Field name made lowercase. - fieldbool2 = models.IntegerField(db_column='FieldBool2', blank=True, null=True) # Field name made lowercase. - fieldbool3 = models.IntegerField(db_column='FieldBool3', blank=True, null=True) # Field name made lowercase. - fieldbool4 = models.IntegerField(db_column='FieldBool4', blank=True, null=True) # Field name made lowercase. - fieldbool5 = models.IntegerField(db_column='FieldBool5', blank=True, null=True) # Field name made lowercase. - fieldbool6 = models.IntegerField(db_column='FieldBool6', blank=True, null=True) # Field name made lowercase. - fieldbool7 = models.IntegerField(db_column='FieldBool7', blank=True, null=True) # Field name made lowercase. - fieldbool8 = models.IntegerField(db_column='FieldBool8', blank=True, null=True) # Field name made lowercase. - fieldbyte1 = models.SmallIntegerField(db_column='FieldByte1', blank=True, null=True) # Field name made lowercase. - fieldbyte2 = models.SmallIntegerField(db_column='FieldByte2', blank=True, null=True) # Field name made lowercase. - fieldbyte3 = models.SmallIntegerField(db_column='FieldByte3', blank=True, null=True) # Field name made lowercase. - fieldbyte4 = models.SmallIntegerField(db_column='FieldByte4', blank=True, null=True) # Field name made lowercase. - fieldbyte5 = models.SmallIntegerField(db_column='FieldByte5', blank=True, null=True) # Field name made lowercase. - fieldbyte6 = models.SmallIntegerField(db_column='FieldByte6', blank=True, null=True) # Field name made lowercase. - fieldbyte7 = models.SmallIntegerField(db_column='FieldByte7', blank=True, null=True) # Field name made lowercase. - fieldbyte8 = models.SmallIntegerField(db_column='FieldByte8', blank=True, null=True) # Field name made lowercase. - fieldint1 = models.SmallIntegerField(db_column='FieldInt1', blank=True, null=True) # Field name made lowercase. - fieldint2 = models.SmallIntegerField(db_column='FieldInt2', blank=True, null=True) # Field name made lowercase. - fieldint3 = models.SmallIntegerField(db_column='FieldInt3', blank=True, null=True) # Field name made lowercase. - fieldint4 = models.SmallIntegerField(db_column='FieldInt4', blank=True, null=True) # Field name made lowercase. - fieldint5 = models.SmallIntegerField(db_column='FieldInt5', blank=True, null=True) # Field name made lowercase. - fieldint6 = models.SmallIntegerField(db_column='FieldInt6', blank=True, null=True) # Field name made lowercase. - fieldint7 = models.SmallIntegerField(db_column='FieldInt7', blank=True, null=True) # Field name made lowercase. - fieldint8 = models.SmallIntegerField(db_column='FieldInt8', blank=True, null=True) # Field name made lowercase. - fieldlong1 = models.IntegerField(db_column='FieldLong1', blank=True, null=True) # Field name made lowercase. - fieldlong2 = models.IntegerField(db_column='FieldLong2', blank=True, null=True) # Field name made lowercase. - fieldlong3 = models.IntegerField(db_column='FieldLong3', blank=True, null=True) # Field name made lowercase. - fieldlong4 = models.IntegerField(db_column='FieldLong4', blank=True, null=True) # Field name made lowercase. - fieldtext10a = models.CharField(db_column='FieldText10A', max_length=255, blank=True, - null=True) # Field name made lowercase. - fieldtext10b = models.CharField(db_column='FieldText10B', max_length=255, blank=True, - null=True) # Field name made lowercase. - fieldtext10c = models.CharField(db_column='FieldText10C', max_length=255, blank=True, - null=True) # Field name made lowercase. - fieldtext10d = models.CharField(db_column='FieldText10D', max_length=255, blank=True, - null=True) # Field name made lowercase. - fieldtext20a = models.CharField(db_column='FieldText20A', max_length=255, blank=True, - null=True) # Field name made lowercase. - fieldtext20b = models.CharField(db_column='FieldText20B', max_length=255, blank=True, - null=True) # Field name made lowercase. - fieldtext20c = models.CharField(db_column='FieldText20C', max_length=255, blank=True, - null=True) # Field name made lowercase. - fieldtext20d = models.CharField(db_column='FieldText20D', max_length=255, blank=True, - null=True) # Field name made lowercase. - fieldtext50a = models.CharField(db_column='FieldText50A', max_length=255, blank=True, - null=True) # Field name made lowercase. - fieldtext50b = models.CharField(db_column='FieldText50B', max_length=255, blank=True, - null=True) # Field name made lowercase. - fieldtext50c = models.CharField(db_column='FieldText50C', max_length=255, blank=True, - null=True) # Field name made lowercase. - fieldtext50d = models.CharField(db_column='FieldText50D', max_length=255, blank=True, - null=True) # Field name made lowercase. - fieldtext100a = models.CharField(db_column='FieldText100A', max_length=255, blank=True, - null=True) # Field name made lowercase. - fieldtext100b = models.CharField(db_column='FieldText100B', max_length=255, blank=True, - null=True) # Field name made lowercase. - fieldtext100c = models.CharField(db_column='FieldText100C', max_length=255, blank=True, - null=True) # Field name made lowercase. - fieldtext100d = models.CharField(db_column='FieldText100D', max_length=255, blank=True, - null=True) # Field name made lowercase. - fieldtextlonga = models.CharField(db_column='FieldTextLongA', max_length=1000, blank=True, - null=True) # Field name made lowercase. + db_table = "Class" + unique_together = (("school_id", "schoolyear_id", "version_id", "class_id", "term_id"),) + + +class Commondata(models.Model, PureDjangoModel): + 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. + id = models.SmallIntegerField(db_column="ID") # Field name made lowercase. + owner = models.SmallIntegerField(db_column="Owner") # Field name made lowercase. + number = models.SmallIntegerField(db_column="Number") # Field name made lowercase. + number1 = models.SmallIntegerField(db_column="Number1") # 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. + fieldbool1 = models.IntegerField( + db_column="FieldBool1", blank=True, null=True + ) # Field name made lowercase. + fieldbool2 = models.IntegerField( + db_column="FieldBool2", blank=True, null=True + ) # Field name made lowercase. + fieldbool3 = models.IntegerField( + db_column="FieldBool3", blank=True, null=True + ) # Field name made lowercase. + fieldbool4 = models.IntegerField( + db_column="FieldBool4", blank=True, null=True + ) # Field name made lowercase. + fieldbool5 = models.IntegerField( + db_column="FieldBool5", blank=True, null=True + ) # Field name made lowercase. + fieldbool6 = models.IntegerField( + db_column="FieldBool6", blank=True, null=True + ) # Field name made lowercase. + fieldbool7 = models.IntegerField( + db_column="FieldBool7", blank=True, null=True + ) # Field name made lowercase. + fieldbool8 = models.IntegerField( + db_column="FieldBool8", blank=True, null=True + ) # Field name made lowercase. + fieldbyte1 = models.SmallIntegerField( + db_column="FieldByte1", blank=True, null=True + ) # Field name made lowercase. + fieldbyte2 = models.SmallIntegerField( + db_column="FieldByte2", blank=True, null=True + ) # Field name made lowercase. + fieldbyte3 = models.SmallIntegerField( + db_column="FieldByte3", blank=True, null=True + ) # Field name made lowercase. + fieldbyte4 = models.SmallIntegerField( + db_column="FieldByte4", blank=True, null=True + ) # Field name made lowercase. + fieldbyte5 = models.SmallIntegerField( + db_column="FieldByte5", blank=True, null=True + ) # Field name made lowercase. + fieldbyte6 = models.SmallIntegerField( + db_column="FieldByte6", blank=True, null=True + ) # Field name made lowercase. + fieldbyte7 = models.SmallIntegerField( + db_column="FieldByte7", blank=True, null=True + ) # Field name made lowercase. + fieldbyte8 = models.SmallIntegerField( + db_column="FieldByte8", blank=True, null=True + ) # Field name made lowercase. + fieldint1 = models.SmallIntegerField( + db_column="FieldInt1", blank=True, null=True + ) # Field name made lowercase. + fieldint2 = models.SmallIntegerField( + db_column="FieldInt2", blank=True, null=True + ) # Field name made lowercase. + fieldint3 = models.SmallIntegerField( + db_column="FieldInt3", blank=True, null=True + ) # Field name made lowercase. + fieldint4 = models.SmallIntegerField( + db_column="FieldInt4", blank=True, null=True + ) # Field name made lowercase. + fieldint5 = models.SmallIntegerField( + db_column="FieldInt5", blank=True, null=True + ) # Field name made lowercase. + fieldint6 = models.SmallIntegerField( + db_column="FieldInt6", blank=True, null=True + ) # Field name made lowercase. + fieldint7 = models.SmallIntegerField( + db_column="FieldInt7", blank=True, null=True + ) # Field name made lowercase. + fieldint8 = models.SmallIntegerField( + db_column="FieldInt8", blank=True, null=True + ) # Field name made lowercase. + fieldlong1 = models.IntegerField( + db_column="FieldLong1", blank=True, null=True + ) # Field name made lowercase. + fieldlong2 = models.IntegerField( + db_column="FieldLong2", blank=True, null=True + ) # Field name made lowercase. + fieldlong3 = models.IntegerField( + db_column="FieldLong3", blank=True, null=True + ) # Field name made lowercase. + fieldlong4 = models.IntegerField( + db_column="FieldLong4", blank=True, null=True + ) # Field name made lowercase. + fieldtext10a = models.CharField( + db_column="FieldText10A", max_length=255, blank=True, null=True + ) # Field name made lowercase. + fieldtext10b = models.CharField( + db_column="FieldText10B", max_length=255, blank=True, null=True + ) # Field name made lowercase. + fieldtext10c = models.CharField( + db_column="FieldText10C", max_length=255, blank=True, null=True + ) # Field name made lowercase. + fieldtext10d = models.CharField( + db_column="FieldText10D", max_length=255, blank=True, null=True + ) # Field name made lowercase. + fieldtext20a = models.CharField( + db_column="FieldText20A", max_length=255, blank=True, null=True + ) # Field name made lowercase. + fieldtext20b = models.CharField( + db_column="FieldText20B", max_length=255, blank=True, null=True + ) # Field name made lowercase. + fieldtext20c = models.CharField( + db_column="FieldText20C", max_length=255, blank=True, null=True + ) # Field name made lowercase. + fieldtext20d = models.CharField( + db_column="FieldText20D", max_length=255, blank=True, null=True + ) # Field name made lowercase. + fieldtext50a = models.CharField( + db_column="FieldText50A", max_length=255, blank=True, null=True + ) # Field name made lowercase. + fieldtext50b = models.CharField( + db_column="FieldText50B", max_length=255, blank=True, null=True + ) # Field name made lowercase. + fieldtext50c = models.CharField( + db_column="FieldText50C", max_length=255, blank=True, null=True + ) # Field name made lowercase. + fieldtext50d = models.CharField( + db_column="FieldText50D", max_length=255, blank=True, null=True + ) # Field name made lowercase. + fieldtext100a = models.CharField( + db_column="FieldText100A", max_length=255, blank=True, null=True + ) # Field name made lowercase. + fieldtext100b = models.CharField( + db_column="FieldText100B", max_length=255, blank=True, null=True + ) # Field name made lowercase. + fieldtext100c = models.CharField( + db_column="FieldText100C", max_length=255, blank=True, null=True + ) # Field name made lowercase. + fieldtext100d = models.CharField( + db_column="FieldText100D", max_length=255, blank=True, null=True + ) # Field name made lowercase. + fieldtextlonga = models.CharField( + db_column="FieldTextLongA", max_length=1000, blank=True, null=True + ) # Field name made lowercase. class Meta: managed = False - db_table = 'CommonData' - unique_together = (('school_id', 'schoolyear_id', 'version_id', 'id', 'owner', 'number', 'number1'),) - - -class Corridor(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. - corridor_id = models.IntegerField(db_column='CORRIDOR_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. - 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. - forecolor = models.IntegerField(db_column='ForeColor', blank=True, null=True) # Field name made lowercase. - backcolor = models.IntegerField(db_column='BackColor', blank=True, null=True) # Field name made lowercase. - dislocation = models.CharField(db_column='Dislocation', max_length=1, blank=True, - null=True) # Field name made lowercase. - breaksupervision1 = models.CharField(db_column='BreakSupervision1', max_length=1000, blank=True, - null=True) # Field name made lowercase. - breaksupervision2 = models.CharField(db_column='BreakSupervision2', max_length=1000, blank=True, - null=True) # Field name made lowercase. - breaksupervision3 = models.CharField(db_column='BreakSupervision3', max_length=1000, blank=True, - null=True) # Field name made lowercase. - breaksupervision4 = models.CharField(db_column='BreakSupervision4', max_length=1000, blank=True, - null=True) # Field name made lowercase. - breaksupervision5 = models.CharField(db_column='BreakSupervision5', max_length=1000, blank=True, - null=True) # Field name made lowercase. - breaksupervision6 = models.CharField(db_column='BreakSupervision6', max_length=1000, blank=True, - null=True) # Field name made lowercase. - breaksupervision7 = models.CharField(db_column='BreakSupervision7', max_length=1000, blank=True, - null=True) # Field name made lowercase. - breaksupervision8 = models.CharField(db_column='BreakSupervision8', max_length=1000, blank=True, - null=True) # Field name made lowercase. - breaksupervision9 = models.CharField(db_column='BreakSupervision9', max_length=1000, blank=True, - null=True) # Field name made lowercase. - breaksupervision10 = models.CharField(db_column='BreakSupervision10', max_length=1000, blank=True, - null=True) # Field name made lowercase. - breaksupervision11 = models.CharField(db_column='BreakSupervision11', max_length=1000, blank=True, - null=True) # Field name made lowercase. - breaksupervision12 = models.CharField(db_column='BreakSupervision12', max_length=1000, blank=True, - null=True) # Field name made lowercase. - breaksupervision13 = models.CharField(db_column='BreakSupervision13', max_length=1000, blank=True, - null=True) # Field name made lowercase. - breaksupervision14 = models.CharField(db_column='BreakSupervision14', max_length=1000, blank=True, - null=True) # Field name made lowercase. - breaksupervision15 = models.CharField(db_column='BreakSupervision15', max_length=1000, blank=True, - null=True) # Field name made lowercase. - breaksupervision16 = models.CharField(db_column='BreakSupervision16', max_length=1000, blank=True, - null=True) # Field name made lowercase. + db_table = "CommonData" + unique_together = ( + ("school_id", "schoolyear_id", "version_id", "id", "owner", "number", "number1"), + ) + + +class Corridor(models.Model, PureDjangoModel): + 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. + corridor_id = models.IntegerField(db_column="CORRIDOR_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. + 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. + forecolor = models.IntegerField( + db_column="ForeColor", blank=True, null=True + ) # Field name made lowercase. + backcolor = models.IntegerField( + db_column="BackColor", blank=True, null=True + ) # Field name made lowercase. + dislocation = models.CharField( + db_column="Dislocation", max_length=1, blank=True, null=True + ) # Field name made lowercase. + breaksupervision1 = models.CharField( + db_column="BreakSupervision1", max_length=1000, blank=True, null=True + ) # Field name made lowercase. + breaksupervision2 = models.CharField( + db_column="BreakSupervision2", max_length=1000, blank=True, null=True + ) # Field name made lowercase. + breaksupervision3 = models.CharField( + db_column="BreakSupervision3", max_length=1000, blank=True, null=True + ) # Field name made lowercase. + breaksupervision4 = models.CharField( + db_column="BreakSupervision4", max_length=1000, blank=True, null=True + ) # Field name made lowercase. + breaksupervision5 = models.CharField( + db_column="BreakSupervision5", max_length=1000, blank=True, null=True + ) # Field name made lowercase. + breaksupervision6 = models.CharField( + db_column="BreakSupervision6", max_length=1000, blank=True, null=True + ) # Field name made lowercase. + breaksupervision7 = models.CharField( + db_column="BreakSupervision7", max_length=1000, blank=True, null=True + ) # Field name made lowercase. + breaksupervision8 = models.CharField( + db_column="BreakSupervision8", max_length=1000, blank=True, null=True + ) # Field name made lowercase. + breaksupervision9 = models.CharField( + db_column="BreakSupervision9", max_length=1000, blank=True, null=True + ) # Field name made lowercase. + breaksupervision10 = models.CharField( + db_column="BreakSupervision10", max_length=1000, blank=True, null=True + ) # Field name made lowercase. + breaksupervision11 = models.CharField( + db_column="BreakSupervision11", max_length=1000, blank=True, null=True + ) # Field name made lowercase. + breaksupervision12 = models.CharField( + db_column="BreakSupervision12", max_length=1000, blank=True, null=True + ) # Field name made lowercase. + breaksupervision13 = models.CharField( + db_column="BreakSupervision13", max_length=1000, blank=True, null=True + ) # Field name made lowercase. + breaksupervision14 = models.CharField( + db_column="BreakSupervision14", max_length=1000, blank=True, null=True + ) # Field name made lowercase. + breaksupervision15 = models.CharField( + db_column="BreakSupervision15", max_length=1000, blank=True, null=True + ) # Field name made lowercase. + breaksupervision16 = models.CharField( + db_column="BreakSupervision16", max_length=1000, blank=True, null=True + ) # Field name made lowercase. class Meta: managed = False - db_table = 'Corridor' - unique_together = (('school_id', 'schoolyear_id', 'version_id', 'corridor_id'),) - - -class Countvalue(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. - count_value_id = models.IntegerField(db_column='COUNT_VALUE_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. - text = models.CharField(db_column='Text', max_length=100, 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. - 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. - lesson_id = models.IntegerField(db_column='LESSON_ID', blank=True, null=True) # Field name made lowercase. - value = models.IntegerField(db_column='Value', blank=True, null=True) # Field name made lowercase. - cv_reason_id = models.IntegerField(db_column='CV_REASON_ID', blank=True, null=True) # Field name made lowercase. - teacher_id = models.IntegerField(db_column='TEACHER_ID', blank=True, null=True) # Field name made lowercase. - datefrom = models.IntegerField(db_column='DateFrom', blank=True, null=True) # Field name made lowercase. - dateto = models.IntegerField(db_column='DateTo', blank=True, null=True) # Field name made lowercase. - valueyear = models.IntegerField(db_column='ValueYear', blank=True, null=True) # Field name made lowercase. - percentvalue = models.SmallIntegerField(db_column='PercentValue', blank=True, - null=True) # Field name made lowercase. - percentbase = models.CharField(db_column='PercentBase', max_length=1, blank=True, - null=True) # Field name made lowercase. - valueweekminut = models.IntegerField(db_column='ValueWeekMinut', blank=True, - null=True) # Field name made lowercase. - valueyearminut = models.IntegerField(db_column='ValueYearMinut', blank=True, - null=True) # Field name made lowercase. + db_table = "Corridor" + unique_together = (("school_id", "schoolyear_id", "version_id", "corridor_id"),) + + +class Countvalue(models.Model, PureDjangoModel): + 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. + count_value_id = models.IntegerField(db_column="COUNT_VALUE_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. + text = models.CharField( + db_column="Text", max_length=100, 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. + 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. + lesson_id = models.IntegerField( + db_column="LESSON_ID", blank=True, null=True + ) # Field name made lowercase. + value = models.IntegerField( + db_column="Value", blank=True, null=True + ) # Field name made lowercase. + cv_reason_id = models.IntegerField( + db_column="CV_REASON_ID", blank=True, null=True + ) # Field name made lowercase. + teacher_id = models.IntegerField( + db_column="TEACHER_ID", blank=True, null=True + ) # Field name made lowercase. + datefrom = models.IntegerField( + db_column="DateFrom", blank=True, null=True + ) # Field name made lowercase. + dateto = models.IntegerField( + db_column="DateTo", blank=True, null=True + ) # Field name made lowercase. + valueyear = models.IntegerField( + db_column="ValueYear", blank=True, null=True + ) # Field name made lowercase. + percentvalue = models.SmallIntegerField( + db_column="PercentValue", blank=True, null=True + ) # Field name made lowercase. + percentbase = models.CharField( + db_column="PercentBase", max_length=1, blank=True, null=True + ) # Field name made lowercase. + valueweekminut = models.IntegerField( + db_column="ValueWeekMinut", blank=True, null=True + ) # Field name made lowercase. + valueyearminut = models.IntegerField( + db_column="ValueYearMinut", blank=True, null=True + ) # Field name made lowercase. class Meta: managed = False - db_table = 'CountValue' - unique_together = (('school_id', 'schoolyear_id', 'version_id', 'count_value_id'),) - - -class Couplcond(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. - coupl_cond_id = models.IntegerField(db_column='COUPL_COND_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. - flags = models.CharField(db_column='Flags', max_length=100, blank=True, null=True) # Field name made lowercase. - conflict_coupl_cond_id = models.IntegerField(db_column='Conflict_COUPL_COND_ID', blank=True, - null=True) # Field name made lowercase. - maxcourses = models.SmallIntegerField(db_column='MaxCourses', blank=True, null=True) # Field name made lowercase. - lessonids = models.CharField(db_column='LessonIds', max_length=255, blank=True, - null=True) # Field name made lowercase. - subjectids = models.CharField(db_column='SubjectIds', max_length=255, blank=True, - null=True) # Field name made lowercase. + db_table = "CountValue" + unique_together = (("school_id", "schoolyear_id", "version_id", "count_value_id"),) + + +class Couplcond(models.Model, PureDjangoModel): + 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. + coupl_cond_id = models.IntegerField(db_column="COUPL_COND_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. + flags = models.CharField( + db_column="Flags", max_length=100, blank=True, null=True + ) # Field name made lowercase. + conflict_coupl_cond_id = models.IntegerField( + db_column="Conflict_COUPL_COND_ID", blank=True, null=True + ) # Field name made lowercase. + maxcourses = models.SmallIntegerField( + db_column="MaxCourses", blank=True, null=True + ) # Field name made lowercase. + lessonids = models.CharField( + db_column="LessonIds", max_length=255, blank=True, null=True + ) # Field name made lowercase. + subjectids = models.CharField( + db_column="SubjectIds", max_length=255, blank=True, null=True + ) # Field name made lowercase. class Meta: managed = False - db_table = 'CouplCond' - unique_together = (('school_id', 'schoolyear_id', 'version_id', 'coupl_cond_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. - version_id = models.SmallIntegerField(db_column='VERSION_ID') # Field name made lowercase. - department_id = models.IntegerField(db_column='DEPARTMENT_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. - 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. + db_table = "CouplCond" + unique_together = (("school_id", "schoolyear_id", "version_id", "coupl_cond_id"),) + + +class Department(models.Model, PureDjangoModel): + 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. + department_id = models.IntegerField(db_column="DEPARTMENT_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. + 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. class Meta: managed = False - db_table = 'Department' - unique_together = (('school_id', 'schoolyear_id', 'version_id', 'department_id'),) - - -class Description(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. - description_id = models.IntegerField(db_column='DESCRIPTION_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. + db_table = "Department" + unique_together = (("school_id", "schoolyear_id", "version_id", "department_id"),) + + +class Description(models.Model, PureDjangoModel): + 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. + description_id = models.IntegerField(db_column="DESCRIPTION_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. class Meta: managed = False - db_table = 'Description' - unique_together = (('school_id', 'schoolyear_id', 'version_id', 'description_id'),) - - -class Event(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. - event_id = models.IntegerField(db_column='EVENT_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. - text = models.CharField(db_column='Text', 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. - foreignkey = models.CharField(db_column='ForeignKey', max_length=50, blank=True, - null=True) # Field name made lowercase. - datefrom = models.IntegerField(db_column='DateFrom', blank=True, null=True) # Field name made lowercase. - dateto = models.IntegerField(db_column='DateTo', blank=True, null=True) # Field name made lowercase. - absence_reason_id = models.IntegerField(db_column='ABSENCE_REASON_ID', blank=True, - null=True) # Field name made lowercase. - lessonfrom = models.SmallIntegerField(db_column='LessonFrom', blank=True, null=True) # Field name made lowercase. - lessonto = models.SmallIntegerField(db_column='LessonTo', blank=True, null=True) # Field name made lowercase. - eventelement1 = models.CharField(db_column='EventElement1', max_length=1000, blank=True, - null=True) # Field name made lowercase. - eventelement2 = models.CharField(db_column='EventElement2', max_length=1000, blank=True, - null=True) # Field name made lowercase. - eventelement3 = models.CharField(db_column='EventElement3', max_length=1000, blank=True, - null=True) # Field name made lowercase. - eventelement4 = models.CharField(db_column='EventElement4', max_length=1000, blank=True, - null=True) # Field name made lowercase. - eventelement5 = models.CharField(db_column='EventElement5', max_length=1000, blank=True, - null=True) # Field name made lowercase. - eventelement6 = models.CharField(db_column='EventElement6', max_length=1000, blank=True, - null=True) # Field name made lowercase. - eventelement7 = models.CharField(db_column='EventElement7', max_length=1000, blank=True, - null=True) # Field name made lowercase. - eventelement8 = models.CharField(db_column='EventElement8', max_length=1000, blank=True, - null=True) # Field name made lowercase. - eventelement9 = models.CharField(db_column='EventElement9', max_length=1000, blank=True, - null=True) # Field name made lowercase. - eventelement10 = models.CharField(db_column='EventElement10', max_length=1000, blank=True, - null=True) # Field name made lowercase. - subject_id = models.IntegerField(db_column='SUBJECT_ID', blank=True, null=True) # Field name made lowercase. - timefrom = models.IntegerField(db_column='TimeFrom', blank=True, null=True) # Field name made lowercase. - timeto = models.IntegerField(db_column='TimeTo', blank=True, null=True) # Field name made lowercase. - studentgroup = models.CharField(db_column='StudentGroup', max_length=100, blank=True, - null=True) # Field name made lowercase. - studentgroup_id = models.IntegerField(db_column='STUDENTGROUP_ID', blank=True, - null=True) # Field name made lowercase. + db_table = "Description" + unique_together = (("school_id", "schoolyear_id", "version_id", "description_id"),) + + +class Event(models.Model, PureDjangoModel): + 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. + event_id = models.IntegerField(db_column="EVENT_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. + text = models.CharField( + db_column="Text", 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. + foreignkey = models.CharField( + db_column="ForeignKey", max_length=50, blank=True, null=True + ) # Field name made lowercase. + datefrom = models.IntegerField( + db_column="DateFrom", blank=True, null=True + ) # Field name made lowercase. + dateto = models.IntegerField( + db_column="DateTo", blank=True, null=True + ) # Field name made lowercase. + absence_reason_id = models.IntegerField( + db_column="ABSENCE_REASON_ID", blank=True, null=True + ) # Field name made lowercase. + lessonfrom = models.SmallIntegerField( + db_column="LessonFrom", blank=True, null=True + ) # Field name made lowercase. + lessonto = models.SmallIntegerField( + db_column="LessonTo", blank=True, null=True + ) # Field name made lowercase. + eventelement1 = models.CharField( + db_column="EventElement1", max_length=1000, blank=True, null=True + ) # Field name made lowercase. + eventelement2 = models.CharField( + db_column="EventElement2", max_length=1000, blank=True, null=True + ) # Field name made lowercase. + eventelement3 = models.CharField( + db_column="EventElement3", max_length=1000, blank=True, null=True + ) # Field name made lowercase. + eventelement4 = models.CharField( + db_column="EventElement4", max_length=1000, blank=True, null=True + ) # Field name made lowercase. + eventelement5 = models.CharField( + db_column="EventElement5", max_length=1000, blank=True, null=True + ) # Field name made lowercase. + eventelement6 = models.CharField( + db_column="EventElement6", max_length=1000, blank=True, null=True + ) # Field name made lowercase. + eventelement7 = models.CharField( + db_column="EventElement7", max_length=1000, blank=True, null=True + ) # Field name made lowercase. + eventelement8 = models.CharField( + db_column="EventElement8", max_length=1000, blank=True, null=True + ) # Field name made lowercase. + eventelement9 = models.CharField( + db_column="EventElement9", max_length=1000, blank=True, null=True + ) # Field name made lowercase. + eventelement10 = models.CharField( + db_column="EventElement10", max_length=1000, blank=True, null=True + ) # Field name made lowercase. + subject_id = models.IntegerField( + db_column="SUBJECT_ID", blank=True, null=True + ) # Field name made lowercase. + timefrom = models.IntegerField( + db_column="TimeFrom", blank=True, null=True + ) # Field name made lowercase. + timeto = models.IntegerField( + db_column="TimeTo", blank=True, null=True + ) # Field name made lowercase. + studentgroup = models.CharField( + db_column="StudentGroup", max_length=100, blank=True, null=True + ) # Field name made lowercase. + studentgroup_id = models.IntegerField( + db_column="STUDENTGROUP_ID", blank=True, null=True + ) # Field name made lowercase. class Meta: managed = False - db_table = 'Event' - unique_together = (('school_id', 'schoolyear_id', 'version_id', 'event_id'),) - - -class Exam(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. - exam_id = models.IntegerField(db_column='EXAM_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. - text = models.CharField(db_column='Text', max_length=100, 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. - date = models.IntegerField(db_column='Date', blank=True, null=True) # Field name made lowercase. - lessonfrom = models.SmallIntegerField(db_column='LessonFrom', blank=True, null=True) # Field name made lowercase. - lessonto = models.SmallIntegerField(db_column='LessonTo', blank=True, null=True) # Field name made lowercase. - examelement1 = models.CharField(db_column='ExamElement1', max_length=1000, blank=True, - null=True) # Field name made lowercase. - examelement2 = models.CharField(db_column='ExamElement2', max_length=1000, blank=True, - null=True) # Field name made lowercase. - examelement3 = models.CharField(db_column='ExamElement3', max_length=1000, blank=True, - null=True) # Field name made lowercase. - examelement4 = models.CharField(db_column='ExamElement4', max_length=1000, blank=True, - null=True) # Field name made lowercase. - examelement5 = models.CharField(db_column='ExamElement5', max_length=1000, blank=True, - null=True) # Field name made lowercase. - examelement6 = models.CharField(db_column='ExamElement6', max_length=1000, blank=True, - null=True) # Field name made lowercase. - examelement7 = models.CharField(db_column='ExamElement7', max_length=1000, blank=True, - null=True) # Field name made lowercase. - examelement8 = models.CharField(db_column='ExamElement8', max_length=1000, blank=True, - null=True) # Field name made lowercase. - examelement9 = models.CharField(db_column='ExamElement9', max_length=1000, blank=True, - null=True) # Field name made lowercase. - examelement10 = models.CharField(db_column='ExamElement10', max_length=1000, blank=True, - null=True) # Field name made lowercase. - substactive = models.IntegerField(db_column='SubstActive', blank=True, null=True) # Field name made lowercase. - noprintperiods = models.CharField(db_column='NoPrintPeriods', max_length=150, blank=True, - null=True) # Field name made lowercase. - contrarytoabsence = models.CharField(db_column='ContraryToAbsence', max_length=150, blank=True, - null=True) # Field name made lowercase. - messagesent = models.CharField(db_column='MessageSent', max_length=150, blank=True, - null=True) # Field name made lowercase. - examperiodtexts = models.CharField(db_column='ExamPeriodTexts', max_length=2000, 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. + db_table = "Event" + unique_together = (("school_id", "schoolyear_id", "version_id", "event_id"),) + + +class Exam(models.Model, PureDjangoModel): + 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. + exam_id = models.IntegerField(db_column="EXAM_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. + text = models.CharField( + db_column="Text", max_length=100, 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. + date = models.IntegerField( + db_column="Date", blank=True, null=True + ) # Field name made lowercase. + lessonfrom = models.SmallIntegerField( + db_column="LessonFrom", blank=True, null=True + ) # Field name made lowercase. + lessonto = models.SmallIntegerField( + db_column="LessonTo", blank=True, null=True + ) # Field name made lowercase. + examelement1 = models.CharField( + db_column="ExamElement1", max_length=1000, blank=True, null=True + ) # Field name made lowercase. + examelement2 = models.CharField( + db_column="ExamElement2", max_length=1000, blank=True, null=True + ) # Field name made lowercase. + examelement3 = models.CharField( + db_column="ExamElement3", max_length=1000, blank=True, null=True + ) # Field name made lowercase. + examelement4 = models.CharField( + db_column="ExamElement4", max_length=1000, blank=True, null=True + ) # Field name made lowercase. + examelement5 = models.CharField( + db_column="ExamElement5", max_length=1000, blank=True, null=True + ) # Field name made lowercase. + examelement6 = models.CharField( + db_column="ExamElement6", max_length=1000, blank=True, null=True + ) # Field name made lowercase. + examelement7 = models.CharField( + db_column="ExamElement7", max_length=1000, blank=True, null=True + ) # Field name made lowercase. + examelement8 = models.CharField( + db_column="ExamElement8", max_length=1000, blank=True, null=True + ) # Field name made lowercase. + examelement9 = models.CharField( + db_column="ExamElement9", max_length=1000, blank=True, null=True + ) # Field name made lowercase. + examelement10 = models.CharField( + db_column="ExamElement10", max_length=1000, blank=True, null=True + ) # Field name made lowercase. + substactive = models.IntegerField( + db_column="SubstActive", blank=True, null=True + ) # Field name made lowercase. + noprintperiods = models.CharField( + db_column="NoPrintPeriods", max_length=150, blank=True, null=True + ) # Field name made lowercase. + contrarytoabsence = models.CharField( + db_column="ContraryToAbsence", max_length=150, blank=True, null=True + ) # Field name made lowercase. + messagesent = models.CharField( + db_column="MessageSent", max_length=150, blank=True, null=True + ) # Field name made lowercase. + examperiodtexts = models.CharField( + db_column="ExamPeriodTexts", max_length=2000, 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. class Meta: managed = False - db_table = 'Exam' - unique_together = (('school_id', 'schoolyear_id', 'version_id', 'exam_id'),) - - -class Externelement(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. - exel_id = models.IntegerField(db_column='EXEL_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. - text = models.CharField(db_column='Text', max_length=100, 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. - elementtype = models.SmallIntegerField(db_column='ElementType', blank=True, null=True) # Field name made lowercase. - ownerschool = models.IntegerField(db_column='OwnerSchool', blank=True, null=True) # Field name made lowercase. - allowedschools = models.CharField(db_column='AllowedSchools', max_length=255, blank=True, - null=True) # Field name made lowercase. - lastchangedbyschool = models.IntegerField(db_column='LastChangedBySchool', blank=True, - null=True) # Field name made lowercase. + db_table = "Exam" + unique_together = (("school_id", "schoolyear_id", "version_id", "exam_id"),) + + +class Externelement(models.Model, PureDjangoModel): + 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. + exel_id = models.IntegerField(db_column="EXEL_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. + text = models.CharField( + db_column="Text", max_length=100, 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. + elementtype = models.SmallIntegerField( + db_column="ElementType", blank=True, null=True + ) # Field name made lowercase. + ownerschool = models.IntegerField( + db_column="OwnerSchool", blank=True, null=True + ) # Field name made lowercase. + allowedschools = models.CharField( + db_column="AllowedSchools", max_length=255, blank=True, null=True + ) # Field name made lowercase. + lastchangedbyschool = models.IntegerField( + db_column="LastChangedBySchool", blank=True, null=True + ) # Field name made lowercase. class Meta: managed = False - db_table = 'ExternElement' - unique_together = (('school_id', 'schoolyear_id', 'version_id', 'exel_id'),) - - -class Externindex(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. - number = models.SmallIntegerField(db_column='Number') # Field name made lowercase. - exel_id = models.IntegerField(db_column='EXEL_ID') # Field name made lowercase. - school_id1 = models.IntegerField(db_column='SCHOOL_ID1') # Field name made lowercase. - year = models.SmallIntegerField(db_column='Year') # 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. + db_table = "ExternElement" + unique_together = (("school_id", "schoolyear_id", "version_id", "exel_id"),) + + +class Externindex(models.Model, PureDjangoModel): + 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. + number = models.SmallIntegerField(db_column="Number") # Field name made lowercase. + exel_id = models.IntegerField(db_column="EXEL_ID") # Field name made lowercase. + school_id1 = models.IntegerField(db_column="SCHOOL_ID1") # Field name made lowercase. + year = models.SmallIntegerField(db_column="Year") # 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. class Meta: managed = False - db_table = 'ExternIndex' - unique_together = (('school_id', 'schoolyear_id', 'version_id', 'exel_id', 'number', 'year', 'school_id1'),) - - -class Externtime(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. - number = models.IntegerField(db_column='Number') # Field name made lowercase. - exel_id = models.IntegerField(db_column='EXEL_ID') # Field name made lowercase. - school_id1 = models.IntegerField(db_column='SCHOOL_ID1') # Field name made lowercase. - year = models.SmallIntegerField(db_column='Year') # 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. - text = models.CharField(db_column='Text', max_length=100, 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. - weekday = models.SmallIntegerField(db_column='WeekDay', blank=True, null=True) # Field name made lowercase. - timefrom = models.SmallIntegerField(db_column='TimeFrom', blank=True, null=True) # Field name made lowercase. - timeto = models.SmallIntegerField(db_column='TimeTo', blank=True, null=True) # Field name made lowercase. - weeks = models.CharField(db_column='Weeks', max_length=255, blank=True, null=True) # Field name made lowercase. - elements = models.CharField(db_column='Elements', max_length=1000, blank=True, - null=True) # Field name made lowercase. + db_table = "ExternIndex" + unique_together = ( + ("school_id", "schoolyear_id", "version_id", "exel_id", "number", "year", "school_id1"), + ) + + +class Externtime(models.Model, PureDjangoModel): + 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. + number = models.IntegerField(db_column="Number") # Field name made lowercase. + exel_id = models.IntegerField(db_column="EXEL_ID") # Field name made lowercase. + school_id1 = models.IntegerField(db_column="SCHOOL_ID1") # Field name made lowercase. + year = models.SmallIntegerField(db_column="Year") # 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. + text = models.CharField( + db_column="Text", max_length=100, 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. + weekday = models.SmallIntegerField( + db_column="WeekDay", blank=True, null=True + ) # Field name made lowercase. + timefrom = models.SmallIntegerField( + db_column="TimeFrom", blank=True, null=True + ) # Field name made lowercase. + timeto = models.SmallIntegerField( + db_column="TimeTo", blank=True, null=True + ) # Field name made lowercase. + weeks = models.CharField( + db_column="Weeks", max_length=255, blank=True, null=True + ) # Field name made lowercase. + elements = models.CharField( + db_column="Elements", max_length=1000, blank=True, null=True + ) # Field name made lowercase. class Meta: managed = False - db_table = 'ExternTime' - unique_together = (('school_id', 'schoolyear_id', 'version_id', 'number', 'exel_id', 'school_id1', 'year'),) - - -class Glaettung(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. - number = models.SmallIntegerField(db_column='Number') # Field name made lowercase. - teacher_id = models.IntegerField(db_column='TEACHER_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. - weekfrom = models.SmallIntegerField(db_column='WeekFrom', blank=True, null=True) # Field name made lowercase. - weekto = models.SmallIntegerField(db_column='WeekTo', blank=True, null=True) # Field name made lowercase. - glaettung = models.IntegerField(db_column='Glaettung', blank=True, null=True) # Field name made lowercase. + db_table = "ExternTime" + unique_together = ( + ("school_id", "schoolyear_id", "version_id", "number", "exel_id", "school_id1", "year"), + ) + + +class Glaettung(models.Model, PureDjangoModel): + 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. + number = models.SmallIntegerField(db_column="Number") # Field name made lowercase. + teacher_id = models.IntegerField(db_column="TEACHER_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. + weekfrom = models.SmallIntegerField( + db_column="WeekFrom", blank=True, null=True + ) # Field name made lowercase. + weekto = models.SmallIntegerField( + db_column="WeekTo", blank=True, null=True + ) # Field name made lowercase. + glaettung = models.IntegerField( + db_column="Glaettung", blank=True, null=True + ) # Field name made lowercase. class Meta: managed = False - db_table = 'Glaettung' - unique_together = (('school_id', 'schoolyear_id', 'version_id', 'teacher_id', 'number'),) - - -class Holiday(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. - holiday_id = models.IntegerField(db_column='HOLIDAY_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. - 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. - flags = models.CharField(db_column='Flags', max_length=100, blank=True, null=True) # Field name made lowercase. - nextweek = models.SmallIntegerField(db_column='NextWeek', blank=True, null=True) # Field name made lowercase. - nextschoolweek = models.SmallIntegerField(db_column='NextSchoolWeek', blank=True, - null=True) # Field name made lowercase. - datefrom = models.IntegerField(db_column='DateFrom', blank=True, null=True) # Field name made lowercase. - dateto = models.IntegerField(db_column='DateTo', blank=True, null=True) # Field name made lowercase. + db_table = "Glaettung" + unique_together = (("school_id", "schoolyear_id", "version_id", "teacher_id", "number"),) + + +class Holiday(models.Model, PureDjangoModel): + 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. + holiday_id = models.IntegerField(db_column="HOLIDAY_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. + 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. + flags = models.CharField( + db_column="Flags", max_length=100, blank=True, null=True + ) # Field name made lowercase. + nextweek = models.SmallIntegerField( + db_column="NextWeek", blank=True, null=True + ) # Field name made lowercase. + nextschoolweek = models.SmallIntegerField( + db_column="NextSchoolWeek", blank=True, null=True + ) # Field name made lowercase. + datefrom = models.IntegerField( + db_column="DateFrom", blank=True, null=True + ) # Field name made lowercase. + dateto = models.IntegerField( + db_column="DateTo", blank=True, null=True + ) # Field name made lowercase. class Meta: managed = False - db_table = 'Holiday' - unique_together = (('school_id', 'schoolyear_id', 'version_id', 'holiday_id'),) - - -class Inputformat(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. - input_format_id = models.IntegerField(db_column='INPUT_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. - miscdata = models.CharField(db_column='MiscData', max_length=255, 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. - printfont = models.CharField(db_column='PrintFont', max_length=120, blank=True, - null=True) # Field name made lowercase. - actualelement_id2 = models.IntegerField(db_column='ActualELEMENT_ID2', blank=True, - null=True) # Field name made lowercase. - headerfields = models.CharField(db_column='HeaderFields', max_length=100, blank=True, - null=True) # Field name made lowercase. - type2 = models.SmallIntegerField(db_column='Type2', blank=True, null=True) # Field name made lowercase. - columnsstr = models.CharField(db_column='ColumnsStr', max_length=255, blank=True, - null=True) # Field name made lowercase. - columnsactivestr = models.CharField(db_column='ColumnsActiveStr', max_length=255, blank=True, - null=True) # Field name made lowercase. - colwidthsstr = models.CharField(db_column='ColWidthsStr', max_length=255, blank=True, - null=True) # Field name made lowercase. - layouthaeder = models.SmallIntegerField(db_column='LayoutHaeder', blank=True, - null=True) # Field name made lowercase. - colsfixed = models.SmallIntegerField(db_column='ColsFixed', blank=True, null=True) # Field name made lowercase. - nocol = models.SmallIntegerField(db_column='NoCol', blank=True, null=True) # Field name made lowercase. - colwidth = models.SmallIntegerField(db_column='ColWidth', blank=True, null=True) # Field name made lowercase. - nocolteacher = models.SmallIntegerField(db_column='NoColTeacher', blank=True, - null=True) # Field name made lowercase. - typex = models.CharField(db_column='TypeX', max_length=1, 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. - flags1 = models.CharField(db_column='Flags1', max_length=100, blank=True, null=True) # Field name made lowercase. + db_table = "Holiday" + unique_together = (("school_id", "schoolyear_id", "version_id", "holiday_id"),) + + +class Inputformat(models.Model, PureDjangoModel): + 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. + input_format_id = models.IntegerField(db_column="INPUT_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. + miscdata = models.CharField( + db_column="MiscData", max_length=255, 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. + printfont = models.CharField( + db_column="PrintFont", max_length=120, blank=True, null=True + ) # Field name made lowercase. + actualelement_id2 = models.IntegerField( + db_column="ActualELEMENT_ID2", blank=True, null=True + ) # Field name made lowercase. + headerfields = models.CharField( + db_column="HeaderFields", max_length=100, blank=True, null=True + ) # Field name made lowercase. + type2 = models.SmallIntegerField( + db_column="Type2", blank=True, null=True + ) # Field name made lowercase. + columnsstr = models.CharField( + db_column="ColumnsStr", max_length=255, blank=True, null=True + ) # Field name made lowercase. + columnsactivestr = models.CharField( + db_column="ColumnsActiveStr", max_length=255, blank=True, null=True + ) # Field name made lowercase. + colwidthsstr = models.CharField( + db_column="ColWidthsStr", max_length=255, blank=True, null=True + ) # Field name made lowercase. + layouthaeder = models.SmallIntegerField( + db_column="LayoutHaeder", blank=True, null=True + ) # Field name made lowercase. + colsfixed = models.SmallIntegerField( + db_column="ColsFixed", blank=True, null=True + ) # Field name made lowercase. + nocol = models.SmallIntegerField( + db_column="NoCol", blank=True, null=True + ) # Field name made lowercase. + colwidth = models.SmallIntegerField( + db_column="ColWidth", blank=True, null=True + ) # Field name made lowercase. + nocolteacher = models.SmallIntegerField( + db_column="NoColTeacher", blank=True, null=True + ) # Field name made lowercase. + typex = models.CharField( + db_column="TypeX", max_length=1, 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. + flags1 = models.CharField( + db_column="Flags1", max_length=100, blank=True, null=True + ) # Field name made lowercase. class Meta: managed = False - db_table = 'InputFormat' - unique_together = (('school_id', 'schoolyear_id', 'version_id', 'input_format_id', 'owner'),) - - -class Lesson(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. - lesson_id = models.IntegerField(db_column='LESSON_ID') # Field name made lowercase. - term_id = models.SmallIntegerField(db_column='TERM_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. - text = models.CharField(db_column='Text', max_length=200, 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. - timerequest = models.CharField(db_column='TimeRequest', max_length=400, 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. - blankflags = models.CharField(db_column='BlankFlags', max_length=80, blank=True, - null=True) # Field name made lowercase. - description_id = models.IntegerField(db_column='DESCRIPTION_ID', blank=True, - null=True) # Field name made lowercase. - forecolor = models.IntegerField(db_column='ForeColor', blank=True, null=True) # Field name made lowercase. - backcolor = models.IntegerField(db_column='BackColor', blank=True, null=True) # Field name made lowercase. - factor = models.CharField(db_column='Factor', max_length=9, blank=True, null=True) # Field name made lowercase. - foreigndata = models.CharField(db_column='ForeignData', max_length=255, blank=True, - null=True) # Field name made lowercase. - foreignkey = models.CharField(db_column='ForeignKey', max_length=50, blank=True, - null=True) # Field name made lowercase. - miscdata = models.CharField(db_column='MiscData', max_length=255, blank=True, - null=True) # Field name made lowercase. - sortidfinper = models.SmallIntegerField(db_column='SortIdFinPer', blank=True, - null=True) # Field name made lowercase. - lessonnr = models.IntegerField(db_column='LessonNr', blank=True, null=True) # Field name made lowercase. - periods = models.IntegerField(db_column='Periods', blank=True, null=True) # Field name made lowercase. - doublemin = models.IntegerField(db_column='DoubleMin', blank=True, null=True) # Field name made lowercase. - doublemax = models.IntegerField(db_column='DoubleMax', blank=True, null=True) # Field name made lowercase. - periodsroom = models.IntegerField(db_column='PeriodsRoom', blank=True, null=True) # Field name made lowercase. - periodsroommax = models.IntegerField(db_column='PeriodsRoomMax', blank=True, - null=True) # Field name made lowercase. - priority = models.SmallIntegerField(db_column='Priority', blank=True, null=True) # Field name made lowercase. - plannedyear = models.SmallIntegerField(db_column='PlannedYear', blank=True, null=True) # Field name made lowercase. - subjectseqcla = models.CharField(db_column='SubjectSeqCla', max_length=1, blank=True, - null=True) # Field name made lowercase. - subjectseqtea = models.CharField(db_column='SubjectSeqTea', max_length=1, blank=True, - null=True) # Field name made lowercase. - classcollision = models.CharField(db_column='ClassCollision', max_length=1, blank=True, - null=True) # Field name made lowercase. - optflag = models.CharField(db_column='OptFlag', max_length=1, blank=True, null=True) # Field name made lowercase. - lesngroups = models.CharField(db_column='LesnGroups', max_length=255, blank=True, - null=True) # Field name made lowercase. - lessonelement1 = models.CharField(db_column='LessonElement1', max_length=1000, blank=True, - null=True) # Field name made lowercase. - lessonelement2 = models.CharField(db_column='LessonElement2', max_length=1000, blank=True, - null=True) # Field name made lowercase. - lessonelement3 = models.CharField(db_column='LessonElement3', max_length=1000, blank=True, - null=True) # Field name made lowercase. - lessonelement4 = models.CharField(db_column='LessonElement4', max_length=1000, blank=True, - null=True) # Field name made lowercase. - lessonelement5 = models.CharField(db_column='LessonElement5', max_length=1000, blank=True, - null=True) # Field name made lowercase. - lessonelement6 = models.CharField(db_column='LessonElement6', max_length=1000, blank=True, - null=True) # Field name made lowercase. - lessonelement7 = models.CharField(db_column='LessonElement7', max_length=1000, blank=True, - null=True) # Field name made lowercase. - lessonelement8 = models.CharField(db_column='LessonElement8', max_length=1000, blank=True, - null=True) # Field name made lowercase. - lessonelement9 = models.CharField(db_column='LessonElement9', max_length=1000, blank=True, - null=True) # Field name made lowercase. - lessonelement10 = models.CharField(db_column='LessonElement10', max_length=1000, blank=True, - null=True) # Field name made lowercase. - lesson_tt = models.TextField(db_column='Lesson_TT', blank=True, null=True) # Field name made lowercase. - lesson_ttminut = models.TextField(db_column='Lesson_TTMinut', blank=True, null=True) # Field name made lowercase. - plannedweekminut = models.SmallIntegerField(db_column='PlannedWeekMinut', blank=True, - null=True) # Field name made lowercase. - plannedyearminut = models.IntegerField(db_column='PlannedYearMinut', blank=True, - null=True) # Field name made lowercase. - lesson_group_id = models.IntegerField(db_column='LESSON_GROUP_ID', blank=True, - null=True) # Field name made lowercase. - datefrom = models.IntegerField(db_column='DateFrom', blank=True, null=True) # Field name made lowercase. - dateto = models.IntegerField(db_column='DateTo', blank=True, null=True) # Field name made lowercase. - reasonnotplanned = models.SmallIntegerField(db_column='ReasonNotPlanned', blank=True, - null=True) # Field name made lowercase. - timenotplanned = models.SmallIntegerField(db_column='TimeNotPlanned', blank=True, - null=True) # Field name made lowercase. - block1 = models.SmallIntegerField(db_column='Block1', blank=True, null=True) # Field name made lowercase. - block2 = models.SmallIntegerField(db_column='Block2', blank=True, null=True) # Field name made lowercase. - block3 = models.SmallIntegerField(db_column='Block3', blank=True, null=True) # Field name made lowercase. - block4 = models.SmallIntegerField(db_column='Block4', blank=True, null=True) # Field name made lowercase. - block5 = models.SmallIntegerField(db_column='Block5', blank=True, null=True) # Field name made lowercase. - nostudentmin = models.SmallIntegerField(db_column='NoStudentMin', blank=True, - null=True) # Field name made lowercase. - nostudentmax = models.SmallIntegerField(db_column='NoStudentMax', blank=True, - null=True) # Field name made lowercase. - ypperperiod1 = models.CharField(db_column='YPPerPeriod1', max_length=255, blank=True, - null=True) # Field name made lowercase. - ypperperiod2 = models.CharField(db_column='YPPerPeriod2', max_length=255, blank=True, - null=True) # Field name made lowercase. - intensiveterm = models.CharField(db_column='IntensiveTerm', max_length=255, blank=True, - null=True) # Field name made lowercase. - partnos = models.CharField(db_column='PartNos', max_length=255, blank=True, null=True) # Field name made lowercase. - blockn = models.CharField(db_column='BlockN', max_length=200, blank=True, null=True) # Field name made lowercase. - isyearperiods = models.SmallIntegerField(db_column='IsYearPeriods', blank=True, - null=True) # Field name made lowercase. + db_table = "InputFormat" + unique_together = ( + ("school_id", "schoolyear_id", "version_id", "input_format_id", "owner"), + ) + + +class Lesson(models.Model, PureDjangoModel): + 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. + lesson_id = models.IntegerField(db_column="LESSON_ID") # Field name made lowercase. + term_id = models.SmallIntegerField(db_column="TERM_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. + text = models.CharField( + db_column="Text", max_length=200, 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. + timerequest = models.CharField( + db_column="TimeRequest", max_length=400, 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. + blankflags = models.CharField( + db_column="BlankFlags", max_length=80, blank=True, null=True + ) # Field name made lowercase. + description_id = models.IntegerField( + db_column="DESCRIPTION_ID", blank=True, null=True + ) # Field name made lowercase. + forecolor = models.IntegerField( + db_column="ForeColor", blank=True, null=True + ) # Field name made lowercase. + backcolor = models.IntegerField( + db_column="BackColor", blank=True, null=True + ) # Field name made lowercase. + factor = models.CharField( + db_column="Factor", max_length=9, blank=True, null=True + ) # Field name made lowercase. + foreigndata = models.CharField( + db_column="ForeignData", max_length=255, blank=True, null=True + ) # Field name made lowercase. + foreignkey = models.CharField( + db_column="ForeignKey", max_length=50, blank=True, null=True + ) # Field name made lowercase. + miscdata = models.CharField( + db_column="MiscData", max_length=255, blank=True, null=True + ) # Field name made lowercase. + sortidfinper = models.SmallIntegerField( + db_column="SortIdFinPer", blank=True, null=True + ) # Field name made lowercase. + lessonnr = models.IntegerField( + db_column="LessonNr", blank=True, null=True + ) # Field name made lowercase. + periods = models.IntegerField( + db_column="Periods", blank=True, null=True + ) # Field name made lowercase. + doublemin = models.IntegerField( + db_column="DoubleMin", blank=True, null=True + ) # Field name made lowercase. + doublemax = models.IntegerField( + db_column="DoubleMax", blank=True, null=True + ) # Field name made lowercase. + periodsroom = models.IntegerField( + db_column="PeriodsRoom", blank=True, null=True + ) # Field name made lowercase. + periodsroommax = models.IntegerField( + db_column="PeriodsRoomMax", blank=True, null=True + ) # Field name made lowercase. + priority = models.SmallIntegerField( + db_column="Priority", blank=True, null=True + ) # Field name made lowercase. + plannedyear = models.SmallIntegerField( + db_column="PlannedYear", blank=True, null=True + ) # Field name made lowercase. + subjectseqcla = models.CharField( + db_column="SubjectSeqCla", max_length=1, blank=True, null=True + ) # Field name made lowercase. + subjectseqtea = models.CharField( + db_column="SubjectSeqTea", max_length=1, blank=True, null=True + ) # Field name made lowercase. + classcollision = models.CharField( + db_column="ClassCollision", max_length=1, blank=True, null=True + ) # Field name made lowercase. + optflag = models.CharField( + db_column="OptFlag", max_length=1, blank=True, null=True + ) # Field name made lowercase. + lesngroups = models.CharField( + db_column="LesnGroups", max_length=255, blank=True, null=True + ) # Field name made lowercase. + lessonelement1 = models.CharField( + db_column="LessonElement1", max_length=1000, blank=True, null=True + ) # Field name made lowercase. + lessonelement2 = models.CharField( + db_column="LessonElement2", max_length=1000, blank=True, null=True + ) # Field name made lowercase. + lessonelement3 = models.CharField( + db_column="LessonElement3", max_length=1000, blank=True, null=True + ) # Field name made lowercase. + lessonelement4 = models.CharField( + db_column="LessonElement4", max_length=1000, blank=True, null=True + ) # Field name made lowercase. + lessonelement5 = models.CharField( + db_column="LessonElement5", max_length=1000, blank=True, null=True + ) # Field name made lowercase. + lessonelement6 = models.CharField( + db_column="LessonElement6", max_length=1000, blank=True, null=True + ) # Field name made lowercase. + lessonelement7 = models.CharField( + db_column="LessonElement7", max_length=1000, blank=True, null=True + ) # Field name made lowercase. + lessonelement8 = models.CharField( + db_column="LessonElement8", max_length=1000, blank=True, null=True + ) # Field name made lowercase. + lessonelement9 = models.CharField( + db_column="LessonElement9", max_length=1000, blank=True, null=True + ) # Field name made lowercase. + lessonelement10 = models.CharField( + db_column="LessonElement10", max_length=1000, blank=True, null=True + ) # Field name made lowercase. + lesson_tt = models.TextField( + db_column="Lesson_TT", blank=True, null=True + ) # Field name made lowercase. + lesson_ttminut = models.TextField( + db_column="Lesson_TTMinut", blank=True, null=True + ) # Field name made lowercase. + plannedweekminut = models.SmallIntegerField( + db_column="PlannedWeekMinut", blank=True, null=True + ) # Field name made lowercase. + plannedyearminut = models.IntegerField( + db_column="PlannedYearMinut", blank=True, null=True + ) # Field name made lowercase. + lesson_group_id = models.IntegerField( + db_column="LESSON_GROUP_ID", blank=True, null=True + ) # Field name made lowercase. + datefrom = models.IntegerField( + db_column="DateFrom", blank=True, null=True + ) # Field name made lowercase. + dateto = models.IntegerField( + db_column="DateTo", blank=True, null=True + ) # Field name made lowercase. + reasonnotplanned = models.SmallIntegerField( + db_column="ReasonNotPlanned", blank=True, null=True + ) # Field name made lowercase. + timenotplanned = models.SmallIntegerField( + db_column="TimeNotPlanned", blank=True, null=True + ) # Field name made lowercase. + block1 = models.SmallIntegerField( + db_column="Block1", blank=True, null=True + ) # Field name made lowercase. + block2 = models.SmallIntegerField( + db_column="Block2", blank=True, null=True + ) # Field name made lowercase. + block3 = models.SmallIntegerField( + db_column="Block3", blank=True, null=True + ) # Field name made lowercase. + block4 = models.SmallIntegerField( + db_column="Block4", blank=True, null=True + ) # Field name made lowercase. + block5 = models.SmallIntegerField( + db_column="Block5", blank=True, null=True + ) # Field name made lowercase. + nostudentmin = models.SmallIntegerField( + db_column="NoStudentMin", blank=True, null=True + ) # Field name made lowercase. + nostudentmax = models.SmallIntegerField( + db_column="NoStudentMax", blank=True, null=True + ) # Field name made lowercase. + ypperperiod1 = models.CharField( + db_column="YPPerPeriod1", max_length=255, blank=True, null=True + ) # Field name made lowercase. + ypperperiod2 = models.CharField( + db_column="YPPerPeriod2", max_length=255, blank=True, null=True + ) # Field name made lowercase. + intensiveterm = models.CharField( + db_column="IntensiveTerm", max_length=255, blank=True, null=True + ) # Field name made lowercase. + partnos = models.CharField( + db_column="PartNos", max_length=255, blank=True, null=True + ) # Field name made lowercase. + blockn = models.CharField( + db_column="BlockN", max_length=200, blank=True, null=True + ) # Field name made lowercase. + isyearperiods = models.SmallIntegerField( + db_column="IsYearPeriods", blank=True, null=True + ) # Field name made lowercase. class Meta: managed = False - db_table = 'Lesson' - unique_together = (('school_id', 'schoolyear_id', 'version_id', 'lesson_id', 'term_id'),) - - -class Lessongroup(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. - lesson_group_id = models.IntegerField(db_column='LESSON_GROUP_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. - text = models.CharField(db_column='Text', max_length=100, 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. - blankflags = models.CharField(db_column='BlankFlags', max_length=80, blank=True, - null=True) # Field name made lowercase. - room_id = models.IntegerField(db_column='ROOM_ID', blank=True, null=True) # Field name made lowercase. - description_id = models.IntegerField(db_column='DESCRIPTION_ID', blank=True, - null=True) # Field name made lowercase. - forecolor = models.IntegerField(db_column='ForeColor', blank=True, null=True) # Field name made lowercase. - backcolor = models.IntegerField(db_column='BackColor', blank=True, null=True) # Field name made lowercase. - factor = models.CharField(db_column='Factor', max_length=9, blank=True, null=True) # Field name made lowercase. - foreigndata = models.CharField(db_column='ForeignData', max_length=255, blank=True, - null=True) # Field name made lowercase. - foreignkey = models.CharField(db_column='ForeignKey', max_length=50, blank=True, - null=True) # Field name made lowercase. - datefrom = models.IntegerField(db_column='DateFrom', blank=True, null=True) # Field name made lowercase. - dateto = models.IntegerField(db_column='DateTo', blank=True, null=True) # Field name made lowercase. - week = models.IntegerField(db_column='Week', blank=True, null=True) # Field name made lowercase. - inrerruptionsfrom = models.CharField(db_column='InrerruptionsFrom', max_length=255, blank=True, - null=True) # Field name made lowercase. - inrerruptionsto = models.CharField(db_column='InrerruptionsTo', max_length=255, blank=True, - null=True) # Field name made lowercase. - interruptionsfrom1 = models.CharField(db_column='InterruptionsFrom1', max_length=1000, blank=True, - null=True) # Field name made lowercase. - interruptionsto1 = models.CharField(db_column='InterruptionsTo1', max_length=1000, blank=True, - null=True) # Field name made lowercase. + db_table = "Lesson" + unique_together = (("school_id", "schoolyear_id", "version_id", "lesson_id", "term_id"),) + + +class Lessongroup(models.Model, PureDjangoModel): + 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. + lesson_group_id = models.IntegerField(db_column="LESSON_GROUP_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. + text = models.CharField( + db_column="Text", max_length=100, 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. + blankflags = models.CharField( + db_column="BlankFlags", max_length=80, blank=True, null=True + ) # Field name made lowercase. + room_id = models.IntegerField( + db_column="ROOM_ID", blank=True, null=True + ) # Field name made lowercase. + description_id = models.IntegerField( + db_column="DESCRIPTION_ID", blank=True, null=True + ) # Field name made lowercase. + forecolor = models.IntegerField( + db_column="ForeColor", blank=True, null=True + ) # Field name made lowercase. + backcolor = models.IntegerField( + db_column="BackColor", blank=True, null=True + ) # Field name made lowercase. + factor = models.CharField( + db_column="Factor", max_length=9, blank=True, null=True + ) # Field name made lowercase. + foreigndata = models.CharField( + db_column="ForeignData", max_length=255, blank=True, null=True + ) # Field name made lowercase. + foreignkey = models.CharField( + db_column="ForeignKey", max_length=50, blank=True, null=True + ) # Field name made lowercase. + datefrom = models.IntegerField( + db_column="DateFrom", blank=True, null=True + ) # Field name made lowercase. + dateto = models.IntegerField( + db_column="DateTo", blank=True, null=True + ) # Field name made lowercase. + week = models.IntegerField( + db_column="Week", blank=True, null=True + ) # Field name made lowercase. + inrerruptionsfrom = models.CharField( + db_column="InrerruptionsFrom", max_length=255, blank=True, null=True + ) # Field name made lowercase. + inrerruptionsto = models.CharField( + db_column="InrerruptionsTo", max_length=255, blank=True, null=True + ) # Field name made lowercase. + interruptionsfrom1 = models.CharField( + db_column="InterruptionsFrom1", max_length=1000, blank=True, null=True + ) # Field name made lowercase. + interruptionsto1 = models.CharField( + db_column="InterruptionsTo1", max_length=1000, blank=True, null=True + ) # Field name made lowercase. class Meta: managed = False - db_table = 'LessonGroup' - unique_together = (('school_id', 'schoolyear_id', 'version_id', 'lesson_group_id'),) - - -class Lessonsequence(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. - type = models.SmallIntegerField(db_column='Type') # Field name made lowercase. - lesson_sequence_id = models.IntegerField(db_column='LESSON_SEQUENCE_ID') # Field name made lowercase. - term_id = models.SmallIntegerField(db_column='TERM_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. - flags = models.CharField(db_column='Flags', max_length=100, blank=True, null=True) # Field name made lowercase. - periods = models.IntegerField(db_column='Periods', blank=True, null=True) # Field name made lowercase. - doubleperiods = models.IntegerField(db_column='DoublePeriods', blank=True, null=True) # Field name made lowercase. - lessonids = models.CharField(db_column='LessonIds', max_length=255, blank=True, - null=True) # Field name made lowercase. + db_table = "LessonGroup" + unique_together = (("school_id", "schoolyear_id", "version_id", "lesson_group_id"),) + + +class Lessonsequence(models.Model, PureDjangoModel): + 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. + type = models.SmallIntegerField(db_column="Type") # Field name made lowercase. + lesson_sequence_id = models.IntegerField( + db_column="LESSON_SEQUENCE_ID" + ) # Field name made lowercase. + term_id = models.SmallIntegerField(db_column="TERM_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. + flags = models.CharField( + db_column="Flags", max_length=100, blank=True, null=True + ) # Field name made lowercase. + periods = models.IntegerField( + db_column="Periods", blank=True, null=True + ) # Field name made lowercase. + doubleperiods = models.IntegerField( + db_column="DoublePeriods", blank=True, null=True + ) # Field name made lowercase. + lessonids = models.CharField( + db_column="LessonIds", max_length=255, blank=True, null=True + ) # Field name made lowercase. class Meta: managed = False - db_table = 'LessonSequence' - unique_together = (('school_id', 'schoolyear_id', 'version_id', 'type', 'lesson_sequence_id', 'term_id'),) - - -class Lessonstack(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. - user_id = models.SmallIntegerField(db_column='USER_ID') # Field name made lowercase. - stack_id = models.IntegerField(db_column='STACK_ID') # Field name made lowercase. - term_id = models.SmallIntegerField(db_column='TERM_ID') # Field name made lowercase. - typestack = models.SmallIntegerField(db_column='TypeStack') # Field name made lowercase. - typeelement = models.SmallIntegerField(db_column='TypeElement') # Field name made lowercase. - counter = models.IntegerField(db_column='Counter', blank=True, null=True) # Field name made lowercase. - deleted = models.IntegerField(db_column='Deleted', blank=True, null=True) # Field name made lowercase. - coordinates = models.CharField(db_column='Coordinates', max_length=2000, blank=True, - null=True) # Field name made lowercase. + db_table = "LessonSequence" + unique_together = ( + ("school_id", "schoolyear_id", "version_id", "type", "lesson_sequence_id", "term_id"), + ) + + +class Lessonstack(models.Model, PureDjangoModel): + 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. + user_id = models.SmallIntegerField(db_column="USER_ID") # Field name made lowercase. + stack_id = models.IntegerField(db_column="STACK_ID") # Field name made lowercase. + term_id = models.SmallIntegerField(db_column="TERM_ID") # Field name made lowercase. + typestack = models.SmallIntegerField(db_column="TypeStack") # Field name made lowercase. + typeelement = models.SmallIntegerField(db_column="TypeElement") # Field name made lowercase. + counter = models.IntegerField( + db_column="Counter", blank=True, null=True + ) # Field name made lowercase. + deleted = models.IntegerField( + db_column="Deleted", blank=True, null=True + ) # Field name made lowercase. + coordinates = models.CharField( + db_column="Coordinates", max_length=2000, blank=True, null=True + ) # Field name made lowercase. 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'),) - - -class Periodstable(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. - periods_table_id = models.IntegerField(db_column='PERIODS_TABLE_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. - 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. - forecolor = models.IntegerField(db_column='ForeColor', blank=True, null=True) # Field name made lowercase. - backcolor = models.IntegerField(db_column='BackColor', blank=True, null=True) # Field name made lowercase. - foreigndata = models.CharField(db_column='ForeignData', max_length=255, blank=True, - null=True) # Field name made lowercase. - foreignkey = models.CharField(db_column='ForeignKey', max_length=50, blank=True, - null=True) # Field name made lowercase. - pertabelement1 = models.CharField(db_column='PerTabElement1', max_length=1000, blank=True, - null=True) # Field name made lowercase. - pertabelement2 = models.CharField(db_column='PerTabElement2', max_length=1000, blank=True, - null=True) # Field name made lowercase. - pertabelement3 = models.CharField(db_column='PerTabElement3', max_length=1000, blank=True, - null=True) # Field name made lowercase. - pertabelement4 = models.CharField(db_column='PerTabElement4', max_length=1000, blank=True, - null=True) # Field name made lowercase. - pertabelement5 = models.CharField(db_column='PerTabElement5', max_length=1000, blank=True, - null=True) # Field name made lowercase. - pertabelement6 = models.CharField(db_column='PerTabElement6', max_length=1000, blank=True, - null=True) # Field name made lowercase. + ( + "school_id", + "schoolyear_id", + "version_id", + "user_id", + "stack_id", + "term_id", + "typestack", + "typeelement", + ), + ) + + +class Periodstable(models.Model, PureDjangoModel): + 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. + periods_table_id = models.IntegerField( + db_column="PERIODS_TABLE_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. + 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. + forecolor = models.IntegerField( + db_column="ForeColor", blank=True, null=True + ) # Field name made lowercase. + backcolor = models.IntegerField( + db_column="BackColor", blank=True, null=True + ) # Field name made lowercase. + foreigndata = models.CharField( + db_column="ForeignData", max_length=255, blank=True, null=True + ) # Field name made lowercase. + foreignkey = models.CharField( + db_column="ForeignKey", max_length=50, blank=True, null=True + ) # Field name made lowercase. + pertabelement1 = models.CharField( + db_column="PerTabElement1", max_length=1000, blank=True, null=True + ) # Field name made lowercase. + pertabelement2 = models.CharField( + db_column="PerTabElement2", max_length=1000, blank=True, null=True + ) # Field name made lowercase. + pertabelement3 = models.CharField( + db_column="PerTabElement3", max_length=1000, blank=True, null=True + ) # Field name made lowercase. + pertabelement4 = models.CharField( + db_column="PerTabElement4", max_length=1000, blank=True, null=True + ) # Field name made lowercase. + pertabelement5 = models.CharField( + db_column="PerTabElement5", max_length=1000, blank=True, null=True + ) # Field name made lowercase. + pertabelement6 = models.CharField( + db_column="PerTabElement6", max_length=1000, blank=True, null=True + ) # Field name made lowercase. class Meta: managed = False - db_table = 'PeriodsTable' - unique_together = (('school_id', 'schoolyear_id', 'version_id', 'periods_table_id'),) - - -class Prebooking(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. - prebooking_id = models.IntegerField(db_column='PREBOOKING_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. - text = models.CharField(db_column='Text', max_length=100, 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. - 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. - room_id = models.IntegerField(db_column='ROOM_ID', blank=True, null=True) # Field name made lowercase. - periods = models.SmallIntegerField(db_column='Periods', blank=True, null=True) # Field name made lowercase. - teacher_id = models.IntegerField(db_column='TEACHER_ID', blank=True, null=True) # Field name made lowercase. - subject_id = models.IntegerField(db_column='SUBJECT_ID', blank=True, null=True) # Field name made lowercase. - lesson_id = models.IntegerField(db_column='LESSON_ID', blank=True, null=True) # Field name made lowercase. - substitution_id = models.IntegerField(db_column='SUBSTITUTION_ID', blank=True, - null=True) # Field name made lowercase. - classids = models.CharField(db_column='ClassIds', max_length=1000, blank=True, - null=True) # Field name made lowercase. - studentids = models.CharField(db_column='StudentIds', max_length=1000, blank=True, - null=True) # Field name made lowercase. + db_table = "PeriodsTable" + unique_together = (("school_id", "schoolyear_id", "version_id", "periods_table_id"),) + + +class Prebooking(models.Model, PureDjangoModel): + 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. + prebooking_id = models.IntegerField(db_column="PREBOOKING_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. + text = models.CharField( + db_column="Text", max_length=100, 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. + 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. + room_id = models.IntegerField( + db_column="ROOM_ID", blank=True, null=True + ) # Field name made lowercase. + periods = models.SmallIntegerField( + db_column="Periods", blank=True, null=True + ) # Field name made lowercase. + teacher_id = models.IntegerField( + db_column="TEACHER_ID", blank=True, null=True + ) # Field name made lowercase. + subject_id = models.IntegerField( + db_column="SUBJECT_ID", blank=True, null=True + ) # Field name made lowercase. + lesson_id = models.IntegerField( + db_column="LESSON_ID", blank=True, null=True + ) # Field name made lowercase. + substitution_id = models.IntegerField( + db_column="SUBSTITUTION_ID", blank=True, null=True + ) # Field name made lowercase. + classids = models.CharField( + db_column="ClassIds", max_length=1000, blank=True, null=True + ) # Field name made lowercase. + studentids = models.CharField( + db_column="StudentIds", max_length=1000, blank=True, null=True + ) # Field name made lowercase. class Meta: managed = False - db_table = 'Prebooking' - unique_together = (('school_id', 'schoolyear_id', 'version_id', 'prebooking_id'),) - - -class Room(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. - room_id = models.IntegerField(db_column='ROOM_ID') # Field name made lowercase. - term_id = models.SmallIntegerField(db_column='TERM_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. - text = models.CharField(db_column='Text', max_length=100, 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. - timerequest = models.CharField(db_column='TimeRequest', max_length=400, blank=True, - null=True) # Field name made lowercase. - timerequestminut = models.CharField(db_column='TimeRequestMinut', max_length=400, 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. - blankflags = models.CharField(db_column='BlankFlags', max_length=80, blank=True, - null=True) # Field name made lowercase. - description_id = models.IntegerField(db_column='DESCRIPTION_ID', blank=True, - null=True) # Field name made lowercase. - forecolor = models.IntegerField(db_column='ForeColor', blank=True, null=True) # Field name made lowercase. - backcolor = models.IntegerField(db_column='BackColor', blank=True, null=True) # Field name made lowercase. - factor = models.CharField(db_column='Factor', max_length=9, blank=True, null=True) # Field name made lowercase. - foreigndata = models.CharField(db_column='ForeignData', max_length=255, blank=True, - null=True) # Field name made lowercase. - foreignkey = models.CharField(db_column='ForeignKey', max_length=50, blank=True, - null=True) # Field name made lowercase. - oldname = models.CharField(db_column='OldName', max_length=60, blank=True, null=True) # Field name made lowercase. - alternate_room_id = models.IntegerField(db_column='ALTERNATE_ROOM_ID', blank=True, - null=True) # Field name made lowercase. - department_id = models.IntegerField(db_column='DEPARTMENT_ID', blank=True, null=True) # Field name made lowercase. - corridor1 = models.CharField(db_column='Corridor1', max_length=60, blank=True, - null=True) # Field name made lowercase. - corridor2 = models.CharField(db_column='Corridor2', max_length=60, blank=True, - null=True) # Field name made lowercase. - corridors = models.CharField(db_column='Corridors', max_length=255, blank=True, - null=True) # Field name made lowercase. - dislocation = models.CharField(db_column='Dislocation', max_length=1, blank=True, - null=True) # Field name made lowercase. - capacity = models.SmallIntegerField(db_column='Capacity', blank=True, null=True) # Field name made lowercase. - weighting = models.SmallIntegerField(db_column='Weighting', blank=True, null=True) # Field name made lowercase. - minutbreakmin = models.SmallIntegerField(db_column='MinutBreakMin', blank=True, - null=True) # Field name made lowercase. - externname = models.CharField(db_column='ExternName', max_length=60, blank=True, - null=True) # Field name made lowercase. - departments = models.CharField(db_column='Departments', max_length=20, blank=True, - null=True) # Field name made lowercase. + db_table = "Prebooking" + unique_together = (("school_id", "schoolyear_id", "version_id", "prebooking_id"),) + + +class Room(models.Model, PureDjangoModel): + 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. + room_id = models.IntegerField(db_column="ROOM_ID") # Field name made lowercase. + term_id = models.SmallIntegerField(db_column="TERM_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. + text = models.CharField( + db_column="Text", max_length=100, 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. + timerequest = models.CharField( + db_column="TimeRequest", max_length=400, blank=True, null=True + ) # Field name made lowercase. + timerequestminut = models.CharField( + db_column="TimeRequestMinut", max_length=400, 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. + blankflags = models.CharField( + db_column="BlankFlags", max_length=80, blank=True, null=True + ) # Field name made lowercase. + description_id = models.IntegerField( + db_column="DESCRIPTION_ID", blank=True, null=True + ) # Field name made lowercase. + forecolor = models.IntegerField( + db_column="ForeColor", blank=True, null=True + ) # Field name made lowercase. + backcolor = models.IntegerField( + db_column="BackColor", blank=True, null=True + ) # Field name made lowercase. + factor = models.CharField( + db_column="Factor", max_length=9, blank=True, null=True + ) # Field name made lowercase. + foreigndata = models.CharField( + db_column="ForeignData", max_length=255, blank=True, null=True + ) # Field name made lowercase. + foreignkey = models.CharField( + db_column="ForeignKey", max_length=50, blank=True, null=True + ) # Field name made lowercase. + oldname = models.CharField( + db_column="OldName", max_length=60, blank=True, null=True + ) # Field name made lowercase. + alternate_room_id = models.IntegerField( + db_column="ALTERNATE_ROOM_ID", blank=True, null=True + ) # Field name made lowercase. + department_id = models.IntegerField( + db_column="DEPARTMENT_ID", blank=True, null=True + ) # Field name made lowercase. + corridor1 = models.CharField( + db_column="Corridor1", max_length=60, blank=True, null=True + ) # Field name made lowercase. + corridor2 = models.CharField( + db_column="Corridor2", max_length=60, blank=True, null=True + ) # Field name made lowercase. + corridors = models.CharField( + db_column="Corridors", max_length=255, blank=True, null=True + ) # Field name made lowercase. + dislocation = models.CharField( + db_column="Dislocation", max_length=1, blank=True, null=True + ) # Field name made lowercase. + capacity = models.SmallIntegerField( + db_column="Capacity", blank=True, null=True + ) # Field name made lowercase. + weighting = models.SmallIntegerField( + db_column="Weighting", blank=True, null=True + ) # Field name made lowercase. + minutbreakmin = models.SmallIntegerField( + db_column="MinutBreakMin", blank=True, null=True + ) # Field name made lowercase. + externname = models.CharField( + db_column="ExternName", max_length=60, blank=True, null=True + ) # Field name made lowercase. + departments = models.CharField( + db_column="Departments", max_length=20, blank=True, null=True + ) # Field name made lowercase. class Meta: managed = False - db_table = 'Room' - unique_together = (('school_id', 'schoolyear_id', 'version_id', 'room_id', 'term_id'),) - - -class Roomgroup(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. - roomgroup_id = models.IntegerField(db_column='ROOMGROUP_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. - 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. - forecolor = models.IntegerField(db_column='ForeColor', blank=True, null=True) # Field name made lowercase. - backcolor = models.IntegerField(db_column='BackColor', blank=True, null=True) # Field name made lowercase. - roomids = models.CharField(db_column='RoomIds', max_length=255, blank=True, null=True) # Field name made lowercase. + db_table = "Room" + unique_together = (("school_id", "schoolyear_id", "version_id", "room_id", "term_id"),) + + +class Roomgroup(models.Model, PureDjangoModel): + 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. + roomgroup_id = models.IntegerField(db_column="ROOMGROUP_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. + 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. + forecolor = models.IntegerField( + db_column="ForeColor", blank=True, null=True + ) # Field name made lowercase. + backcolor = models.IntegerField( + db_column="BackColor", blank=True, null=True + ) # Field name made lowercase. + roomids = models.CharField( + db_column="RoomIds", max_length=255, blank=True, null=True + ) # Field name made lowercase. class Meta: managed = False - db_table = 'RoomGroup' - unique_together = (('school_id', 'schoolyear_id', 'version_id', 'roomgroup_id'),) - - -class School(models.Model): - school_id = models.IntegerField(db_column='SCHOOL_ID', primary_key=True) # Field name made lowercase. - schoolno = models.CharField(db_column='SchoolNo', max_length=20, blank=True, - null=True) # Field name made lowercase. - lizense1 = models.CharField(db_column='Lizense1', max_length=50, blank=True, - null=True) # Field name made lowercase. - lizense2 = models.CharField(db_column='Lizense2', max_length=50, blank=True, - null=True) # Field name made lowercase. - lizensenr1 = models.CharField(db_column='LizenseNr1', max_length=8, blank=True, - null=True) # Field name made lowercase. - lizensenr2 = models.CharField(db_column='LizenseNr2', max_length=7, blank=True, - null=True) # Field name made lowercase. - lizensenr3 = models.CharField(db_column='LizenseNr3', max_length=7, blank=True, - null=True) # Field name made lowercase. - expirationdate = models.IntegerField(db_column='ExpirationDate', blank=True, - null=True) # Field name made lowercase. - user_id = models.SmallIntegerField(db_column='USER_ID', blank=True, null=True) # Field name made lowercase. - date = models.IntegerField(db_column='Date', blank=True, null=True) # Field name made lowercase. - time = models.SmallIntegerField(db_column='Time', blank=True, null=True) # Field name made lowercase. - version_id = models.SmallIntegerField(db_column='VERSION_ID', blank=True, null=True) # Field name made lowercase. - lightmodus = models.IntegerField(db_column='LightModus', blank=True, null=True) # Field name made lowercase. - text = models.CharField(db_column='Text', max_length=50, blank=True, null=True) # Field name made lowercase. - numberstudents = models.IntegerField(db_column='NumberStudents', blank=True, - null=True) # Field name made lowercase. + db_table = "RoomGroup" + unique_together = (("school_id", "schoolyear_id", "version_id", "roomgroup_id"),) + + +class School(models.Model, PureDjangoModel): + school_id = models.IntegerField( + db_column="SCHOOL_ID", primary_key=True + ) # Field name made lowercase. + schoolno = models.CharField( + db_column="SchoolNo", max_length=20, blank=True, null=True + ) # Field name made lowercase. + lizense1 = models.CharField( + db_column="Lizense1", max_length=50, blank=True, null=True + ) # Field name made lowercase. + lizense2 = models.CharField( + db_column="Lizense2", max_length=50, blank=True, null=True + ) # Field name made lowercase. + lizensenr1 = models.CharField( + db_column="LizenseNr1", max_length=8, blank=True, null=True + ) # Field name made lowercase. + lizensenr2 = models.CharField( + db_column="LizenseNr2", max_length=7, blank=True, null=True + ) # Field name made lowercase. + lizensenr3 = models.CharField( + db_column="LizenseNr3", max_length=7, blank=True, null=True + ) # Field name made lowercase. + expirationdate = models.IntegerField( + db_column="ExpirationDate", blank=True, null=True + ) # Field name made lowercase. + user_id = models.SmallIntegerField( + db_column="USER_ID", blank=True, null=True + ) # Field name made lowercase. + date = models.IntegerField( + db_column="Date", blank=True, null=True + ) # Field name made lowercase. + time = models.SmallIntegerField( + db_column="Time", blank=True, null=True + ) # Field name made lowercase. + version_id = models.SmallIntegerField( + db_column="VERSION_ID", blank=True, null=True + ) # Field name made lowercase. + lightmodus = models.IntegerField( + db_column="LightModus", blank=True, null=True + ) # Field name made lowercase. + text = models.CharField( + db_column="Text", max_length=50, blank=True, null=True + ) # Field name made lowercase. + numberstudents = models.IntegerField( + db_column="NumberStudents", blank=True, null=True + ) # Field name made lowercase. class Meta: managed = False - db_table = 'School' - - -class Schoolyear(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. - counterlast = models.IntegerField(db_column='CounterLast', blank=True, null=True) # Field name made lowercase. - user_id = models.SmallIntegerField(db_column='USER_ID', blank=True, null=True) # Field name made lowercase. - date = models.IntegerField(db_column='Date', blank=True, null=True) # Field name made lowercase. - time = models.IntegerField(db_column='Time', blank=True, null=True) # Field name made lowercase. - schoolyearzoned = models.CharField(db_column='SchoolYearZoned', max_length=20, blank=True, - null=True) # Field name made lowercase. - text = models.CharField(db_column='Text', max_length=50, blank=True, null=True) # Field name made lowercase. + db_table = "School" + + +class Schoolyear(models.Model, PureDjangoModel): + 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. + counterlast = models.IntegerField( + db_column="CounterLast", blank=True, null=True + ) # Field name made lowercase. + user_id = models.SmallIntegerField( + db_column="USER_ID", blank=True, null=True + ) # Field name made lowercase. + date = models.IntegerField( + db_column="Date", blank=True, null=True + ) # Field name made lowercase. + time = models.IntegerField( + db_column="Time", blank=True, null=True + ) # Field name made lowercase. + schoolyearzoned = models.CharField( + db_column="SchoolYearZoned", max_length=20, blank=True, null=True + ) # Field name made lowercase. + text = models.CharField( + db_column="Text", max_length=50, blank=True, null=True + ) # Field name made lowercase. class Meta: managed = False - db_table = 'SchoolYear' - unique_together = (('school_id', 'schoolyear_id'),) - - -class Screenset(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. - screenset_id = models.IntegerField(db_column='SCREENSET_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. - flags = models.CharField(db_column='Flags', max_length=100, blank=True, null=True) # Field name made lowercase. - modus = models.CharField(db_column='Modus', max_length=1, blank=True, null=True) # Field name made lowercase. - numbers = models.SmallIntegerField(db_column='NumberS', blank=True, null=True) # Field name made lowercase. - windows1 = models.CharField(db_column='Windows1', max_length=255, blank=True, - null=True) # Field name made lowercase. - windows2 = models.CharField(db_column='Windows2', max_length=255, blank=True, - null=True) # Field name made lowercase. - windows3 = models.CharField(db_column='Windows3', max_length=255, blank=True, - null=True) # Field name made lowercase. - windows4 = models.CharField(db_column='Windows4', max_length=255, blank=True, - null=True) # Field name made lowercase. - windows5 = models.CharField(db_column='Windows5', max_length=255, blank=True, - null=True) # Field name made lowercase. - windows6 = models.CharField(db_column='Windows6', max_length=255, blank=True, - null=True) # Field name made lowercase. + db_table = "SchoolYear" + unique_together = (("school_id", "schoolyear_id"),) + + +class Screenset(models.Model, PureDjangoModel): + 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. + screenset_id = models.IntegerField(db_column="SCREENSET_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. + flags = models.CharField( + db_column="Flags", max_length=100, blank=True, null=True + ) # Field name made lowercase. + modus = models.CharField( + db_column="Modus", max_length=1, blank=True, null=True + ) # Field name made lowercase. + numbers = models.SmallIntegerField( + db_column="NumberS", blank=True, null=True + ) # Field name made lowercase. + windows1 = models.CharField( + db_column="Windows1", max_length=255, blank=True, null=True + ) # Field name made lowercase. + windows2 = models.CharField( + db_column="Windows2", max_length=255, blank=True, null=True + ) # Field name made lowercase. + windows3 = models.CharField( + db_column="Windows3", max_length=255, blank=True, null=True + ) # Field name made lowercase. + windows4 = models.CharField( + db_column="Windows4", max_length=255, blank=True, null=True + ) # Field name made lowercase. + windows5 = models.CharField( + db_column="Windows5", max_length=255, blank=True, null=True + ) # Field name made lowercase. + windows6 = models.CharField( + db_column="Windows6", max_length=255, blank=True, null=True + ) # Field name made lowercase. class Meta: managed = False - db_table = 'ScreenSet' - unique_together = (('school_id', 'schoolyear_id', 'version_id', 'screenset_id', 'owner'),) - - -class Student(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. - student_id = models.IntegerField(db_column='STUDENT_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. - text = models.CharField(db_column='Text', max_length=100, 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. - blankflags = models.CharField(db_column='BlankFlags', max_length=80, blank=True, - null=True) # Field name made lowercase. - description_id = models.IntegerField(db_column='DESCRIPTION_ID', blank=True, - null=True) # Field name made lowercase. - forecolor = models.IntegerField(db_column='ForeColor', blank=True, null=True) # Field name made lowercase. - backcolor = models.IntegerField(db_column='BackColor', blank=True, null=True) # Field name made lowercase. - factor = models.CharField(db_column='Factor', max_length=9, blank=True, null=True) # Field name made lowercase. - foreigndata = models.CharField(db_column='ForeignData', max_length=255, blank=True, - null=True) # Field name made lowercase. - foreignkey = models.CharField(db_column='ForeignKey', max_length=50, blank=True, - null=True) # Field name made lowercase. - oldname = models.CharField(db_column='OldName', max_length=60, blank=True, null=True) # Field name made lowercase. - firstname = models.CharField(db_column='FirstName', max_length=150, blank=True, - null=True) # Field name made lowercase. - studnumber = models.CharField(db_column='StudNumber', max_length=20, blank=True, - null=True) # Field name made lowercase. - email = models.CharField(db_column='Email', max_length=80, blank=True, null=True) # Field name made lowercase. - birthdate = models.IntegerField(db_column='BirthDate', blank=True, null=True) # Field name made lowercase. - optsign = models.CharField(db_column='OptSign', max_length=1, blank=True, null=True) # Field name made lowercase. - class_id = models.IntegerField(db_column='CLASS_ID', blank=True, null=True) # Field name made lowercase. - class_id2 = models.SmallIntegerField(db_column='CLASS_ID2', blank=True, null=True) # Field name made lowercase. - class_id3 = models.SmallIntegerField(db_column='CLASS_ID3', blank=True, null=True) # Field name made lowercase. - class_id4 = models.SmallIntegerField(db_column='CLASS_ID4', blank=True, null=True) # Field name made lowercase. - class_id5 = models.SmallIntegerField(db_column='CLASS_ID5', blank=True, null=True) # Field name made lowercase. - class_id6 = models.SmallIntegerField(db_column='CLASS_ID6', blank=True, null=True) # Field name made lowercase. + db_table = "ScreenSet" + unique_together = (("school_id", "schoolyear_id", "version_id", "screenset_id", "owner"),) + + +class Student(models.Model, PureDjangoModel): + 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. + student_id = models.IntegerField(db_column="STUDENT_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. + text = models.CharField( + db_column="Text", max_length=100, 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. + blankflags = models.CharField( + db_column="BlankFlags", max_length=80, blank=True, null=True + ) # Field name made lowercase. + description_id = models.IntegerField( + db_column="DESCRIPTION_ID", blank=True, null=True + ) # Field name made lowercase. + forecolor = models.IntegerField( + db_column="ForeColor", blank=True, null=True + ) # Field name made lowercase. + backcolor = models.IntegerField( + db_column="BackColor", blank=True, null=True + ) # Field name made lowercase. + factor = models.CharField( + db_column="Factor", max_length=9, blank=True, null=True + ) # Field name made lowercase. + foreigndata = models.CharField( + db_column="ForeignData", max_length=255, blank=True, null=True + ) # Field name made lowercase. + foreignkey = models.CharField( + db_column="ForeignKey", max_length=50, blank=True, null=True + ) # Field name made lowercase. + oldname = models.CharField( + db_column="OldName", max_length=60, blank=True, null=True + ) # Field name made lowercase. + firstname = models.CharField( + db_column="FirstName", max_length=150, blank=True, null=True + ) # Field name made lowercase. + studnumber = models.CharField( + db_column="StudNumber", max_length=20, blank=True, null=True + ) # Field name made lowercase. + email = models.CharField( + db_column="Email", max_length=80, blank=True, null=True + ) # Field name made lowercase. + birthdate = models.IntegerField( + db_column="BirthDate", blank=True, null=True + ) # Field name made lowercase. + optsign = models.CharField( + db_column="OptSign", max_length=1, blank=True, null=True + ) # Field name made lowercase. + class_id = models.IntegerField( + db_column="CLASS_ID", blank=True, null=True + ) # Field name made lowercase. + class_id2 = models.SmallIntegerField( + db_column="CLASS_ID2", blank=True, null=True + ) # Field name made lowercase. + class_id3 = models.SmallIntegerField( + db_column="CLASS_ID3", blank=True, null=True + ) # Field name made lowercase. + class_id4 = models.SmallIntegerField( + db_column="CLASS_ID4", blank=True, null=True + ) # Field name made lowercase. + class_id5 = models.SmallIntegerField( + db_column="CLASS_ID5", blank=True, null=True + ) # Field name made lowercase. + class_id6 = models.SmallIntegerField( + db_column="CLASS_ID6", blank=True, null=True + ) # Field name made lowercase. class Meta: managed = False - db_table = 'Student' - unique_together = (('school_id', 'schoolyear_id', 'version_id', 'student_id'),) - - -class Studentchoice(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. - student_id = models.IntegerField(db_column='STUDENT_ID') # Field name made lowercase. - term_id = models.SmallIntegerField(db_column='TERM_ID') # Field name made lowercase. - number = models.SmallIntegerField(db_column='Number') # 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. - statisticcodes = models.CharField(db_column='StatisticCodes', max_length=10, 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. - numberalternativegiven = models.SmallIntegerField(db_column='NumberAlternativeGiven', blank=True, - null=True) # Field name made lowercase. - alternativecourses = models.CharField(db_column='AlternativeCourses', max_length=255, blank=True, - null=True) # Field name made lowercase. - standbycourses = models.CharField(db_column='StandByCourses', max_length=255, blank=True, - null=True) # Field name made lowercase. + db_table = "Student" + unique_together = (("school_id", "schoolyear_id", "version_id", "student_id"),) + + +class Studentchoice(models.Model, PureDjangoModel): + 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. + student_id = models.IntegerField(db_column="STUDENT_ID") # Field name made lowercase. + term_id = models.SmallIntegerField(db_column="TERM_ID") # Field name made lowercase. + number = models.SmallIntegerField(db_column="Number") # 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. + statisticcodes = models.CharField( + db_column="StatisticCodes", max_length=10, 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. + numberalternativegiven = models.SmallIntegerField( + db_column="NumberAlternativeGiven", blank=True, null=True + ) # Field name made lowercase. + alternativecourses = models.CharField( + db_column="AlternativeCourses", max_length=255, blank=True, null=True + ) # Field name made lowercase. + standbycourses = models.CharField( + db_column="StandByCourses", max_length=255, blank=True, null=True + ) # Field name made lowercase. class Meta: managed = False - db_table = 'StudentChoice' - unique_together = (('school_id', 'schoolyear_id', 'version_id', 'student_id', 'term_id', 'number'),) - - -class Studentgroup(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. - studentgroup_id = models.IntegerField(db_column='STUDENTGROUP_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. - 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. - oldname = models.CharField(db_column='OldName', max_length=60, blank=True, null=True) # Field name made lowercase. - subject_id = models.IntegerField(db_column='SUBJECT_ID', blank=True, null=True) # Field name made lowercase. - classids = models.CharField(db_column='ClassIds', max_length=255, blank=True, - null=True) # Field name made lowercase. + db_table = "StudentChoice" + unique_together = ( + ("school_id", "schoolyear_id", "version_id", "student_id", "term_id", "number"), + ) + + +class Studentgroup(models.Model, PureDjangoModel): + 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. + studentgroup_id = models.IntegerField(db_column="STUDENTGROUP_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. + 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. + oldname = models.CharField( + db_column="OldName", max_length=60, blank=True, null=True + ) # Field name made lowercase. + subject_id = models.IntegerField( + db_column="SUBJECT_ID", blank=True, null=True + ) # Field name made lowercase. + classids = models.CharField( + db_column="ClassIds", max_length=255, blank=True, null=True + ) # Field name made lowercase. class Meta: managed = False - db_table = 'StudentGroup' - unique_together = (('school_id', 'schoolyear_id', 'version_id', 'studentgroup_id'),) - - -class Subjectgroup(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. - subjectgroup_id = models.IntegerField(db_column='SUBJECTGROUP_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. - forecolor = models.IntegerField(db_column='ForeColor', blank=True, null=True) # Field name made lowercase. - backcolor = models.IntegerField(db_column='BackColor', blank=True, null=True) # Field name made lowercase. - subjectids = models.CharField(db_column='SubjectIds', max_length=255, blank=True, - null=True) # Field name made lowercase. + db_table = "StudentGroup" + unique_together = (("school_id", "schoolyear_id", "version_id", "studentgroup_id"),) + + +class Subjectgroup(models.Model, PureDjangoModel): + 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. + subjectgroup_id = models.IntegerField(db_column="SUBJECTGROUP_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. + forecolor = models.IntegerField( + db_column="ForeColor", blank=True, null=True + ) # Field name made lowercase. + backcolor = models.IntegerField( + db_column="BackColor", blank=True, null=True + ) # Field name made lowercase. + subjectids = models.CharField( + db_column="SubjectIds", max_length=255, blank=True, null=True + ) # Field name made lowercase. class Meta: managed = False - db_table = 'SubjectGroup' - unique_together = (('school_id', 'schoolyear_id', 'version_id', 'subjectgroup_id'),) - - -class Subjects(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. - subject_id = models.IntegerField(db_column='SUBJECT_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. - text = models.CharField(db_column='Text', max_length=100, 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. - timerequest = models.CharField(db_column='TimeRequest', max_length=400, blank=True, - null=True) # Field name made lowercase. - timerequestminut = models.CharField(db_column='TimeRequestMinut', max_length=400, blank=True, - null=True) # Field name made lowercase. - selmatrix = models.CharField(db_column='SelMatrix', 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. - blankflags = models.CharField(db_column='BlankFlags', max_length=80, blank=True, - null=True) # Field name made lowercase. - room_id = models.IntegerField(db_column='ROOM_ID', blank=True, null=True) # Field name made lowercase. - description_id = models.IntegerField(db_column='DESCRIPTION_ID', blank=True, - null=True) # Field name made lowercase. - forecolor = models.IntegerField(db_column='ForeColor', blank=True, null=True) # Field name made lowercase. - backcolor = models.IntegerField(db_column='BackColor', blank=True, null=True) # Field name made lowercase. - factor = models.CharField(db_column='Factor', max_length=9, blank=True, null=True) # Field name made lowercase. - foreigndata = models.CharField(db_column='ForeignData', max_length=255, blank=True, - null=True) # Field name made lowercase. - foreignkey = models.CharField(db_column='ForeignKey', max_length=50, blank=True, - null=True) # Field name made lowercase. - miscdata = models.CharField(db_column='MiscData', max_length=255, blank=True, - null=True) # Field name made lowercase. - oldname = models.CharField(db_column='OldName', max_length=60, blank=True, null=True) # Field name made lowercase. - sujectgroup = models.CharField(db_column='SujectGroup', max_length=20, blank=True, - null=True) # Field name made lowercase. - subjectseqcla = models.CharField(db_column='SubjectSeqCla', max_length=1, blank=True, - null=True) # Field name made lowercase. - subjectseqtea = models.CharField(db_column='SubjectSeqTea', max_length=1, blank=True, - null=True) # Field name made lowercase. - lssnpmmin = models.SmallIntegerField(db_column='LssnPMmin', blank=True, null=True) # Field name made lowercase. - lssnpmmax = models.SmallIntegerField(db_column='LssnPMmax', blank=True, null=True) # Field name made lowercase. - lssnweekmin = models.SmallIntegerField(db_column='LssnWeekMin', blank=True, null=True) # Field name made lowercase. - lssnweekmax = models.SmallIntegerField(db_column='LssnWeekMax', blank=True, null=True) # Field name made lowercase. - minutpmmin = models.SmallIntegerField(db_column='MinutPMmin', blank=True, null=True) # Field name made lowercase. - minutpmmax = models.SmallIntegerField(db_column='MinutPMmax', blank=True, null=True) # Field name made lowercase. - minutbreak1 = models.SmallIntegerField(db_column='MinutBreak1', blank=True, null=True) # Field name made lowercase. - minutbreak2 = models.SmallIntegerField(db_column='MinutBreak2', blank=True, null=True) # Field name made lowercase. - minutlssn = models.SmallIntegerField(db_column='MinutLssn', blank=True, null=True) # Field name made lowercase. - minutlssnweekmin = models.SmallIntegerField(db_column='MinutLssnWeekMin', blank=True, - null=True) # Field name made lowercase. - minutlssnweekmax = models.SmallIntegerField(db_column='MinutLssnWeekMax', blank=True, - null=True) # Field name made lowercase. - departments = models.CharField(db_column='Departments', max_length=120, blank=True, - null=True) # Field name made lowercase. + db_table = "SubjectGroup" + unique_together = (("school_id", "schoolyear_id", "version_id", "subjectgroup_id"),) + + +class Subjects(models.Model, PureDjangoModel): + 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. + subject_id = models.IntegerField(db_column="SUBJECT_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. + text = models.CharField( + db_column="Text", max_length=100, 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. + timerequest = models.CharField( + db_column="TimeRequest", max_length=400, blank=True, null=True + ) # Field name made lowercase. + timerequestminut = models.CharField( + db_column="TimeRequestMinut", max_length=400, blank=True, null=True + ) # Field name made lowercase. + selmatrix = models.CharField( + db_column="SelMatrix", 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. + blankflags = models.CharField( + db_column="BlankFlags", max_length=80, blank=True, null=True + ) # Field name made lowercase. + room_id = models.IntegerField( + db_column="ROOM_ID", blank=True, null=True + ) # Field name made lowercase. + description_id = models.IntegerField( + db_column="DESCRIPTION_ID", blank=True, null=True + ) # Field name made lowercase. + forecolor = models.IntegerField( + db_column="ForeColor", blank=True, null=True + ) # Field name made lowercase. + backcolor = models.IntegerField( + db_column="BackColor", blank=True, null=True + ) # Field name made lowercase. + factor = models.CharField( + db_column="Factor", max_length=9, blank=True, null=True + ) # Field name made lowercase. + foreigndata = models.CharField( + db_column="ForeignData", max_length=255, blank=True, null=True + ) # Field name made lowercase. + foreignkey = models.CharField( + db_column="ForeignKey", max_length=50, blank=True, null=True + ) # Field name made lowercase. + miscdata = models.CharField( + db_column="MiscData", max_length=255, blank=True, null=True + ) # Field name made lowercase. + oldname = models.CharField( + db_column="OldName", max_length=60, blank=True, null=True + ) # Field name made lowercase. + sujectgroup = models.CharField( + db_column="SujectGroup", max_length=20, blank=True, null=True + ) # Field name made lowercase. + subjectseqcla = models.CharField( + db_column="SubjectSeqCla", max_length=1, blank=True, null=True + ) # Field name made lowercase. + subjectseqtea = models.CharField( + db_column="SubjectSeqTea", max_length=1, blank=True, null=True + ) # Field name made lowercase. + lssnpmmin = models.SmallIntegerField( + db_column="LssnPMmin", blank=True, null=True + ) # Field name made lowercase. + lssnpmmax = models.SmallIntegerField( + db_column="LssnPMmax", blank=True, null=True + ) # Field name made lowercase. + lssnweekmin = models.SmallIntegerField( + db_column="LssnWeekMin", blank=True, null=True + ) # Field name made lowercase. + lssnweekmax = models.SmallIntegerField( + db_column="LssnWeekMax", blank=True, null=True + ) # Field name made lowercase. + minutpmmin = models.SmallIntegerField( + db_column="MinutPMmin", blank=True, null=True + ) # Field name made lowercase. + minutpmmax = models.SmallIntegerField( + db_column="MinutPMmax", blank=True, null=True + ) # Field name made lowercase. + minutbreak1 = models.SmallIntegerField( + db_column="MinutBreak1", blank=True, null=True + ) # Field name made lowercase. + minutbreak2 = models.SmallIntegerField( + db_column="MinutBreak2", blank=True, null=True + ) # Field name made lowercase. + minutlssn = models.SmallIntegerField( + db_column="MinutLssn", blank=True, null=True + ) # Field name made lowercase. + minutlssnweekmin = models.SmallIntegerField( + db_column="MinutLssnWeekMin", blank=True, null=True + ) # Field name made lowercase. + minutlssnweekmax = models.SmallIntegerField( + db_column="MinutLssnWeekMax", blank=True, null=True + ) # Field name made lowercase. + departments = models.CharField( + db_column="Departments", max_length=120, blank=True, null=True + ) # Field name made lowercase. class Meta: managed = False - db_table = 'Subjects' - unique_together = (('school_id', 'schoolyear_id', 'version_id', 'subject_id'),) - - -class Substitution(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. - substitution_id = models.IntegerField(db_column='SUBSTITUTION_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. - text = models.CharField(db_column='Text', max_length=100, 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. - 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. - date = models.IntegerField(db_column='Date', blank=True, null=True) # Field name made lowercase. - lesson = models.SmallIntegerField(db_column='Lesson', blank=True, null=True) # Field name made lowercase. - teacher_idsubst = models.IntegerField(db_column='TEACHER_IDSubst', blank=True, - null=True) # Field name made lowercase. - teacher_idlessn = models.IntegerField(db_column='TEACHER_IDLessn', blank=True, - null=True) # Field name made lowercase. - subject_idsubst = models.IntegerField(db_column='SUBJECT_IDSubst', blank=True, - null=True) # Field name made lowercase. - room_idsubst = models.IntegerField(db_column='ROOM_IDSubst', blank=True, null=True) # Field name made lowercase. - lesson_idsubst = models.IntegerField(db_column='LESSON_IDSubst', blank=True, - null=True) # Field name made lowercase. - corridor_id = models.IntegerField(db_column='CORRIDOR_ID', blank=True, null=True) # Field name made lowercase. - transfer_id = models.IntegerField(db_column='TRANSFER_ID', blank=True, null=True) # Field name made lowercase. - exam_id = models.IntegerField(db_column='EXAM_ID', blank=True, null=True) # Field name made lowercase. - caused_by_exam_id = models.IntegerField(db_column='CAUSED_BY_EXAM_ID', blank=True, - null=True) # Field name made lowercase. - coupling = models.SmallIntegerField(db_column='Coupling', blank=True, null=True) # Field name made lowercase. - text2 = models.CharField(db_column='Text2', max_length=100, blank=True, null=True) # Field name made lowercase. - classids = models.CharField(db_column='ClassIds', max_length=255, blank=True, - null=True) # Field name made lowercase. - absenceids = models.CharField(db_column='AbsenceIds', max_length=255, blank=True, - null=True) # Field name made lowercase. - prebookingnr = models.IntegerField(db_column='PrebookingNr', blank=True, null=True) # Field name made lowercase. - prebookingnrtransfer = models.IntegerField(db_column='PrebookingNrTransfer', blank=True, - null=True) # Field name made lowercase. - studentids = models.CharField(db_column='StudentIds', max_length=1000, blank=True, - null=True) # Field name made lowercase. - substvalue = models.CharField(db_column='SubstValue', max_length=9, blank=True, - null=True) # Field name made lowercase. - studentgroup = models.CharField(db_column='StudentGroup', max_length=100, blank=True, - null=True) # Field name made lowercase. - roomids = models.CharField(db_column='RoomIds', max_length=255, blank=True, null=True) # Field name made lowercase. - bookingtype = models.IntegerField(db_column='BookingType', blank=True, null=True) # Field name made lowercase. - studentgroup_id = models.IntegerField(db_column='STUDENTGROUP_ID', blank=True, - null=True) # Field name made lowercase. - breaksubstdata = models.CharField(db_column='BreakSubstData', max_length=50, blank=True, - null=True) # Field name made lowercase. + db_table = "Subjects" + unique_together = (("school_id", "schoolyear_id", "version_id", "subject_id"),) + + +class Substitution(models.Model, PureDjangoModel): + 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. + substitution_id = models.IntegerField(db_column="SUBSTITUTION_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. + text = models.CharField( + db_column="Text", max_length=100, 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. + 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. + date = models.IntegerField( + db_column="Date", blank=True, null=True + ) # Field name made lowercase. + lesson = models.SmallIntegerField( + db_column="Lesson", blank=True, null=True + ) # Field name made lowercase. + teacher_idsubst = models.IntegerField( + db_column="TEACHER_IDSubst", blank=True, null=True + ) # Field name made lowercase. + teacher_idlessn = models.IntegerField( + db_column="TEACHER_IDLessn", blank=True, null=True + ) # Field name made lowercase. + subject_idsubst = models.IntegerField( + db_column="SUBJECT_IDSubst", blank=True, null=True + ) # Field name made lowercase. + room_idsubst = models.IntegerField( + db_column="ROOM_IDSubst", blank=True, null=True + ) # Field name made lowercase. + lesson_idsubst = models.IntegerField( + db_column="LESSON_IDSubst", blank=True, null=True + ) # Field name made lowercase. + corridor_id = models.IntegerField( + db_column="CORRIDOR_ID", blank=True, null=True + ) # Field name made lowercase. + transfer_id = models.IntegerField( + db_column="TRANSFER_ID", blank=True, null=True + ) # Field name made lowercase. + exam_id = models.IntegerField( + db_column="EXAM_ID", blank=True, null=True + ) # Field name made lowercase. + caused_by_exam_id = models.IntegerField( + db_column="CAUSED_BY_EXAM_ID", blank=True, null=True + ) # Field name made lowercase. + coupling = models.SmallIntegerField( + db_column="Coupling", blank=True, null=True + ) # Field name made lowercase. + text2 = models.CharField( + db_column="Text2", max_length=100, blank=True, null=True + ) # Field name made lowercase. + classids = models.CharField( + db_column="ClassIds", max_length=255, blank=True, null=True + ) # Field name made lowercase. + absenceids = models.CharField( + db_column="AbsenceIds", max_length=255, blank=True, null=True + ) # Field name made lowercase. + prebookingnr = models.IntegerField( + db_column="PrebookingNr", blank=True, null=True + ) # Field name made lowercase. + prebookingnrtransfer = models.IntegerField( + db_column="PrebookingNrTransfer", blank=True, null=True + ) # Field name made lowercase. + studentids = models.CharField( + db_column="StudentIds", max_length=1000, blank=True, null=True + ) # Field name made lowercase. + substvalue = models.CharField( + db_column="SubstValue", max_length=9, blank=True, null=True + ) # Field name made lowercase. + studentgroup = models.CharField( + db_column="StudentGroup", max_length=100, blank=True, null=True + ) # Field name made lowercase. + roomids = models.CharField( + db_column="RoomIds", max_length=255, blank=True, null=True + ) # Field name made lowercase. + bookingtype = models.IntegerField( + db_column="BookingType", blank=True, null=True + ) # Field name made lowercase. + studentgroup_id = models.IntegerField( + db_column="STUDENTGROUP_ID", blank=True, null=True + ) # Field name made lowercase. + breaksubstdata = models.CharField( + db_column="BreakSubstData", max_length=50, blank=True, null=True + ) # Field name made lowercase. class Meta: managed = False - 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. + db_table = "Substitution" + unique_together = (("school_id", "schoolyear_id", "version_id", "substitution_id"),) + + +class Ttelementfilter(models.Model, PureDjangoModel): + 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. + db_table = "TTElementFilter" + unique_together = ( + ("school_id", "schoolyear_id", "version_id", "tt_element_filter_id", "owner"), + ) + + +class TtFormat(models.Model, PureDjangoModel): + 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. - version_id = models.SmallIntegerField(db_column='VERSION_ID') # Field name made lowercase. - type = models.SmallIntegerField(db_column='Type') # Field name made lowercase. - id = models.IntegerField(db_column='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. - date = models.IntegerField(db_column='Date', blank=True, null=True) # Field name made lowercase. - time = models.SmallIntegerField(db_column='Time', blank=True, null=True) # Field name made lowercase. - idmax = models.IntegerField(db_column='IdMax', blank=True, null=True) # Field name made lowercase. - sortidmax = models.IntegerField(db_column='SortIdMax', blank=True, null=True) # Field name made lowercase. - lessonnrmax = models.IntegerField(db_column='LessonNrMax', blank=True, null=True) # Field name made lowercase. + db_table = "TT_Format" + unique_together = (("school_id", "schoolyear_id", "version_id", "tt_format_id", "owner"),) + + +class Tableinfo(models.Model, PureDjangoModel): + 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. + type = models.SmallIntegerField(db_column="Type") # Field name made lowercase. + id = models.IntegerField(db_column="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. + date = models.IntegerField( + db_column="Date", blank=True, null=True + ) # Field name made lowercase. + time = models.SmallIntegerField( + db_column="Time", blank=True, null=True + ) # Field name made lowercase. + idmax = models.IntegerField( + db_column="IdMax", blank=True, null=True + ) # Field name made lowercase. + sortidmax = models.IntegerField( + db_column="SortIdMax", blank=True, null=True + ) # Field name made lowercase. + lessonnrmax = models.IntegerField( + db_column="LessonNrMax", blank=True, null=True + ) # Field name made lowercase. class Meta: managed = False - db_table = 'TableInfo' - unique_together = (('school_id', 'schoolyear_id', 'version_id', 'type', 'id'),) - - -class Teacher(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. - teacher_id = models.IntegerField(db_column='TEACHER_ID') # Field name made lowercase. - term_id = models.SmallIntegerField(db_column='TERM_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. - text = models.CharField(db_column='Text', max_length=100, 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. - timerequest = models.CharField(db_column='TimeRequest', max_length=400, blank=True, - null=True) # Field name made lowercase. - timerequestminut = models.CharField(db_column='TimeRequestMinut', max_length=400, blank=True, - null=True) # Field name made lowercase. - dayrequest = models.CharField(db_column='DayRequest', max_length=400, blank=True, - null=True) # Field name made lowercase. - timerequestunspecified = models.CharField(db_column='TimeRequestUnspecified', max_length=400, blank=True, - null=True) # Field name made lowercase. - address = models.CharField(db_column='Address', max_length=400, blank=True, null=True) # Field name made lowercase. - selmatrix = models.CharField(db_column='SelMatrix', 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. - blankflags = models.CharField(db_column='BlankFlags', max_length=80, blank=True, - null=True) # Field name made lowercase. - room_id = models.IntegerField(db_column='ROOM_ID', blank=True, null=True) # Field name made lowercase. - description_id = models.IntegerField(db_column='DESCRIPTION_ID', blank=True, - null=True) # Field name made lowercase. - forecolor = models.IntegerField(db_column='ForeColor', blank=True, null=True) # Field name made lowercase. - backcolor = models.IntegerField(db_column='BackColor', blank=True, null=True) # Field name made lowercase. - factor = models.CharField(db_column='Factor', max_length=9, blank=True, null=True) # Field name made lowercase. - foreigndata = models.CharField(db_column='ForeignData', max_length=255, blank=True, - null=True) # Field name made lowercase. - foreignkey = models.CharField(db_column='ForeignKey', max_length=50, blank=True, - null=True) # Field name made lowercase. - miscdata = models.CharField(db_column='MiscData', max_length=255, blank=True, - null=True) # Field name made lowercase. - oldname = models.CharField(db_column='OldName', max_length=60, blank=True, null=True) # Field name made lowercase. - minutbreakmin = models.SmallIntegerField(db_column='MinutBreakMin', blank=True, - null=True) # Field name made lowercase. - lunchbreakmin = models.SmallIntegerField(db_column='LunchBreakMin', blank=True, - null=True) # Field name made lowercase. - lunchbreakmax = models.SmallIntegerField(db_column='LunchBreakMax', blank=True, - null=True) # Field name made lowercase. - lssnperdaymin = models.SmallIntegerField(db_column='LssnPerDayMin', blank=True, - null=True) # Field name made lowercase. - lssnperdaymax = models.SmallIntegerField(db_column='LssnPerDayMax', blank=True, - null=True) # Field name made lowercase. - minutminutesperdaymin = models.SmallIntegerField(db_column='MinutMinutesPerDayMin', blank=True, - null=True) # Field name made lowercase. - minutminutesperdaymax = models.SmallIntegerField(db_column='MinutMinutesPerDayMax', blank=True, - null=True) # Field name made lowercase. - minutlunchbreakperdaymin = models.SmallIntegerField(db_column='MinutLunchBreakPerDayMin', blank=True, - null=True) # Field name made lowercase. - minutlunchbreakperdaymax = models.SmallIntegerField(db_column='MinutLunchBreakPerDayMax', blank=True, - null=True) # Field name made lowercase. - blocksnodays = models.SmallIntegerField(db_column='BlocksNoDays', blank=True, - null=True) # Field name made lowercase. - blockslssnfrom = models.SmallIntegerField(db_column='BlocksLssnFrom', blank=True, - null=True) # Field name made lowercase. - blockslssnto = models.SmallIntegerField(db_column='BlocksLssnTo', blank=True, - null=True) # Field name made lowercase. - weekquotamin = models.SmallIntegerField(db_column='WeekQuotaMin', blank=True, - null=True) # Field name made lowercase. - weekquotamax = models.SmallIntegerField(db_column='WeekQuotaMax', blank=True, - null=True) # Field name made lowercase. - weekquotaideal = models.SmallIntegerField(db_column='WeekQuotaIdeal', blank=True, - null=True) # Field name made lowercase. - pnumber = models.CharField(db_column='PNumber', max_length=20, blank=True, null=True) # Field name made lowercase. - status = models.CharField(db_column='Status', max_length=10, blank=True, null=True) # Field name made lowercase. - firstname = models.CharField(db_column='FirstName', max_length=150, blank=True, - null=True) # Field name made lowercase. - title = models.CharField(db_column='Title', max_length=20, blank=True, null=True) # Field name made lowercase. - ownschool = models.CharField(db_column='OwnSchool', max_length=20, blank=True, - null=True) # Field name made lowercase. - ignorereason = models.CharField(db_column='IgnoreReason', max_length=20, blank=True, - null=True) # Field name made lowercase. - department_id1 = models.SmallIntegerField(db_column='DEPARTMENT_ID1', blank=True, - null=True) # Field name made lowercase. - department_id2 = models.SmallIntegerField(db_column='DEPARTMENT_ID2', blank=True, - null=True) # Field name made lowercase. - department_id3 = models.SmallIntegerField(db_column='DEPARTMENT_ID3', blank=True, - null=True) # Field name made lowercase. - department_id4 = models.SmallIntegerField(db_column='DEPARTMENT_ID4', blank=True, - null=True) # Field name made lowercase. - department_id5 = models.SmallIntegerField(db_column='DEPARTMENT_ID5', blank=True, - null=True) # Field name made lowercase. - email = models.CharField(db_column='Email', max_length=80, blank=True, null=True) # Field name made lowercase. - tel = models.CharField(db_column='Tel', max_length=20, blank=True, null=True) # Field name made lowercase. - handy = models.CharField(db_column='Handy', max_length=20, blank=True, null=True) # Field name made lowercase. - externid = models.CharField(db_column='ExternId', max_length=20, blank=True, - null=True) # Field name made lowercase. - nolessnsucc = models.SmallIntegerField(db_column='NoLessnSucc', blank=True, null=True) # Field name made lowercase. - cavitymin = models.SmallIntegerField(db_column='CavityMin', blank=True, null=True) # Field name made lowercase. - cavitymax = models.SmallIntegerField(db_column='CavityMax', blank=True, null=True) # Field name made lowercase. - availmax = models.SmallIntegerField(db_column='AvailMax', blank=True, null=True) # Field name made lowercase. - daybreak = models.SmallIntegerField(db_column='DayBreak', blank=True, null=True) # Field name made lowercase. - substblock = models.SmallIntegerField(db_column='SubstBlock', blank=True, null=True) # Field name made lowercase. - minutbreaksweekmin = models.SmallIntegerField(db_column='MinutBreaksWeekMin', blank=True, - null=True) # Field name made lowercase. - minutbreaksweekmax = models.SmallIntegerField(db_column='MinutBreaksWeekMax', blank=True, - null=True) # Field name made lowercase. - minutsucessmax = models.SmallIntegerField(db_column='MinutSucessMax', blank=True, - null=True) # Field name made lowercase. - pointbreaksupmax = models.SmallIntegerField(db_column='PointBreaksupMax', blank=True, - null=True) # Field name made lowercase. - birthdate = models.IntegerField(db_column='BirthDate', blank=True, null=True) # Field name made lowercase. - arrivaldate = models.IntegerField(db_column='ArrivalDate', blank=True, null=True) # Field name made lowercase. - departuredate = models.IntegerField(db_column='DepartureDate', blank=True, null=True) # Field name made lowercase. - plannedweek = models.IntegerField(db_column='PlannedWeek', blank=True, null=True) # Field name made lowercase. - plannedweekmax = models.IntegerField(db_column='PlannedWeekMax', blank=True, - null=True) # Field name made lowercase. - plannedyear = models.IntegerField(db_column='PlannedYear', blank=True, null=True) # Field name made lowercase. - plannedyearmax = models.IntegerField(db_column='PlannedYearMax', blank=True, - null=True) # Field name made lowercase. - salarypehour = models.IntegerField(db_column='SalaryPeHour', blank=True, null=True) # Field name made lowercase. - optvarteacher = models.CharField(db_column='OptVarTeacher', max_length=1, blank=True, - null=True) # Field name made lowercase. - externname = models.CharField(db_column='ExternName', max_length=60, blank=True, - null=True) # Field name made lowercase. - breaksvrequest = models.CharField(db_column='BreakSVRequest', max_length=1000, blank=True, - null=True) # Field name made lowercase. - teachquali1 = models.CharField(db_column='TeachQuali1', max_length=1000, blank=True, - null=True) # Field name made lowercase. - teachquali2 = models.CharField(db_column='TeachQuali2', max_length=1000, blank=True, - null=True) # Field name made lowercase. - teachquali3 = models.CharField(db_column='TeachQuali3', max_length=1000, blank=True, - null=True) # Field name made lowercase. - teachquali4 = models.CharField(db_column='TeachQuali4', max_length=1000, blank=True, - null=True) # Field name made lowercase. - text2 = models.CharField(db_column='Text2', max_length=100, blank=True, null=True) # Field name made lowercase. - glaettdate = models.IntegerField(db_column='GlaettDate', blank=True, null=True) # Field name made lowercase. - breaksvdayflags = models.CharField(db_column='BreakSvDayFlags', max_length=100, blank=True, - null=True) # Field name made lowercase. - lengthstaymax = models.SmallIntegerField(db_column='LengthStayMax', blank=True, - null=True) # Field name made lowercase. - statusnew = models.CharField(db_column='StatusNew', max_length=10, blank=True, - null=True) # Field name made lowercase. - statusnewdate = models.IntegerField(db_column='StatusNewDate', blank=True, null=True) # Field name made lowercase. - text3 = models.CharField(db_column='Text3', max_length=100, blank=True, null=True) # Field name made lowercase. - text4 = models.CharField(db_column='Text4', max_length=100, blank=True, null=True) # Field name made lowercase. - plannedweekminut = models.IntegerField(db_column='PlannedWeekMinut', blank=True, - null=True) # Field name made lowercase. - plannedyearminut = models.IntegerField(db_column='PlannedYearMinut', blank=True, - null=True) # Field name made lowercase. - plannedweeknew = models.IntegerField(db_column='PlannedWeekNew', blank=True, - null=True) # Field name made lowercase. - plannedperdept = models.CharField(db_column='PlannedPerDept', max_length=1000, blank=True, - null=True) # Field name made lowercase. + db_table = "TableInfo" + unique_together = (("school_id", "schoolyear_id", "version_id", "type", "id"),) + + +class Teacher(models.Model, PureDjangoModel): + 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. + teacher_id = models.IntegerField(db_column="TEACHER_ID") # Field name made lowercase. + term_id = models.SmallIntegerField(db_column="TERM_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. + text = models.CharField( + db_column="Text", max_length=100, 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. + timerequest = models.CharField( + db_column="TimeRequest", max_length=400, blank=True, null=True + ) # Field name made lowercase. + timerequestminut = models.CharField( + db_column="TimeRequestMinut", max_length=400, blank=True, null=True + ) # Field name made lowercase. + dayrequest = models.CharField( + db_column="DayRequest", max_length=400, blank=True, null=True + ) # Field name made lowercase. + timerequestunspecified = models.CharField( + db_column="TimeRequestUnspecified", max_length=400, blank=True, null=True + ) # Field name made lowercase. + address = models.CharField( + db_column="Address", max_length=400, blank=True, null=True + ) # Field name made lowercase. + selmatrix = models.CharField( + db_column="SelMatrix", 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. + blankflags = models.CharField( + db_column="BlankFlags", max_length=80, blank=True, null=True + ) # Field name made lowercase. + room_id = models.IntegerField( + db_column="ROOM_ID", blank=True, null=True + ) # Field name made lowercase. + description_id = models.IntegerField( + db_column="DESCRIPTION_ID", blank=True, null=True + ) # Field name made lowercase. + forecolor = models.IntegerField( + db_column="ForeColor", blank=True, null=True + ) # Field name made lowercase. + backcolor = models.IntegerField( + db_column="BackColor", blank=True, null=True + ) # Field name made lowercase. + factor = models.CharField( + db_column="Factor", max_length=9, blank=True, null=True + ) # Field name made lowercase. + foreigndata = models.CharField( + db_column="ForeignData", max_length=255, blank=True, null=True + ) # Field name made lowercase. + foreignkey = models.CharField( + db_column="ForeignKey", max_length=50, blank=True, null=True + ) # Field name made lowercase. + miscdata = models.CharField( + db_column="MiscData", max_length=255, blank=True, null=True + ) # Field name made lowercase. + oldname = models.CharField( + db_column="OldName", max_length=60, blank=True, null=True + ) # Field name made lowercase. + minutbreakmin = models.SmallIntegerField( + db_column="MinutBreakMin", blank=True, null=True + ) # Field name made lowercase. + lunchbreakmin = models.SmallIntegerField( + db_column="LunchBreakMin", blank=True, null=True + ) # Field name made lowercase. + lunchbreakmax = models.SmallIntegerField( + db_column="LunchBreakMax", blank=True, null=True + ) # Field name made lowercase. + lssnperdaymin = models.SmallIntegerField( + db_column="LssnPerDayMin", blank=True, null=True + ) # Field name made lowercase. + lssnperdaymax = models.SmallIntegerField( + db_column="LssnPerDayMax", blank=True, null=True + ) # Field name made lowercase. + minutminutesperdaymin = models.SmallIntegerField( + db_column="MinutMinutesPerDayMin", blank=True, null=True + ) # Field name made lowercase. + minutminutesperdaymax = models.SmallIntegerField( + db_column="MinutMinutesPerDayMax", blank=True, null=True + ) # Field name made lowercase. + minutlunchbreakperdaymin = models.SmallIntegerField( + db_column="MinutLunchBreakPerDayMin", blank=True, null=True + ) # Field name made lowercase. + minutlunchbreakperdaymax = models.SmallIntegerField( + db_column="MinutLunchBreakPerDayMax", blank=True, null=True + ) # Field name made lowercase. + blocksnodays = models.SmallIntegerField( + db_column="BlocksNoDays", blank=True, null=True + ) # Field name made lowercase. + blockslssnfrom = models.SmallIntegerField( + db_column="BlocksLssnFrom", blank=True, null=True + ) # Field name made lowercase. + blockslssnto = models.SmallIntegerField( + db_column="BlocksLssnTo", blank=True, null=True + ) # Field name made lowercase. + weekquotamin = models.SmallIntegerField( + db_column="WeekQuotaMin", blank=True, null=True + ) # Field name made lowercase. + weekquotamax = models.SmallIntegerField( + db_column="WeekQuotaMax", blank=True, null=True + ) # Field name made lowercase. + weekquotaideal = models.SmallIntegerField( + db_column="WeekQuotaIdeal", blank=True, null=True + ) # Field name made lowercase. + pnumber = models.CharField( + db_column="PNumber", max_length=20, blank=True, null=True + ) # Field name made lowercase. + status = models.CharField( + db_column="Status", max_length=10, blank=True, null=True + ) # Field name made lowercase. + firstname = models.CharField( + db_column="FirstName", max_length=150, blank=True, null=True + ) # Field name made lowercase. + title = models.CharField( + db_column="Title", max_length=20, blank=True, null=True + ) # Field name made lowercase. + ownschool = models.CharField( + db_column="OwnSchool", max_length=20, blank=True, null=True + ) # Field name made lowercase. + ignorereason = models.CharField( + db_column="IgnoreReason", max_length=20, blank=True, null=True + ) # Field name made lowercase. + department_id1 = models.SmallIntegerField( + db_column="DEPARTMENT_ID1", blank=True, null=True + ) # Field name made lowercase. + department_id2 = models.SmallIntegerField( + db_column="DEPARTMENT_ID2", blank=True, null=True + ) # Field name made lowercase. + department_id3 = models.SmallIntegerField( + db_column="DEPARTMENT_ID3", blank=True, null=True + ) # Field name made lowercase. + department_id4 = models.SmallIntegerField( + db_column="DEPARTMENT_ID4", blank=True, null=True + ) # Field name made lowercase. + department_id5 = models.SmallIntegerField( + db_column="DEPARTMENT_ID5", blank=True, null=True + ) # Field name made lowercase. + email = models.CharField( + db_column="Email", max_length=80, blank=True, null=True + ) # Field name made lowercase. + tel = models.CharField( + db_column="Tel", max_length=20, blank=True, null=True + ) # Field name made lowercase. + handy = models.CharField( + db_column="Handy", max_length=20, blank=True, null=True + ) # Field name made lowercase. + externid = models.CharField( + db_column="ExternId", max_length=20, blank=True, null=True + ) # Field name made lowercase. + nolessnsucc = models.SmallIntegerField( + db_column="NoLessnSucc", blank=True, null=True + ) # Field name made lowercase. + cavitymin = models.SmallIntegerField( + db_column="CavityMin", blank=True, null=True + ) # Field name made lowercase. + cavitymax = models.SmallIntegerField( + db_column="CavityMax", blank=True, null=True + ) # Field name made lowercase. + availmax = models.SmallIntegerField( + db_column="AvailMax", blank=True, null=True + ) # Field name made lowercase. + daybreak = models.SmallIntegerField( + db_column="DayBreak", blank=True, null=True + ) # Field name made lowercase. + substblock = models.SmallIntegerField( + db_column="SubstBlock", blank=True, null=True + ) # Field name made lowercase. + minutbreaksweekmin = models.SmallIntegerField( + db_column="MinutBreaksWeekMin", blank=True, null=True + ) # Field name made lowercase. + minutbreaksweekmax = models.SmallIntegerField( + db_column="MinutBreaksWeekMax", blank=True, null=True + ) # Field name made lowercase. + minutsucessmax = models.SmallIntegerField( + db_column="MinutSucessMax", blank=True, null=True + ) # Field name made lowercase. + pointbreaksupmax = models.SmallIntegerField( + db_column="PointBreaksupMax", blank=True, null=True + ) # Field name made lowercase. + birthdate = models.IntegerField( + db_column="BirthDate", blank=True, null=True + ) # Field name made lowercase. + arrivaldate = models.IntegerField( + db_column="ArrivalDate", blank=True, null=True + ) # Field name made lowercase. + departuredate = models.IntegerField( + db_column="DepartureDate", blank=True, null=True + ) # Field name made lowercase. + plannedweek = models.IntegerField( + db_column="PlannedWeek", blank=True, null=True + ) # Field name made lowercase. + plannedweekmax = models.IntegerField( + db_column="PlannedWeekMax", blank=True, null=True + ) # Field name made lowercase. + plannedyear = models.IntegerField( + db_column="PlannedYear", blank=True, null=True + ) # Field name made lowercase. + plannedyearmax = models.IntegerField( + db_column="PlannedYearMax", blank=True, null=True + ) # Field name made lowercase. + salarypehour = models.IntegerField( + db_column="SalaryPeHour", blank=True, null=True + ) # Field name made lowercase. + optvarteacher = models.CharField( + db_column="OptVarTeacher", max_length=1, blank=True, null=True + ) # Field name made lowercase. + externname = models.CharField( + db_column="ExternName", max_length=60, blank=True, null=True + ) # Field name made lowercase. + breaksvrequest = models.CharField( + db_column="BreakSVRequest", max_length=1000, blank=True, null=True + ) # Field name made lowercase. + teachquali1 = models.CharField( + db_column="TeachQuali1", max_length=1000, blank=True, null=True + ) # Field name made lowercase. + teachquali2 = models.CharField( + db_column="TeachQuali2", max_length=1000, blank=True, null=True + ) # Field name made lowercase. + teachquali3 = models.CharField( + db_column="TeachQuali3", max_length=1000, blank=True, null=True + ) # Field name made lowercase. + teachquali4 = models.CharField( + db_column="TeachQuali4", max_length=1000, blank=True, null=True + ) # Field name made lowercase. + text2 = models.CharField( + db_column="Text2", max_length=100, blank=True, null=True + ) # Field name made lowercase. + glaettdate = models.IntegerField( + db_column="GlaettDate", blank=True, null=True + ) # Field name made lowercase. + breaksvdayflags = models.CharField( + db_column="BreakSvDayFlags", max_length=100, blank=True, null=True + ) # Field name made lowercase. + lengthstaymax = models.SmallIntegerField( + db_column="LengthStayMax", blank=True, null=True + ) # Field name made lowercase. + statusnew = models.CharField( + db_column="StatusNew", max_length=10, blank=True, null=True + ) # Field name made lowercase. + statusnewdate = models.IntegerField( + db_column="StatusNewDate", blank=True, null=True + ) # Field name made lowercase. + text3 = models.CharField( + db_column="Text3", max_length=100, blank=True, null=True + ) # Field name made lowercase. + text4 = models.CharField( + db_column="Text4", max_length=100, blank=True, null=True + ) # Field name made lowercase. + plannedweekminut = models.IntegerField( + db_column="PlannedWeekMinut", blank=True, null=True + ) # Field name made lowercase. + plannedyearminut = models.IntegerField( + db_column="PlannedYearMinut", blank=True, null=True + ) # Field name made lowercase. + plannedweeknew = models.IntegerField( + db_column="PlannedWeekNew", blank=True, null=True + ) # Field name made lowercase. + plannedperdept = models.CharField( + db_column="PlannedPerDept", max_length=1000, blank=True, null=True + ) # Field name made lowercase. class Meta: managed = False - db_table = 'Teacher' - unique_together = (('school_id', 'schoolyear_id', 'version_id', 'teacher_id', 'term_id'),) - - -class Teachergroup(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. - teachergroup_id = models.IntegerField(db_column='TEACHERGROUP_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. - 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. - forecolor = models.IntegerField(db_column='ForeColor', blank=True, null=True) # Field name made lowercase. - backcolor = models.IntegerField(db_column='BackColor', blank=True, null=True) # Field name made lowercase. - teacherids = models.CharField(db_column='TeacherIds', max_length=255, blank=True, - null=True) # Field name made lowercase. - dataperteacher = models.CharField(db_column='DataPerTeacher', max_length=255, blank=True, - null=True) # Field name made lowercase. + db_table = "Teacher" + unique_together = (("school_id", "schoolyear_id", "version_id", "teacher_id", "term_id"),) + + +class Teachergroup(models.Model, PureDjangoModel): + 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. + teachergroup_id = models.IntegerField(db_column="TEACHERGROUP_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. + 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. + forecolor = models.IntegerField( + db_column="ForeColor", blank=True, null=True + ) # Field name made lowercase. + backcolor = models.IntegerField( + db_column="BackColor", blank=True, null=True + ) # Field name made lowercase. + teacherids = models.CharField( + db_column="TeacherIds", max_length=255, blank=True, null=True + ) # Field name made lowercase. + dataperteacher = models.CharField( + db_column="DataPerTeacher", max_length=255, blank=True, null=True + ) # Field name made lowercase. class Meta: managed = False - db_table = 'TeacherGroup' - unique_together = (('school_id', 'schoolyear_id', 'version_id', 'teachergroup_id'),) - - -class Terms(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. - term_id = models.IntegerField(db_column='TERM_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. - 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. - flags = models.CharField(db_column='Flags', max_length=100, blank=True, null=True) # Field name made lowercase. - datefrom = models.IntegerField(db_column='DateFrom', blank=True, null=True) # Field name made lowercase. - dateto = models.IntegerField(db_column='DateTo', blank=True, null=True) # Field name made lowercase. - term_id_mother = models.IntegerField(db_column='TERM_ID_Mother', blank=True, - null=True) # Field name made lowercase. + db_table = "TeacherGroup" + unique_together = (("school_id", "schoolyear_id", "version_id", "teachergroup_id"),) + + +class Terms(models.Model, PureDjangoModel): + 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. + term_id = models.IntegerField(db_column="TERM_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. + 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. + flags = models.CharField( + db_column="Flags", max_length=100, blank=True, null=True + ) # Field name made lowercase. + datefrom = models.IntegerField( + db_column="DateFrom", blank=True, null=True + ) # Field name made lowercase. + dateto = models.IntegerField( + db_column="DateTo", blank=True, null=True + ) # Field name made lowercase. + term_id_mother = models.IntegerField( + db_column="TERM_ID_Mother", blank=True, null=True + ) # Field name made lowercase. class Meta: managed = False - db_table = 'Terms' - unique_together = (('school_id', 'schoolyear_id', 'version_id', 'term_id'),) - - -class Transfer(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. - transfer_id = models.IntegerField(db_column='TRANSFER_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. - flags = models.CharField(db_column='Flags', max_length=100, blank=True, null=True) # Field name made lowercase. - teacher_id = models.IntegerField(db_column='TEACHER_ID', blank=True, null=True) # Field name made lowercase. - lesson_id = models.IntegerField(db_column='LESSON_ID', blank=True, null=True) # Field name made lowercase. - datefrom = models.IntegerField(db_column='DateFrom', blank=True, null=True) # Field name made lowercase. - dateto = models.IntegerField(db_column='DateTo', blank=True, null=True) # Field name made lowercase. - lessonfrom = models.SmallIntegerField(db_column='LessonFrom', blank=True, null=True) # Field name made lowercase. - lessonto = models.SmallIntegerField(db_column='LessonTo', blank=True, null=True) # Field name made lowercase. + db_table = "Terms" + unique_together = (("school_id", "schoolyear_id", "version_id", "term_id"),) + + +class Transfer(models.Model, PureDjangoModel): + 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. + transfer_id = models.IntegerField(db_column="TRANSFER_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. + flags = models.CharField( + db_column="Flags", max_length=100, blank=True, null=True + ) # Field name made lowercase. + teacher_id = models.IntegerField( + db_column="TEACHER_ID", blank=True, null=True + ) # Field name made lowercase. + lesson_id = models.IntegerField( + db_column="LESSON_ID", blank=True, null=True + ) # Field name made lowercase. + datefrom = models.IntegerField( + db_column="DateFrom", blank=True, null=True + ) # Field name made lowercase. + dateto = models.IntegerField( + db_column="DateTo", blank=True, null=True + ) # Field name made lowercase. + lessonfrom = models.SmallIntegerField( + db_column="LessonFrom", blank=True, null=True + ) # Field name made lowercase. + lessonto = models.SmallIntegerField( + db_column="LessonTo", blank=True, null=True + ) # Field name made lowercase. class Meta: managed = False - db_table = 'Transfer' - unique_together = (('school_id', 'schoolyear_id', 'version_id', 'transfer_id'),) - - -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. - version_id = models.SmallIntegerField(db_column='VERSION_ID') # Field name made lowercase. - option_id = models.IntegerField(db_column='OPTION_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. - owner = models.SmallIntegerField(db_column='Owner', blank=True, null=True) # Field name made lowercase. - section = models.CharField(db_column='Section', max_length=1000, blank=True, - null=True) # Field name made lowercase. - optionkey = models.CharField(db_column='OptionKey', max_length=1000, blank=True, - null=True) # Field name made lowercase. - value = models.TextField(db_column='Value', blank=True, null=True) # Field name made lowercase. + db_table = "Transfer" + unique_together = (("school_id", "schoolyear_id", "version_id", "transfer_id"),) + + +class Untissettings(models.Model, PureDjangoModel): + 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. + option_id = models.IntegerField(db_column="OPTION_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. + owner = models.SmallIntegerField( + db_column="Owner", blank=True, null=True + ) # Field name made lowercase. + section = models.CharField( + db_column="Section", max_length=1000, blank=True, null=True + ) # Field name made lowercase. + optionkey = models.CharField( + db_column="OptionKey", max_length=1000, blank=True, null=True + ) # Field name made lowercase. + value = models.TextField(db_column="Value", blank=True, null=True) # Field name made lowercase. class Meta: managed = False - db_table = 'UntisSettings' - unique_together = (('school_id', 'schoolyear_id', 'version_id', 'option_id'),) - - -class User(models.Model): - user_id = models.SmallIntegerField(db_column='USER_ID', primary_key=True) # Field name made lowercase. - user_group_id = models.SmallIntegerField(db_column='USER_GROUP_ID', blank=True, - null=True) # Field name made lowercase. - name = models.CharField(db_column='Name', max_length=32, blank=True, null=True) # Field name made lowercase. - user_id2 = models.SmallIntegerField(db_column='USER_ID2', blank=True, null=True) # Field name made lowercase. - user2text = models.CharField(db_column='User2Text', max_length=100, blank=True, - null=True) # Field name made lowercase. - password = models.IntegerField(db_column='Password', blank=True, null=True) # Field name made lowercase. - loggedin = models.IntegerField(db_column='LoggedIn', blank=True, null=True) # Field name made lowercase. - usercounterlast = models.IntegerField(db_column='UserCounterLast', blank=True, - null=True) # Field name made lowercase. - logindate = models.IntegerField(db_column='LogInDate', blank=True, null=True) # Field name made lowercase. - logintime = models.SmallIntegerField(db_column='LogInTime', blank=True, null=True) # Field name made lowercase. - logoutdate = models.IntegerField(db_column='LogOutDate', blank=True, null=True) # Field name made lowercase. - logouttime = models.SmallIntegerField(db_column='LogOutTime', blank=True, null=True) # Field name made lowercase. - refreshdate = models.IntegerField(db_column='RefreshDate', blank=True, null=True) # Field name made lowercase. - refreshtime = models.SmallIntegerField(db_column='RefreshTime', blank=True, null=True) # Field name made lowercase. - school_id = models.IntegerField(db_column='SCHOOL_ID', blank=True, null=True) # Field name made lowercase. - schoolyear_id = models.IntegerField(db_column='SCHOOLYEAR_ID', blank=True, null=True) # Field name made lowercase. - version_id = models.SmallIntegerField(db_column='VERSION_ID', blank=True, null=True) # Field name made lowercase. - term_id = models.IntegerField(db_column='TERM_ID', blank=True, null=True) # Field name made lowercase. - term = models.CharField(db_column='Term', max_length=50, blank=True, null=True) # Field name made lowercase. - department_id = models.IntegerField(db_column='DEPARTMENT_ID', blank=True, null=True) # Field name made lowercase. - department = models.CharField(db_column='Department', max_length=60, blank=True, - null=True) # Field name made lowercase. - mode = models.SmallIntegerField(db_column='Mode', blank=True, null=True) # Field name made lowercase. - process = models.SmallIntegerField(db_column='Process', blank=True, null=True) # Field name made lowercase. - type = models.SmallIntegerField(db_column='Type', blank=True, null=True) # Field name made lowercase. - untisname = models.CharField(db_column='UntisName', max_length=20, blank=True, - null=True) # Field name made lowercase. - userinfo = models.CharField(db_column='UserInfo', max_length=255, blank=True, - null=True) # Field name made lowercase. - departmentrights = models.CharField(db_column='DepartmentRights', max_length=255, blank=True, - null=True) # Field name made lowercase. + db_table = "UntisSettings" + unique_together = (("school_id", "schoolyear_id", "version_id", "option_id"),) + + +class User(models.Model, PureDjangoModel): + user_id = models.SmallIntegerField( + db_column="USER_ID", primary_key=True + ) # Field name made lowercase. + user_group_id = models.SmallIntegerField( + db_column="USER_GROUP_ID", blank=True, null=True + ) # Field name made lowercase. + name = models.CharField( + db_column="Name", max_length=32, blank=True, null=True + ) # Field name made lowercase. + user_id2 = models.SmallIntegerField( + db_column="USER_ID2", blank=True, null=True + ) # Field name made lowercase. + user2text = models.CharField( + db_column="User2Text", max_length=100, blank=True, null=True + ) # Field name made lowercase. + password = models.IntegerField( + db_column="Password", blank=True, null=True + ) # Field name made lowercase. + loggedin = models.IntegerField( + db_column="LoggedIn", blank=True, null=True + ) # Field name made lowercase. + usercounterlast = models.IntegerField( + db_column="UserCounterLast", blank=True, null=True + ) # Field name made lowercase. + logindate = models.IntegerField( + db_column="LogInDate", blank=True, null=True + ) # Field name made lowercase. + logintime = models.SmallIntegerField( + db_column="LogInTime", blank=True, null=True + ) # Field name made lowercase. + logoutdate = models.IntegerField( + db_column="LogOutDate", blank=True, null=True + ) # Field name made lowercase. + logouttime = models.SmallIntegerField( + db_column="LogOutTime", blank=True, null=True + ) # Field name made lowercase. + refreshdate = models.IntegerField( + db_column="RefreshDate", blank=True, null=True + ) # Field name made lowercase. + refreshtime = models.SmallIntegerField( + db_column="RefreshTime", blank=True, null=True + ) # Field name made lowercase. + school_id = models.IntegerField( + db_column="SCHOOL_ID", blank=True, null=True + ) # Field name made lowercase. + schoolyear_id = models.IntegerField( + db_column="SCHOOLYEAR_ID", blank=True, null=True + ) # Field name made lowercase. + version_id = models.SmallIntegerField( + db_column="VERSION_ID", blank=True, null=True + ) # Field name made lowercase. + term_id = models.IntegerField( + db_column="TERM_ID", blank=True, null=True + ) # Field name made lowercase. + term = models.CharField( + db_column="Term", max_length=50, blank=True, null=True + ) # Field name made lowercase. + department_id = models.IntegerField( + db_column="DEPARTMENT_ID", blank=True, null=True + ) # Field name made lowercase. + department = models.CharField( + db_column="Department", max_length=60, blank=True, null=True + ) # Field name made lowercase. + mode = models.SmallIntegerField( + db_column="Mode", blank=True, null=True + ) # Field name made lowercase. + process = models.SmallIntegerField( + db_column="Process", blank=True, null=True + ) # Field name made lowercase. + type = models.SmallIntegerField( + db_column="Type", blank=True, null=True + ) # Field name made lowercase. + untisname = models.CharField( + db_column="UntisName", max_length=20, blank=True, null=True + ) # Field name made lowercase. + userinfo = models.CharField( + db_column="UserInfo", max_length=255, blank=True, null=True + ) # Field name made lowercase. + departmentrights = models.CharField( + db_column="DepartmentRights", max_length=255, blank=True, null=True + ) # Field name made lowercase. class Meta: managed = False - db_table = 'User' - - -class Usergroup(models.Model): - user_group_id = models.SmallIntegerField(db_column='USER_GROUP_ID', primary_key=True) # Field name made lowercase. - name = models.CharField(db_column='Name', max_length=32, blank=True, null=True) # Field name made lowercase. - schools = models.CharField(db_column='Schools', max_length=255, blank=True, null=True) # Field name made lowercase. - schoolyears = models.CharField(db_column='SchoolYears', max_length=255, blank=True, - null=True) # Field name made lowercase. - versions = models.CharField(db_column='Versions', max_length=255, blank=True, - null=True) # Field name made lowercase. - department = models.CharField(db_column='Department', max_length=255, blank=True, - null=True) # Field name made lowercase. - termnames = models.CharField(db_column='TermNames', max_length=255, blank=True, - null=True) # Field name made lowercase. - flags = models.CharField(db_column='Flags', max_length=255, blank=True, null=True) # Field name made lowercase. - openschool = models.IntegerField(db_column='OpenSchool', blank=True, null=True) # Field name made lowercase. - openschoolyear = models.IntegerField(db_column='OpenSchoolYear', blank=True, - null=True) # Field name made lowercase. - openversion = models.IntegerField(db_column='OpenVersion', blank=True, null=True) # Field name made lowercase. - useradministration = models.IntegerField(db_column='UserAdministration', blank=True, - null=True) # Field name made lowercase. - administration = models.IntegerField(db_column='Administration', blank=True, - null=True) # Field name made lowercase. - timetableoptimisation = models.IntegerField(db_column='TimetableOptimisation', blank=True, - null=True) # Field name made lowercase. - rightsprint = models.IntegerField(db_column='RightsPrint', blank=True, null=True) # Field name made lowercase. - save2gpn = models.IntegerField(db_column='Save2gpn', blank=True, null=True) # Field name made lowercase. - infostp = models.IntegerField(db_column='InfoStp', blank=True, null=True) # Field name made lowercase. - timetable = models.SmallIntegerField(db_column='Timetable', blank=True, null=True) # Field name made lowercase. - masterdata = models.SmallIntegerField(db_column='MasterData', blank=True, null=True) # Field name made lowercase. - specialdata = models.SmallIntegerField(db_column='SpecialData', blank=True, null=True) # Field name made lowercase. - lesson = models.SmallIntegerField(db_column='Lesson', blank=True, null=True) # Field name made lowercase. - terms = models.SmallIntegerField(db_column='Terms', blank=True, null=True) # Field name made lowercase. - substitution = models.SmallIntegerField(db_column='Substitution', blank=True, - null=True) # Field name made lowercase. - absences = models.SmallIntegerField(db_column='Absences', blank=True, null=True) # Field name made lowercase. - coursplaning = models.SmallIntegerField(db_column='Coursplaning', blank=True, - null=True) # Field name made lowercase. - deduction = models.SmallIntegerField(db_column='Deduction', blank=True, null=True) # Field name made lowercase. - importdata = models.IntegerField(db_column='ImportData', blank=True, null=True) # Field name made lowercase. - webuntis = models.IntegerField(db_column='WebUntis', blank=True, null=True) # Field name made lowercase. - subststatistics = models.IntegerField(db_column='SubstStatistics', blank=True, - null=True) # Field name made lowercase. + db_table = "User" + + +class Usergroup(models.Model, PureDjangoModel): + user_group_id = models.SmallIntegerField( + db_column="USER_GROUP_ID", primary_key=True + ) # Field name made lowercase. + name = models.CharField( + db_column="Name", max_length=32, blank=True, null=True + ) # Field name made lowercase. + schools = models.CharField( + db_column="Schools", max_length=255, blank=True, null=True + ) # Field name made lowercase. + schoolyears = models.CharField( + db_column="SchoolYears", max_length=255, blank=True, null=True + ) # Field name made lowercase. + versions = models.CharField( + db_column="Versions", max_length=255, blank=True, null=True + ) # Field name made lowercase. + department = models.CharField( + db_column="Department", max_length=255, blank=True, null=True + ) # Field name made lowercase. + termnames = models.CharField( + db_column="TermNames", max_length=255, blank=True, null=True + ) # Field name made lowercase. + flags = models.CharField( + db_column="Flags", max_length=255, blank=True, null=True + ) # Field name made lowercase. + openschool = models.IntegerField( + db_column="OpenSchool", blank=True, null=True + ) # Field name made lowercase. + openschoolyear = models.IntegerField( + db_column="OpenSchoolYear", blank=True, null=True + ) # Field name made lowercase. + openversion = models.IntegerField( + db_column="OpenVersion", blank=True, null=True + ) # Field name made lowercase. + useradministration = models.IntegerField( + db_column="UserAdministration", blank=True, null=True + ) # Field name made lowercase. + administration = models.IntegerField( + db_column="Administration", blank=True, null=True + ) # Field name made lowercase. + timetableoptimisation = models.IntegerField( + db_column="TimetableOptimisation", blank=True, null=True + ) # Field name made lowercase. + rightsprint = models.IntegerField( + db_column="RightsPrint", blank=True, null=True + ) # Field name made lowercase. + save2gpn = models.IntegerField( + db_column="Save2gpn", blank=True, null=True + ) # Field name made lowercase. + infostp = models.IntegerField( + db_column="InfoStp", blank=True, null=True + ) # Field name made lowercase. + timetable = models.SmallIntegerField( + db_column="Timetable", blank=True, null=True + ) # Field name made lowercase. + masterdata = models.SmallIntegerField( + db_column="MasterData", blank=True, null=True + ) # Field name made lowercase. + specialdata = models.SmallIntegerField( + db_column="SpecialData", blank=True, null=True + ) # Field name made lowercase. + lesson = models.SmallIntegerField( + db_column="Lesson", blank=True, null=True + ) # Field name made lowercase. + terms = models.SmallIntegerField( + db_column="Terms", blank=True, null=True + ) # Field name made lowercase. + substitution = models.SmallIntegerField( + db_column="Substitution", blank=True, null=True + ) # Field name made lowercase. + absences = models.SmallIntegerField( + db_column="Absences", blank=True, null=True + ) # Field name made lowercase. + coursplaning = models.SmallIntegerField( + db_column="Coursplaning", blank=True, null=True + ) # Field name made lowercase. + deduction = models.SmallIntegerField( + db_column="Deduction", blank=True, null=True + ) # Field name made lowercase. + importdata = models.IntegerField( + db_column="ImportData", blank=True, null=True + ) # Field name made lowercase. + webuntis = models.IntegerField( + db_column="WebUntis", blank=True, null=True + ) # Field name made lowercase. + subststatistics = models.IntegerField( + db_column="SubstStatistics", blank=True, null=True + ) # Field name made lowercase. class Meta: managed = False - db_table = 'UserGroup' - - -class Usermessage(models.Model): - message_id = models.IntegerField(db_column='MESSAGE_ID', primary_key=True) # Field name made lowercase. - user_id = models.IntegerField(db_column='USER_ID') # Field name made lowercase. - sender_id = models.SmallIntegerField(db_column='Sender_ID', blank=True, null=True) # Field name made lowercase. - date = models.IntegerField(db_column='Date', blank=True, null=True) # Field name made lowercase. - time = models.SmallIntegerField(db_column='Time', blank=True, null=True) # Field name made lowercase. - deleted = models.IntegerField(db_column='Deleted', blank=True, null=True) # Field name made lowercase. - newmessage = models.IntegerField(db_column='NewMessage', blank=True, null=True) # Field name made lowercase. - notread = models.IntegerField(db_column='NotRead', blank=True, null=True) # Field name made lowercase. - text = models.CharField(db_column='Text', max_length=1000, blank=True, null=True) # Field name made lowercase. - subject = models.CharField(db_column='Subject', max_length=100, blank=True, null=True) # Field name made lowercase. + db_table = "UserGroup" + + +class Usermessage(models.Model, PureDjangoModel): + message_id = models.IntegerField( + db_column="MESSAGE_ID", primary_key=True + ) # Field name made lowercase. + user_id = models.IntegerField(db_column="USER_ID") # Field name made lowercase. + sender_id = models.SmallIntegerField( + db_column="Sender_ID", blank=True, null=True + ) # Field name made lowercase. + date = models.IntegerField( + db_column="Date", blank=True, null=True + ) # Field name made lowercase. + time = models.SmallIntegerField( + db_column="Time", blank=True, null=True + ) # Field name made lowercase. + deleted = models.IntegerField( + db_column="Deleted", blank=True, null=True + ) # Field name made lowercase. + newmessage = models.IntegerField( + db_column="NewMessage", blank=True, null=True + ) # Field name made lowercase. + notread = models.IntegerField( + db_column="NotRead", blank=True, null=True + ) # Field name made lowercase. + text = models.CharField( + db_column="Text", max_length=1000, blank=True, null=True + ) # Field name made lowercase. + subject = models.CharField( + db_column="Subject", max_length=100, blank=True, null=True + ) # Field name made lowercase. class Meta: managed = False - db_table = 'UserMessage' - unique_together = (('message_id', 'user_id'),) - - -class Valuecorrection(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. - teacher_id = models.IntegerField(db_column='TEACHER_ID') # Field name made lowercase. - number = models.SmallIntegerField(db_column='Number') # 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. - text = models.CharField(db_column='Text', max_length=100, 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. - date = models.IntegerField(db_column='Date', blank=True, null=True) # Field name made lowercase. - type1 = models.CharField(db_column='Type1', max_length=1, blank=True, null=True) # Field name made lowercase. - value = models.IntegerField(db_column='Value', blank=True, null=True) # Field name made lowercase. - valueminutes = models.IntegerField(db_column='ValueMinutes', blank=True, null=True) # Field name made lowercase. - percentage = models.SmallIntegerField(db_column='Percentage', blank=True, null=True) # Field name made lowercase. - basis = models.CharField(db_column='Basis', max_length=1, blank=True, null=True) # Field name made lowercase. - schoolorig = models.CharField(db_column='SchoolOrig', max_length=100, blank=True, - null=True) # Field name made lowercase. + db_table = "UserMessage" + unique_together = (("message_id", "user_id"),) + + +class Valuecorrection(models.Model, PureDjangoModel): + 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. + teacher_id = models.IntegerField(db_column="TEACHER_ID") # Field name made lowercase. + number = models.SmallIntegerField(db_column="Number") # 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. + text = models.CharField( + db_column="Text", max_length=100, 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. + date = models.IntegerField( + db_column="Date", blank=True, null=True + ) # Field name made lowercase. + type1 = models.CharField( + db_column="Type1", max_length=1, blank=True, null=True + ) # Field name made lowercase. + value = models.IntegerField( + db_column="Value", blank=True, null=True + ) # Field name made lowercase. + valueminutes = models.IntegerField( + db_column="ValueMinutes", blank=True, null=True + ) # Field name made lowercase. + percentage = models.SmallIntegerField( + db_column="Percentage", blank=True, null=True + ) # Field name made lowercase. + basis = models.CharField( + db_column="Basis", max_length=1, blank=True, null=True + ) # Field name made lowercase. + schoolorig = models.CharField( + db_column="SchoolOrig", max_length=100, blank=True, null=True + ) # Field name made lowercase. class Meta: managed = False - db_table = 'ValueCorrection' - unique_together = (('school_id', 'schoolyear_id', 'version_id', 'teacher_id', 'number'),) - - -class Version(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. - counterlast = models.IntegerField(db_column='CounterLast', blank=True, null=True) # Field name made lowercase. - usercounterlast = models.IntegerField(db_column='UserCounterLast', blank=True, - null=True) # Field name made lowercase. - user_idlast = models.SmallIntegerField(db_column='USER_IDLast', blank=True, null=True) # Field name made lowercase. - user_id = models.SmallIntegerField(db_column='USER_ID', blank=True, null=True) # Field name made lowercase. - mode = models.SmallIntegerField(db_column='Mode', blank=True, null=True) # Field name made lowercase. - process = models.SmallIntegerField(db_column='Process', blank=True, null=True) # Field name made lowercase. - date = models.IntegerField(db_column='Date', blank=True, null=True) # Field name made lowercase. - time = models.SmallIntegerField(db_column='Time', blank=True, null=True) # Field name made lowercase. - progdate = models.CharField(db_column='ProgDate', max_length=12, blank=True, - null=True) # Field name made lowercase. - text = models.CharField(db_column='Text', max_length=50, blank=True, null=True) # Field name made lowercase. - only1user = models.IntegerField(db_column='Only1User', blank=True, null=True) # Field name made lowercase. - action = models.IntegerField(db_column='Action', blank=True, null=True) # Field name made lowercase. - updatedb = models.IntegerField(db_column='UpdateDb', blank=True, null=True) # Field name made lowercase. - readdb = models.IntegerField(db_column='ReadDb', blank=True, null=True) # Field name made lowercase. + db_table = "ValueCorrection" + unique_together = (("school_id", "schoolyear_id", "version_id", "teacher_id", "number"),) + + +class Version(models.Model, PureDjangoModel): + 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. + counterlast = models.IntegerField( + db_column="CounterLast", blank=True, null=True + ) # Field name made lowercase. + usercounterlast = models.IntegerField( + db_column="UserCounterLast", blank=True, null=True + ) # Field name made lowercase. + user_idlast = models.SmallIntegerField( + db_column="USER_IDLast", blank=True, null=True + ) # Field name made lowercase. + user_id = models.SmallIntegerField( + db_column="USER_ID", blank=True, null=True + ) # Field name made lowercase. + mode = models.SmallIntegerField( + db_column="Mode", blank=True, null=True + ) # Field name made lowercase. + process = models.SmallIntegerField( + db_column="Process", blank=True, null=True + ) # Field name made lowercase. + date = models.IntegerField( + db_column="Date", blank=True, null=True + ) # Field name made lowercase. + time = models.SmallIntegerField( + db_column="Time", blank=True, null=True + ) # Field name made lowercase. + progdate = models.CharField( + db_column="ProgDate", max_length=12, blank=True, null=True + ) # Field name made lowercase. + text = models.CharField( + db_column="Text", max_length=50, blank=True, null=True + ) # Field name made lowercase. + only1user = models.IntegerField( + db_column="Only1User", blank=True, null=True + ) # Field name made lowercase. + action = models.IntegerField( + db_column="Action", blank=True, null=True + ) # Field name made lowercase. + updatedb = models.IntegerField( + db_column="UpdateDb", blank=True, null=True + ) # Field name made lowercase. + readdb = models.IntegerField( + db_column="ReadDb", blank=True, null=True + ) # Field name made lowercase. class Meta: managed = False - db_table = 'Version' - unique_together = (('school_id', 'schoolyear_id', 'version_id'),) - - -class Views(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. - type = models.SmallIntegerField(db_column='Type') # Field name made lowercase. - views_id = models.IntegerField(db_column='VIEWS_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. - window = models.CharField(db_column='Window', max_length=255, blank=True, null=True) # Field name made lowercase. - typem = models.CharField(db_column='TypeM', max_length=2, blank=True, null=True) # Field name made lowercase. - fieldbool1 = models.IntegerField(db_column='FieldBool1', blank=True, null=True) # Field name made lowercase. - fieldbool2 = models.IntegerField(db_column='FieldBool2', blank=True, null=True) # Field name made lowercase. - fieldbool3 = models.IntegerField(db_column='FieldBool3', blank=True, null=True) # Field name made lowercase. - fieldbool4 = models.IntegerField(db_column='FieldBool4', blank=True, null=True) # Field name made lowercase. - fieldbool5 = models.IntegerField(db_column='FieldBool5', blank=True, null=True) # Field name made lowercase. - fieldbool6 = models.IntegerField(db_column='FieldBool6', blank=True, null=True) # Field name made lowercase. - fieldbool7 = models.IntegerField(db_column='FieldBool7', blank=True, null=True) # Field name made lowercase. - fieldbool8 = models.IntegerField(db_column='FieldBool8', blank=True, null=True) # Field name made lowercase. - fieldbool9 = models.IntegerField(db_column='FieldBool9', blank=True, null=True) # Field name made lowercase. - fieldbool10 = models.IntegerField(db_column='FieldBool10', blank=True, null=True) # Field name made lowercase. - fieldbool11 = models.IntegerField(db_column='FieldBool11', blank=True, null=True) # Field name made lowercase. - fieldbool12 = models.IntegerField(db_column='FieldBool12', blank=True, null=True) # Field name made lowercase. - fieldbool13 = models.IntegerField(db_column='FieldBool13', blank=True, null=True) # Field name made lowercase. - fieldbool14 = models.IntegerField(db_column='FieldBool14', blank=True, null=True) # Field name made lowercase. - fieldbool15 = models.IntegerField(db_column='FieldBool15', blank=True, null=True) # Field name made lowercase. - fieldbool16 = models.IntegerField(db_column='FieldBool16', blank=True, null=True) # Field name made lowercase. - fieldbool17 = models.IntegerField(db_column='FieldBool17', blank=True, null=True) # Field name made lowercase. - fieldbool18 = models.IntegerField(db_column='FieldBool18', blank=True, null=True) # Field name made lowercase. - fieldbool19 = models.IntegerField(db_column='FieldBool19', blank=True, null=True) # Field name made lowercase. - fieldbool20 = models.IntegerField(db_column='FieldBool20', blank=True, null=True) # Field name made lowercase. - fieldint1 = models.SmallIntegerField(db_column='FieldInt1', blank=True, null=True) # Field name made lowercase. - fieldint2 = models.SmallIntegerField(db_column='FieldInt2', blank=True, null=True) # Field name made lowercase. - fieldint3 = models.SmallIntegerField(db_column='FieldInt3', blank=True, null=True) # Field name made lowercase. - fieldint4 = models.SmallIntegerField(db_column='FieldInt4', blank=True, null=True) # Field name made lowercase. - fieldint5 = models.SmallIntegerField(db_column='FieldInt5', blank=True, null=True) # Field name made lowercase. - fieldint6 = models.SmallIntegerField(db_column='FieldInt6', blank=True, null=True) # Field name made lowercase. - fieldint7 = models.SmallIntegerField(db_column='FieldInt7', blank=True, null=True) # Field name made lowercase. - fieldint8 = models.SmallIntegerField(db_column='FieldInt8', blank=True, null=True) # Field name made lowercase. - fieldint9 = models.SmallIntegerField(db_column='FieldInt9', blank=True, null=True) # Field name made lowercase. - fieldint10 = models.SmallIntegerField(db_column='FieldInt10', blank=True, null=True) # Field name made lowercase. - fieldint11 = models.SmallIntegerField(db_column='FieldInt11', blank=True, null=True) # Field name made lowercase. - fieldint12 = models.SmallIntegerField(db_column='FieldInt12', blank=True, null=True) # Field name made lowercase. - fieldint13 = models.SmallIntegerField(db_column='FieldInt13', blank=True, null=True) # Field name made lowercase. - fieldint14 = models.SmallIntegerField(db_column='FieldInt14', blank=True, null=True) # Field name made lowercase. - fieldint15 = models.SmallIntegerField(db_column='FieldInt15', blank=True, null=True) # Field name made lowercase. - fieldint16 = models.SmallIntegerField(db_column='FieldInt16', blank=True, null=True) # Field name made lowercase. - fieldint17 = models.SmallIntegerField(db_column='FieldInt17', blank=True, null=True) # Field name made lowercase. - fieldint18 = models.SmallIntegerField(db_column='FieldInt18', blank=True, null=True) # Field name made lowercase. - fieldint19 = models.SmallIntegerField(db_column='FieldInt19', blank=True, null=True) # Field name made lowercase. - fieldint20 = models.SmallIntegerField(db_column='FieldInt20', blank=True, null=True) # Field name made lowercase. - fieldlong1 = models.IntegerField(db_column='FieldLong1', blank=True, null=True) # Field name made lowercase. - fieldlong2 = models.IntegerField(db_column='FieldLong2', blank=True, null=True) # Field name made lowercase. - fieldlong3 = models.IntegerField(db_column='FieldLong3', blank=True, null=True) # Field name made lowercase. - fieldlong4 = models.IntegerField(db_column='FieldLong4', blank=True, null=True) # Field name made lowercase. - fieldlong5 = models.IntegerField(db_column='FieldLong5', blank=True, null=True) # Field name made lowercase. - fieldlong6 = models.IntegerField(db_column='FieldLong6', blank=True, null=True) # Field name made lowercase. - fieldlong7 = models.IntegerField(db_column='FieldLong7', blank=True, null=True) # Field name made lowercase. - fieldlong8 = models.IntegerField(db_column='FieldLong8', blank=True, null=True) # Field name made lowercase. - fieldtext255a = models.CharField(db_column='FieldText255A', max_length=255, blank=True, - null=True) # Field name made lowercase. - fieldtext255b = models.CharField(db_column='FieldText255B', max_length=255, blank=True, - null=True) # Field name made lowercase. - fieldtext255c = models.CharField(db_column='FieldText255C', max_length=255, blank=True, - null=True) # Field name made lowercase. - fieldtext255d = models.CharField(db_column='FieldText255D', max_length=255, blank=True, - null=True) # Field name made lowercase. - fieldtext255e = models.CharField(db_column='FieldText255E', max_length=255, blank=True, - null=True) # Field name made lowercase. - fieldtext255f = models.CharField(db_column='FieldText255F', max_length=255, blank=True, - null=True) # Field name made lowercase. - fieldtext255g = models.CharField(db_column='FieldText255G', max_length=255, blank=True, - null=True) # Field name made lowercase. - fieldtext255h = models.CharField(db_column='FieldText255H', max_length=255, blank=True, - null=True) # Field name made lowercase. - fieldtext1000a = models.CharField(db_column='FieldText1000A', max_length=1000, blank=True, - null=True) # Field name made lowercase. - fieldtext1000b = models.CharField(db_column='FieldText1000B', max_length=1000, blank=True, - null=True) # Field name made lowercase. - fieldtext1000c = models.CharField(db_column='FieldText1000C', max_length=1000, blank=True, - null=True) # Field name made lowercase. - fieldtext1000d = models.CharField(db_column='FieldText1000D', max_length=1000, blank=True, - null=True) # Field name made lowercase. - fieldtext1000e = models.CharField(db_column='FieldText1000E', max_length=1000, blank=True, - null=True) # Field name made lowercase. - fieldtext1000f = models.CharField(db_column='FieldText1000F', max_length=1000, blank=True, - null=True) # Field name made lowercase. - fieldtext1000g = models.CharField(db_column='FieldText1000G', max_length=1000, blank=True, - null=True) # Field name made lowercase. - fieldtext1000h = models.CharField(db_column='FieldText1000H', max_length=1000, blank=True, - null=True) # Field name made lowercase. - fieldtext1000i = models.CharField(db_column='FieldText1000I', max_length=1000, blank=True, - null=True) # Field name made lowercase. - fieldtext1000j = models.CharField(db_column='FieldText1000J', max_length=1000, blank=True, - null=True) # Field name made lowercase. + db_table = "Version" + unique_together = (("school_id", "schoolyear_id", "version_id"),) + + +class Views(models.Model, PureDjangoModel): + 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. + type = models.SmallIntegerField(db_column="Type") # Field name made lowercase. + views_id = models.IntegerField(db_column="VIEWS_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. + window = models.CharField( + db_column="Window", max_length=255, blank=True, null=True + ) # Field name made lowercase. + typem = models.CharField( + db_column="TypeM", max_length=2, blank=True, null=True + ) # Field name made lowercase. + fieldbool1 = models.IntegerField( + db_column="FieldBool1", blank=True, null=True + ) # Field name made lowercase. + fieldbool2 = models.IntegerField( + db_column="FieldBool2", blank=True, null=True + ) # Field name made lowercase. + fieldbool3 = models.IntegerField( + db_column="FieldBool3", blank=True, null=True + ) # Field name made lowercase. + fieldbool4 = models.IntegerField( + db_column="FieldBool4", blank=True, null=True + ) # Field name made lowercase. + fieldbool5 = models.IntegerField( + db_column="FieldBool5", blank=True, null=True + ) # Field name made lowercase. + fieldbool6 = models.IntegerField( + db_column="FieldBool6", blank=True, null=True + ) # Field name made lowercase. + fieldbool7 = models.IntegerField( + db_column="FieldBool7", blank=True, null=True + ) # Field name made lowercase. + fieldbool8 = models.IntegerField( + db_column="FieldBool8", blank=True, null=True + ) # Field name made lowercase. + fieldbool9 = models.IntegerField( + db_column="FieldBool9", blank=True, null=True + ) # Field name made lowercase. + fieldbool10 = models.IntegerField( + db_column="FieldBool10", blank=True, null=True + ) # Field name made lowercase. + fieldbool11 = models.IntegerField( + db_column="FieldBool11", blank=True, null=True + ) # Field name made lowercase. + fieldbool12 = models.IntegerField( + db_column="FieldBool12", blank=True, null=True + ) # Field name made lowercase. + fieldbool13 = models.IntegerField( + db_column="FieldBool13", blank=True, null=True + ) # Field name made lowercase. + fieldbool14 = models.IntegerField( + db_column="FieldBool14", blank=True, null=True + ) # Field name made lowercase. + fieldbool15 = models.IntegerField( + db_column="FieldBool15", blank=True, null=True + ) # Field name made lowercase. + fieldbool16 = models.IntegerField( + db_column="FieldBool16", blank=True, null=True + ) # Field name made lowercase. + fieldbool17 = models.IntegerField( + db_column="FieldBool17", blank=True, null=True + ) # Field name made lowercase. + fieldbool18 = models.IntegerField( + db_column="FieldBool18", blank=True, null=True + ) # Field name made lowercase. + fieldbool19 = models.IntegerField( + db_column="FieldBool19", blank=True, null=True + ) # Field name made lowercase. + fieldbool20 = models.IntegerField( + db_column="FieldBool20", blank=True, null=True + ) # Field name made lowercase. + fieldint1 = models.SmallIntegerField( + db_column="FieldInt1", blank=True, null=True + ) # Field name made lowercase. + fieldint2 = models.SmallIntegerField( + db_column="FieldInt2", blank=True, null=True + ) # Field name made lowercase. + fieldint3 = models.SmallIntegerField( + db_column="FieldInt3", blank=True, null=True + ) # Field name made lowercase. + fieldint4 = models.SmallIntegerField( + db_column="FieldInt4", blank=True, null=True + ) # Field name made lowercase. + fieldint5 = models.SmallIntegerField( + db_column="FieldInt5", blank=True, null=True + ) # Field name made lowercase. + fieldint6 = models.SmallIntegerField( + db_column="FieldInt6", blank=True, null=True + ) # Field name made lowercase. + fieldint7 = models.SmallIntegerField( + db_column="FieldInt7", blank=True, null=True + ) # Field name made lowercase. + fieldint8 = models.SmallIntegerField( + db_column="FieldInt8", blank=True, null=True + ) # Field name made lowercase. + fieldint9 = models.SmallIntegerField( + db_column="FieldInt9", blank=True, null=True + ) # Field name made lowercase. + fieldint10 = models.SmallIntegerField( + db_column="FieldInt10", blank=True, null=True + ) # Field name made lowercase. + fieldint11 = models.SmallIntegerField( + db_column="FieldInt11", blank=True, null=True + ) # Field name made lowercase. + fieldint12 = models.SmallIntegerField( + db_column="FieldInt12", blank=True, null=True + ) # Field name made lowercase. + fieldint13 = models.SmallIntegerField( + db_column="FieldInt13", blank=True, null=True + ) # Field name made lowercase. + fieldint14 = models.SmallIntegerField( + db_column="FieldInt14", blank=True, null=True + ) # Field name made lowercase. + fieldint15 = models.SmallIntegerField( + db_column="FieldInt15", blank=True, null=True + ) # Field name made lowercase. + fieldint16 = models.SmallIntegerField( + db_column="FieldInt16", blank=True, null=True + ) # Field name made lowercase. + fieldint17 = models.SmallIntegerField( + db_column="FieldInt17", blank=True, null=True + ) # Field name made lowercase. + fieldint18 = models.SmallIntegerField( + db_column="FieldInt18", blank=True, null=True + ) # Field name made lowercase. + fieldint19 = models.SmallIntegerField( + db_column="FieldInt19", blank=True, null=True + ) # Field name made lowercase. + fieldint20 = models.SmallIntegerField( + db_column="FieldInt20", blank=True, null=True + ) # Field name made lowercase. + fieldlong1 = models.IntegerField( + db_column="FieldLong1", blank=True, null=True + ) # Field name made lowercase. + fieldlong2 = models.IntegerField( + db_column="FieldLong2", blank=True, null=True + ) # Field name made lowercase. + fieldlong3 = models.IntegerField( + db_column="FieldLong3", blank=True, null=True + ) # Field name made lowercase. + fieldlong4 = models.IntegerField( + db_column="FieldLong4", blank=True, null=True + ) # Field name made lowercase. + fieldlong5 = models.IntegerField( + db_column="FieldLong5", blank=True, null=True + ) # Field name made lowercase. + fieldlong6 = models.IntegerField( + db_column="FieldLong6", blank=True, null=True + ) # Field name made lowercase. + fieldlong7 = models.IntegerField( + db_column="FieldLong7", blank=True, null=True + ) # Field name made lowercase. + fieldlong8 = models.IntegerField( + db_column="FieldLong8", blank=True, null=True + ) # Field name made lowercase. + fieldtext255a = models.CharField( + db_column="FieldText255A", max_length=255, blank=True, null=True + ) # Field name made lowercase. + fieldtext255b = models.CharField( + db_column="FieldText255B", max_length=255, blank=True, null=True + ) # Field name made lowercase. + fieldtext255c = models.CharField( + db_column="FieldText255C", max_length=255, blank=True, null=True + ) # Field name made lowercase. + fieldtext255d = models.CharField( + db_column="FieldText255D", max_length=255, blank=True, null=True + ) # Field name made lowercase. + fieldtext255e = models.CharField( + db_column="FieldText255E", max_length=255, blank=True, null=True + ) # Field name made lowercase. + fieldtext255f = models.CharField( + db_column="FieldText255F", max_length=255, blank=True, null=True + ) # Field name made lowercase. + fieldtext255g = models.CharField( + db_column="FieldText255G", max_length=255, blank=True, null=True + ) # Field name made lowercase. + fieldtext255h = models.CharField( + db_column="FieldText255H", max_length=255, blank=True, null=True + ) # Field name made lowercase. + fieldtext1000a = models.CharField( + db_column="FieldText1000A", max_length=1000, blank=True, null=True + ) # Field name made lowercase. + fieldtext1000b = models.CharField( + db_column="FieldText1000B", max_length=1000, blank=True, null=True + ) # Field name made lowercase. + fieldtext1000c = models.CharField( + db_column="FieldText1000C", max_length=1000, blank=True, null=True + ) # Field name made lowercase. + fieldtext1000d = models.CharField( + db_column="FieldText1000D", max_length=1000, blank=True, null=True + ) # Field name made lowercase. + fieldtext1000e = models.CharField( + db_column="FieldText1000E", max_length=1000, blank=True, null=True + ) # Field name made lowercase. + fieldtext1000f = models.CharField( + db_column="FieldText1000F", max_length=1000, blank=True, null=True + ) # Field name made lowercase. + fieldtext1000g = models.CharField( + db_column="FieldText1000G", max_length=1000, blank=True, null=True + ) # Field name made lowercase. + fieldtext1000h = models.CharField( + db_column="FieldText1000H", max_length=1000, blank=True, null=True + ) # Field name made lowercase. + fieldtext1000i = models.CharField( + db_column="FieldText1000I", max_length=1000, blank=True, null=True + ) # Field name made lowercase. + fieldtext1000j = models.CharField( + db_column="FieldText1000J", max_length=1000, blank=True, null=True + ) # Field name made lowercase. class Meta: managed = False - db_table = 'Views' - unique_together = (('school_id', 'schoolyear_id', 'version_id', 'type', 'views_id', 'owner'),) + db_table = "Views" + unique_together = ( + ("school_id", "schoolyear_id", "version_id", "type", "views_id", "owner"), + ) diff --git a/aleksis/apps/untis/parse.py b/aleksis/apps/untis/parse.py deleted file mode 100644 index 630f1844c7c56c783020637c670b566694a3dfca..0000000000000000000000000000000000000000 --- a/aleksis/apps/untis/parse.py +++ /dev/null @@ -1,184 +0,0 @@ -from dashboard import caches - -from .api import * -from .api_helper import untis_split_third - -from .drive import drive - - -class Lesson(object): - def __init__(self): - self.filled = False - self.id = None - self.elements = [] - self.times = [] - - def add_element(self, teacher, subject, rooms=[], classes=[]): - el = LessonElement() - el.create(teacher, subject, rooms, classes) - self.elements.append(el) - - def add_time(self, day, hour, rooms=[]): - el = LessonTime() - el.create(day, hour, rooms) - self.times.append(el) - - def create(self, raw_lesson, drive): - self.filled = True - - # Split data (,) - lesson_id = raw_lesson.lesson_id - self.id = lesson_id - raw_lesson_data = raw_lesson.lessonelement1.split(",") - raw_time_data = raw_lesson.lesson_tt.split(",") - - rtd2 = [] - for el in raw_time_data: - rtd2.append(el.split("~")) - - # print(rtd2) - - for el in rtd2: - day = int(el[1]) - hour = int(el[2]) - room_ids = untis_split_third(el[3], conv=int) - - rooms = [] - for room_id in room_ids: - r = drive["rooms"][room_id] - rooms.append(r) - - self.add_time(day, hour, rooms) - - # print(raw_lesson_data) - # print(raw_time_data) - - # Split data more (~) - rld2 = [] - for el in raw_lesson_data: - rld2.append(el.split("~")) - - # print(rld2) - - for i, el in enumerate(rld2): - teacher_id = int(el[0]) - subject_id = int(el[2]) - class_ids = untis_split_third(el[17], conv=int) - # print("TEACHER – ", teacher_id, "; SUBJECT – ", subject_id, "; ROOMS – ", room_ids, "; CLASSES – ", - # class_ids) - - if teacher_id != 0: - teacher = drive["teachers"][teacher_id] - else: - teacher = None - - if subject_id != 0: - subject = drive["subjects"][subject_id] - else: - subject = None - - rooms = [] - - classes = [] - for class_id in class_ids: - c = drive["classes"][class_id] - classes.append(c) - - # print("TEACHER – ", teacher, "; SUBJECT – ", subject, "; ROOMS – ", rooms, - # "; CLASSES – ", classes) - - self.add_element(teacher, subject, rooms, classes) - - -class LessonElement(object): - def __init__(self): - self.teacher = None - self.subject = None - self.rooms = [] - self.classes = [] - - def create(self, teacher, subject, rooms=[], classes=[]): - self.teacher = teacher - self.subject = subject - self.rooms = rooms - self.classes = classes - - -class LessonTime(object): - def __init__(self): - self.hour = None - self.day = None - self.rooms = [] - - def create(self, day, hour, rooms=[]): - self.day = day - self.hour = hour - self.rooms = rooms - - -def parse(force_update=False): - global drive - - cached = caches.PARSED_LESSONS_CACHE.get() - if cached is not False and not force_update: - # print("Lessons come from cache") - return cached - lessons = [] - - # Load lessons from Django ORM - raw_lessons = get_raw_lessons() - - for raw_lesson in raw_lessons: - - if raw_lesson.lesson_tt and raw_lesson.lessonelement1: - # Create object - lesson_obj = Lesson() - lesson_obj.create(raw_lesson, drive) - - lessons.append(lesson_obj) - - # print("Lesson cache was refreshed") - caches.PARSED_LESSONS_CACHE.update(lessons) - - return lessons - - -def get_lesson_by_id(id): - global drive - lesson = Lesson() - raw_lesson = run_one(models.Lesson.objects, filter_term=True).get(lesson_id=id) - lesson.create(raw_lesson, drive) - return lesson - - -def get_lesson_element_by_id_and_teacher(lesson_id, teacher, hour=None, weekday=None): - try: - lesson = get_lesson_by_id(lesson_id) - except Exception: - return None, None - el = None - i = 0 - - if teacher is not None: - for i, element in enumerate(lesson.elements): - if element.teacher is not None: - if element.teacher.id == teacher.id: - el = element - break - elif len(lesson.elements) > 0: - el = lesson.elements[0] - else: - el = None - - t = None - for time in lesson.times: - if time.day == weekday and time.hour == hour: - t = time - - room = None - if t is not None and len(t.rooms) > i: - room = t.rooms[i] - - if el is not None: - return el, room - return None, None diff --git a/aleksis/apps/untis/plan.py b/aleksis/apps/untis/plan.py deleted file mode 100644 index 2c2c43cc6575a1ea96ebd594b9917dd85fdc6602..0000000000000000000000000000000000000000 --- a/aleksis/apps/untis/plan.py +++ /dev/null @@ -1,247 +0,0 @@ -import datetime - -from django.utils import timezone - -from dashboard import plan_caches -from schoolapps import settings -from schoolapps.settings import LESSONS -from untisconnect.api import TYPE_CLASS, TYPE_TEACHER, TYPE_ROOM -from untisconnect.api import format_classes, get_today_holidays -from untisconnect.datetimeutils import format_lesson_time -from untisconnect.events import get_all_events_by_date -from untisconnect.parse import parse -from untisconnect.sub import get_substitutions_by_date_as_dict, TYPE_CANCELLATION, generate_event_table - - -class LessonContainer(object): - """ - Needed for Django template because template language does not support dictionaries - Saves the time object and the lesson elements - """ - - def __init__(self, ): - self.time = None - self.elements = [] - - def set_time(self, time): - self.time = time - - def append(self, element): - self.elements.append(element) - - -class LessonElementContainer(object): - """ - Needed for Django template because template language does not support dictionaries - Saves the lesson element object and the room (from time object) - """ - - def __init__(self, element, room, substitution=None): - self.element = element - self.room = room - self.substitution = substitution - self.is_old = False # - - self.is_event = substitution["table"].is_event if substitution is not None else False - if self.element is not None: - self.classes_formatted = format_classes(self.element.classes) - - -def parse_lesson_times(): - times = [] - for i, t in enumerate(LESSONS): - start_split = t[0].split(":") - start_time = timezone.datetime(year=2000, day=1, month=1, hour=int(start_split[0]), minute=int(start_split[1])) - end_time = start_time + timezone.timedelta(minutes=45) - times.append({ - "number": i + 1, - "number_format": t[1], - "start": start_time, - "start_format": format_lesson_time(start_time), - "end": end_time, - "end_format": format_lesson_time(end_time) - }) - return times - - -def get_plan(type, id, smart=False, monday_of_week=None, force_update=False): - """ Generates a plan for type (TYPE_TEACHER, TYPE_CLASS, TYPE_ROOM) and a id of the teacher (class, room)""" - # Check cache - cache = plan_caches.get_cache_for_plan(type, id, smart, monday_of_week) - - cached = cache.get() - # print(cached) - if cached is not False and not force_update: - # print("Plan come from cache", cache.id) - return cached - - # Get parsed lessons - lessons = parse() - times_parsed = parse_lesson_times() - - hols_for_weekdays = [] - - if smart: - week_days = [monday_of_week + datetime.timedelta(days=i) for i in range(5)] - subs_for_weekday = [] - for week_day in week_days: - subs = get_substitutions_by_date_as_dict(week_day) - subs_for_weekday.append(subs) - - hols = get_today_holidays(week_day) - hols_for_weekdays.append(hols) - - # Init plan array - plan = [] - already_added_subs_as_ids = [] - - # Fill plan array with LessonContainers (show upside), WIDTH and HEIGHT are defined by Django settings - for hour_idx in range(settings.TIMETABLE_HEIGHT): - plan.append(([], times_parsed[hour_idx] if len(times_parsed) > hour_idx else None)) - for day_idx in range(settings.TIMETABLE_WIDTH): - plan[hour_idx][0].append(LessonContainer()) - - # Fill plan with lessons - for lesson in lessons: - for i, element in enumerate(lesson.elements): - - # Check if the lesson element is important for that plan (look by type and id) - found = False - if type == TYPE_CLASS: - for lclass in element.classes: - if lclass.id == id: - found = True - - elif type == TYPE_TEACHER: - if element.teacher: - if element.teacher.id == id: - found = True - - elif type == TYPE_ROOM: - for time in lesson.times: - for j, lroom in enumerate(time.rooms): - if lroom.id == id: - found = True - - # If the lesson element is important then add it to plan array - if found: - for time in lesson.times: # Go for every time the lesson is thought - # Find matching rooms - room_index = None - for j, lroom in enumerate(time.rooms): - if lroom.id == id: - room_index = j - - # Add the time object to the matching LessonContainer on the right position in the plan array - plan[time.hour - 1][0][time.day - 1].set_time(time) - - # Check if there is an room for this time and lesson - try: - room = time.rooms[i] - except IndexError: - room = None - - # Smart Plan: Check if there substitutions for this lesson - matching_sub = None - - if smart: - # If a sub with matching lesson id and day exists - if subs_for_weekday[time.day - 1].get(lesson.id, None) is not None: - for sub in subs_for_weekday[time.day - 1][lesson.id]: - # ... check whether the sub has the right old teacher and the right lesson number - if sub["sub"].teacher_old is not None and element.teacher is not None: - if sub["sub"].teacher_old.id == element.teacher.id and \ - sub["sub"].lesson == time.hour and sub["table"].is_event is False: - matching_sub = sub - - # If the lesson matches, add it to the list of already added subs - if matching_sub: - already_added_subs_as_ids.append(matching_sub["sub"].id) - - # Create a LessonElementContainer with room and lesson element - element_container = LessonElementContainer(element, room, substitution=matching_sub) - - # Important for rooms: Check if the current room is the old room - if smart and matching_sub is not None: - if matching_sub["sub"].room_new is not None: - if matching_sub["sub"].room_old is not None: - if matching_sub["sub"].room_old != matching_sub["sub"].room_new: - element_container.is_old = True - else: - element_container.is_old = True - - # The rooms is empty, too, if the lesson is canceled - if matching_sub["sub"].type == TYPE_CANCELLATION: - element_container.is_old = True - - # Check for holidays - if smart and hols_for_weekdays[time.day - 1]: - element_container.is_hol = True - element_container.element.holiday_reason = hols_for_weekdays[time.day - 1][0].name - - if type != TYPE_ROOM or i == room_index: - # Add this container object to the LessonContainer object in the plan array - plan[time.hour - 1][0][time.day - 1].append(element_container) - - # Now check subs which were not in this plan before - if smart: - for i, week_day in enumerate(week_days): - subs_for_this_weekday = subs_for_weekday[i] - for lesson_id, subs in subs_for_this_weekday.items(): - for sub in subs: - - found = False - room = sub["sub"].room_old - if type == TYPE_CLASS: - if sub["sub"].classes: - for _class in sub["sub"].classes: - if _class.id == id: - found = True - elif type == TYPE_TEACHER: - if sub["sub"].teacher_new: - if sub["sub"].teacher_new.id == id: - found = True - - if sub["sub"].teacher_old: - if sub["sub"].teacher_old.id == id: - found = True - - elif type == TYPE_ROOM: - if sub["sub"].room_new: - if sub["sub"].room_new.id == id: - found = True - if found: - element_container = LessonElementContainer(sub["sub"].lesson_element, room, substitution=sub) - if sub["sub"].id not in already_added_subs_as_ids: - plan[sub["sub"].lesson - 1][0][i].append(element_container) - - # Get all events for this week day - events = get_all_events_by_date(week_day) - event_table = generate_event_table(events) - - for event in event_table: - found = False - # Check if event is relevant for type and id - if type == TYPE_CLASS: - for _class in event.event.classes: - if _class.id == id: - found = True - elif type == TYPE_TEACHER: - for teacher in event.teachers: - if teacher.id == id: - found = True - - elif type == TYPE_ROOM: - for room in event.rooms: - if room.id == id: - found = True - - if found: - # Add event to plan - element_container = LessonElementContainer(None, None, - substitution={"sub": None, "table": event}) - for j in range(event.event.from_lesson - 1, event.event.to_lesson): - plan[j][0][i].append(element_container) - - cache.update((plan, hols_for_weekdays)) - return plan, hols_for_weekdays diff --git a/aleksis/apps/untis/settings.py b/aleksis/apps/untis/settings.py new file mode 100644 index 0000000000000000000000000000000000000000..17fa5ad50490f8566069daa62ddf794aecee5682 --- /dev/null +++ b/aleksis/apps/untis/settings.py @@ -0,0 +1,62 @@ +from django.utils.translation import gettext_lazy as _ + +from aleksis.core.settings import _settings + +DATABASES = { + "untis": { + "ENGINE": "django.db.backends.mysql", + "NAME": _settings.get("untis.database.name", "untis"), + "USER": _settings.get("untis.database.user", "untis"), + "PASSWORD": _settings.get("untis.database.password", None), + "HOST": _settings.get("untis.database.host", "127.0.0.1"), + "PORT": _settings.get("untis.database.port", 3306), + } +} + +CONSTANCE_CONFIG = { + "UNTIS_IMPORT_MYSQL_UPDATE_SUBJECTS": (True, _("Update values of existing subjects?"), bool,), + "UNTIS_IMPORT_MYSQL_UPDATE_PERSONS_SHORT_NAME": ( + False, + _("Update short name of existing persons?"), + bool, + ), + "UNTIS_IMPORT_MYSQL_UPDATE_PERSONS_NAME": ( + False, + _("Update first and last name of existing persons?"), + bool, + ), + "UNTIS_IMPORT_MYSQL_UPDATE_GROUPS_SHORT_NAME": ( + False, + _("Update short name of existing groups?"), + bool, + ), + "UNTIS_IMPORT_MYSQL_UPDATE_GROUPS_NAME": (False, _("Update name of existing groups?"), bool,), + "UNTIS_IMPORT_MYSQL_UPDATE_GROUPS_OVERWRITE_OWNERS": ( + False, + _("Overwrite existing owners?"), + bool, + ), + "UNTIS_IMPORT_MYSQL_UPDATE_ROOMS_NAME": (True, _("Update name of existing rooms?"), bool,), + "UNTIS_IMPORT_MYSQL_UPDATE_SUPERVISION_AREAS": ( + True, + _("Update values of existing supervision areas?"), + ), + "UNTIS_IMPORT_MYSQL_USE_COURSE_GROUPS": ( + True, + _("Build or search course groups for every course instead of setting classes as groups."), + ), +} + +CONSTANCE_CONFIG_FIELDSETS = { + "UNTIS import via MySQL: Common Settings": ( + "UNTIS_IMPORT_MYSQL_UPDATE_SUBJECTS", + "UNTIS_IMPORT_MYSQL_UPDATE_PERSONS_SHORT_NAME", + "UNTIS_IMPORT_MYSQL_UPDATE_PERSONS_NAME", + "UNTIS_IMPORT_MYSQL_UPDATE_GROUPS_SHORT_NAME", + "UNTIS_IMPORT_MYSQL_UPDATE_GROUPS_NAME", + "UNTIS_IMPORT_MYSQL_UPDATE_GROUPS_OVERWRITE_OWNERS", + "UNTIS_IMPORT_MYSQL_UPDATE_ROOMS_NAME", + "UNTIS_IMPORT_MYSQL_UPDATE_SUPERVISION_AREAS", + "UNTIS_IMPORT_MYSQL_USE_COURSE_GROUPS", + ), +} diff --git a/aleksis/apps/untis/sub.py b/aleksis/apps/untis/sub.py deleted file mode 100644 index 7b9236df619ead2b012683c41c6bb96be969d5f4..0000000000000000000000000000000000000000 --- a/aleksis/apps/untis/sub.py +++ /dev/null @@ -1,341 +0,0 @@ -from django.utils import timezone -from django.db.models import Q - -from untisconnect import models -from untisconnect.api import run_default_filter, row_by_row_helper, format_classes, get_all_absences_by_date, \ - TYPE_TEACHER -from untisconnect.api_helper import run_using, untis_split_first, untis_date_to_date, date_to_untis_date -from untisconnect.parse import get_lesson_element_by_id_and_teacher -from untisconnect.drive import drive - -TYPE_SUBSTITUTION = 0 -TYPE_CANCELLATION = 1 -TYPE_TEACHER_CANCELLATION = 2 -TYPE_CORRIDOR = 3 - - -def parse_type_of_untis_flags(flags): - """ - Get type of substitution by parsing UNTIS flags - :param flags: UNTIS flags (string) - :return: type (int, constants are provided) - """ - - type_ = TYPE_SUBSTITUTION - if "E" in flags: - type_ = TYPE_CANCELLATION - elif "F" in flags: - type_ = TYPE_TEACHER_CANCELLATION - return type_ - - -class Substitution(object): - def __init__(self): - self.filled = False - self.id = None - self.lesson_id = None - self.date = None - self.lesson = None - self.type = None - self.text = None - self.teacher_old = None - self.teacher_new = None - self.subject_old = None - self.subject_new = None - self.room_old = None - self.room_new = None - self.corridor = None - self.classes = None - self.lesson_element = None - self.lesson_time = None - - def __str__(self): - if self.filled: - return self.id - else: - return "Unbekannt" - - def create(self, db_obj): - self.filled = True - - # Metadata - self.id = db_obj.substitution_id - self.lesson_id = db_obj.lesson_idsubst - self.date = untis_date_to_date(db_obj.date) - self.lesson = db_obj.lesson - self.type = parse_type_of_untis_flags(db_obj.flags) - self.text = db_obj.text - - # Teacher - if db_obj.teacher_idlessn != 0: - self.teacher_old = drive["teachers"][db_obj.teacher_idlessn] - - # print(self.teacher_new, self.teacher_old, self.lesson_id, self.id) - if db_obj.teacher_idsubst != 0: - self.teacher_new = drive["teachers"][db_obj.teacher_idsubst] - - if self.teacher_old is not None and self.teacher_new.id == self.teacher_old.id: - self.teacher_new = None - - if self.teacher_old is None and self.teacher_new is not None: - self.teacher_old = self.teacher_new - self.teacher_new = None - - # print(self.teacher_old, self.teacher_new) - - self.lesson_element, self.room_old = get_lesson_element_by_id_and_teacher(self.lesson_id, self.teacher_old, - self.lesson, self.date.weekday() + 1) - - # Subject - self.subject_old = self.lesson_element.subject if self.lesson_element is not None else None - if db_obj.subject_idsubst != 0: - self.subject_new = drive["subjects"][db_obj.subject_idsubst] - - if self.subject_old is not None and self.subject_old.id == self.subject_new.id: - self.subject_new = None - - # Room - if db_obj.room_idsubst != 0: - self.room_new = drive["rooms"][db_obj.room_idsubst] - - if self.room_old is not None and self.room_old.id == self.room_new.id: - self.room_new = None - - # Supervisement - if db_obj.corridor_id != 0: - self.corridor = drive["corridors"][db_obj.corridor_id] - self.type = TYPE_CORRIDOR - - # Classes - self.classes = [] - class_ids = untis_split_first(db_obj.classids, conv=int) - - for id in class_ids: - self.classes.append(drive["classes"][id]) - - -def substitutions_sorter(sub): - """ - Sorting helper (sort function) for substitutions - :param sub: Substitution to sort - :return: A string for sorting by - """ - - # First, sort by class - sort_by = sub.classes - - # If the sub hasn't got a class, then put it to the bottom - if sort_by == "": - sort_by = "Z" - - # Second, sort by lesson number - sort_by += str(sub.lesson) - - return sort_by - - -class SubRow(object): - def __init__(self): - self.sub = None - self.color = "black" - self.css_class = "black-text" - self.lesson = "" - self.classes = "" - self.teacher = "" - self.teacher_full = "" - self.teachers = [] # Only for events - self.rooms = [] # Only for events - self.absences = [] # Only for events - self.subject = "" - self.subject_full = "" - self.room = "" - self.room_full = "" - self.text = "" - self.extra = "" - self.is_event = False - self.event = None - - -def generate_event_table(events): - sub_rows = [] - for event in events: - sub_row = SubRow() - sub_row.is_event = True - sub_row.event = event - - if event.from_lesson != event.to_lesson: - sub_row.lesson = "{}.-{}.".format(event.from_lesson, event.to_lesson) - else: - sub_row.lesson = "{}.".format(event.from_lesson) - - sub_row.classes = format_classes(event.classes) - sub_row.teachers = event.teachers - sub_row.rooms = event.rooms - sub_row.absences = event.absences - - sub_row.color = "purple" - sub_row.text = event.text - - sub_rows.append(sub_row) - - return sub_rows - - -def generate_sub_table(subs, events=[]): - """ - Parse substitutions and prepare than for displaying in plan - :param subs: Substitutions to parse - :return: A list of SubRow objects - """ - - sub_rows = [] - for sub in subs: - sub_row = SubRow() - sub_row.sub = sub - - # Color - sub_row.color = "black" - if sub.type == 1 or sub.type == 2: - sub_row.css_class = "green-text" - sub_row.color = "green" - elif sub.type == 3: - sub_row.css_class = "blue-text" - sub_row.color = "blue" - - # Format lesson - if sub.type == 3: - sub_row.lesson = "{}./{}.".format(sub.lesson - 1, sub.lesson) - else: - sub_row.lesson = "{}.".format(sub.lesson) - - # Classes - sub_row.classes = format_classes(sub.classes) - - # Hint text - sub_row.text = sub.text - - # Badge - sub_row.badge = None - if sub.type == 1: - sub_row.badge = "Schüler frei" - elif sub.type == 2: - sub_row.badge = "Lehrer frei" - - # Debugging information - sub_row.extra = "{} {}".format(sub.id, sub.lesson_id) - - sub_rows.append(sub_row) - - sub_rows += generate_event_table(events) - sub_rows.sort(key=substitutions_sorter) - - return sub_rows - - -class HeaderInformation: - def __init__(self): - self.absences = [] - self.missing_classes = [] - self.affected_teachers = [] - self.affected_classes = [] - self.rows = [] - - def is_box_needed(self): - return len(self.absences) > 0 or len(self.missing_classes) > 0 or len( - self.affected_teachers) > 0 or len(self.affected_classes) > 0 - - -def get_header_information(subs, date, events=[]): - """ - Get header information like affected teachers/classes and missing teachers/classes for a given date - :param date: The date as datetime object - :param subs: All subs for the given date - :return: HeaderInformation object with all kind of information - """ - - info = HeaderInformation() - - # Get all affected teachers and classes - for sub in subs: - if sub.teacher_old and sub.teacher_old not in info.affected_teachers: - info.affected_teachers.append(sub.teacher_old) - if sub.teacher_new and sub.teacher_new not in info.affected_teachers: - info.affected_teachers.append(sub.teacher_new) - - for _class in sub.classes: - if _class not in info.affected_classes: - info.affected_classes.append(_class) - - for event in events: - for teacher in event.teachers: - if teacher.id not in [x.id for x in info.affected_teachers]: - info.affected_teachers.append(teacher) - - for _class in event.classes: - if _class.id not in [x.id for x in info.affected_classes]: - info.affected_classes.append(_class) - - # Get all absences that are relevant for this day - info.absences = get_all_absences_by_date(date) - - # Format list of affected teachers - if info.affected_teachers: - joined = ", ".join(sorted([x.shortcode for x in info.affected_teachers])) - info.rows.append(("Betroffene Lehrkräfte", joined)) - - # Format list of affected classes - if info.affected_classes: - joined = ", ".join(sorted([x.name for x in info.affected_classes])) - info.rows.append(("Betroffene Klassen", joined)) - - # Format list of missing teachers (absences) - if info.absences: - elements = [] - for absence in info.absences: - if absence.type != TYPE_TEACHER: - continue - if absence.is_whole_day: - # Teacher is missing the whole day - elements.append("{}".format(absence.teacher.shortcode)) - elif absence.from_lesson == absence.to_lesson: - elements.append("{} ({}.)".format(absence.teacher.shortcode, absence.from_lesson)) - else: - # Teacher is only missing a part of day - elements.append( - "{} ({}.-{}.)".format(absence.teacher.shortcode, absence.from_lesson, absence.to_lesson)) - elements.sort() - joined = ", ".join(elements) - - info.rows.append(("Abwesende Lehrkräfte", joined)) - - return info - - -def get_substitutions_by_date(date): - subs_raw = run_default_filter( - run_using(models.Substitution.objects.filter(date=date_to_untis_date(date), deleted=0).exclude( - Q(flags__contains="N") | - Q(flags__contains="b") | - Q(flags__contains="F") | - Q(flags__exact="g")).order_by("classids", "lesson")), - filter_term=False) - - subs = row_by_row_helper(subs_raw, Substitution) - # subs.sort(key=substitutions_sorter) - return subs - - -def get_substitutions_by_date_as_dict(date): - subs_raw = get_substitutions_by_date(date) - sub_table = generate_sub_table(subs_raw) - subs = {} - for i, sub_raw in enumerate(subs_raw): - if sub_raw.lesson_id not in subs.keys(): - subs[sub_raw.lesson_id] = [] - sub_row = None - for sub_item in sub_table: - if sub_item.sub.id == sub_raw.id: - sub_row = sub_item - subs[sub_raw.lesson_id].append({"sub": sub_raw, "table": sub_row}) - - return subs diff --git a/aleksis/apps/untis/tasks.py b/aleksis/apps/untis/tasks.py new file mode 100644 index 0000000000000000000000000000000000000000..f66078bb12a4ce1b773b0f9c827e9b9bd88fe4ba --- /dev/null +++ b/aleksis/apps/untis/tasks.py @@ -0,0 +1,9 @@ +from aleksis.core.util.core_helpers import celery_optional + +from .util.mysql.main import untis_import_mysql as _untis_import_mysql + + +@celery_optional +def untis_import_mysql(): + """ Celery task for import of UNTIS data from MySQL """ + _untis_import_mysql() diff --git a/aleksis/apps/untis/templates/untis/untis_import.html b/aleksis/apps/untis/templates/untis/xml_import.html similarity index 72% rename from aleksis/apps/untis/templates/untis/untis_import.html rename to aleksis/apps/untis/templates/untis/xml_import.html index 9f775e52cf429e485f825a0e5577092c8be96cb5..f481527c2bfc098c48c3ca205c41d4115787ffd3 100644 --- a/aleksis/apps/untis/templates/untis/untis_import.html +++ b/aleksis/apps/untis/templates/untis/xml_import.html @@ -4,9 +4,8 @@ {% load material_form i18n %} - -{% block browser_title %}{% blocktrans %}Import Untis data{% endblocktrans %}{% endblock %} -{% block page_title %}{% blocktrans %}Import Untis data{% endblocktrans %}{% endblock %} +{% block browser_title %}{% blocktrans %}Import Untis data via XML{% endblocktrans %}{% endblock %} +{% block page_title %}{% blocktrans %}Import Untis data via XML{% endblocktrans %}{% endblock %} {% block content %} @@ -15,9 +14,9 @@ Untis provides a function for exporting all data as an XML file. {% endblocktrans %} </p> - <div class="alert error"> + <div class="alert warning"> <p> - <i class="material-icons left">error</i> + <i class="material-icons left">warning</i> {% blocktrans %} Newly imported data will be valid as of tomorrow. {% endblocktrans %} @@ -38,7 +37,7 @@ <form method="post" enctype="multipart/form-data"> {% csrf_token %} {% form form=upload_form %}{% endform %} - {% include "core/save_button.html" %} + {% include "core/save_button.html" with icon="import_export" caption=_("Import data") %} </form> {% endblock %} diff --git a/aleksis/apps/untis/urls.py b/aleksis/apps/untis/urls.py index 27ac3d368475d3db38d4757f066e1f405cf7fb6f..1a5119ea3c6195ab915588b2e3fd684891294b0b 100644 --- a/aleksis/apps/untis/urls.py +++ b/aleksis/apps/untis/urls.py @@ -3,5 +3,5 @@ from django.urls import path from . import views urlpatterns = [ - path("import", views.untis_import, name="untis_import"), + path("import/xml/", views.xml_import, name="untis_xml_import"), ] diff --git a/aleksis/apps/untis/util/mysql/importers/absences.py b/aleksis/apps/untis/util/mysql/importers/absences.py new file mode 100644 index 0000000000000000000000000000000000000000..9527e00443a61d486291dbf60751668abaea3884 --- /dev/null +++ b/aleksis/apps/untis/util/mysql/importers/absences.py @@ -0,0 +1,142 @@ +import logging +from enum import Enum + +from tqdm import tqdm + +from aleksis.apps.chronos import models as chronos_models + +from .... import models as mysql_models +from ..util import ( + TQDM_DEFAULTS, + get_first_period, + get_last_period, + get_term, + move_weekday_to_range, + run_default_filter, + untis_date_to_date, +) + +logger = logging.getLogger(__name__) +unknown_reason, _ = chronos_models.AbsenceReason.objects.get_or_create(short_name="?") + + +class AbsenceType(Enum): + GROUP = 100 + TEACHER = 101 + ROOM = 102 + + +def import_absences(absence_reasons_ref, time_periods_ref, teachers_ref, classes_ref, rooms_ref): + ref = {} + + # Get term + term = get_term() + term_date_start = untis_date_to_date(term.datefrom) + term_date_end = untis_date_to_date(term.dateto) + + # Get absences + absences = ( + run_default_filter(mysql_models.Absence.objects, filter_term=False) + .filter(datefrom__lte=term.dateto, dateto__gte=term.datefrom) + .order_by("absence_id") + ) + + existing_absences = [] + for absence in tqdm(absences, desc="Import absences", **TQDM_DEFAULTS): + import_ref = absence.absence_id + + logger.info("Import absence {}".format(import_ref)) + + if absence.absence_reason_id == 0: + reason = unknown_reason + else: + reason = absence_reasons_ref[absence.absence_reason_id] + + # Build values + type_ = absence.typea + date_from = untis_date_to_date(absence.datefrom) + date_to = untis_date_to_date(absence.dateto) + period_from = absence.lessonfrom + period_to = absence.lessonto + weekday_from = date_from.weekday() + weekday_to = date_to.weekday() + + # Check min/max weekdays + weekday_from = move_weekday_to_range(time_periods_ref, weekday_from) + weekday_to = move_weekday_to_range(time_periods_ref, weekday_to) + + # Check min/max periods + first_period = get_first_period(time_periods_ref, weekday_from) + last_period = get_last_period(time_periods_ref, weekday_from) + + if period_from == 0: + period_from = first_period + if period_to == 0: + period_to = last_period + + time_period_from = time_periods_ref[weekday_from][period_from] + time_period_to = time_periods_ref[weekday_to][period_to] + comment = absence.text + + group = None + teacher = None + room = None + + if type_ == AbsenceType.GROUP: + group = classes_ref[absence.ida] + elif type_ == AbsenceType.TEACHER: + teacher = teachers_ref[absence.ida] + elif type == AbsenceType.ROOM: + room = rooms_ref[absence.ida] + + new_absence, created = chronos_models.Absence.objects.get_or_create( + import_ref_untis=import_ref, + defaults={ + "reason": reason, + "group": group, + "teacher": teacher, + "room": room, + "date_start": date_from, + "date_end": date_to, + "period_from": time_period_from, + "period_to": time_period_to, + "comment": absence.text, + }, + ) + + if created: + logger.info(" New absence created") + + if ( + new_absence.reason != reason + or new_absence.group != group + or new_absence.teacher != teacher + or new_absence.room != room + or new_absence.date_start != date_from + or new_absence.date_end != date_to + or new_absence.period_from != time_period_from + or new_absence.period_to != time_period_to + or new_absence.comment != comment + ): + new_absence.reason = reason + new_absence.group = group + new_absence.teacher = teacher + new_absence.room = room + new_absence.date_start = date_from + new_absence.date_end = date_to + new_absence.period_from = time_period_from + new_absence.period_to = time_period_to + new_absence.comment = comment + new_absence.save() + logger.info(" Absence updated") + + existing_absences.append(import_ref) + ref[import_ref] = new_absence + + # Delete all no longer existing absences + for a in chronos_models.Absence.objects.filter( + date_start__lte=term_date_start, date_end__gte=term_date_end + ): + if a.import_ref_untis and a.import_ref_untis not in existing_absences: + logger.info("Absence {} deleted".format(a.id)) + a.delete() diff --git a/aleksis/apps/untis/util/mysql/importers/common_data.py b/aleksis/apps/untis/util/mysql/importers/common_data.py new file mode 100644 index 0000000000000000000000000000000000000000..12d7a8833c5d7cb1eac838e658f543f171ef6af9 --- /dev/null +++ b/aleksis/apps/untis/util/mysql/importers/common_data.py @@ -0,0 +1,544 @@ +import logging +from datetime import time +from enum import Enum +from typing import Dict, List + +from constance import config +from tqdm import tqdm + +from aleksis.apps.chronos import models as chronos_models +from aleksis.core import models as core_models + +from .... import models as mysql_models +from ..util import ( + TQDM_DEFAULTS, + connect_untis_fields, + run_default_filter, + untis_colour_to_hex, + untis_split_first, +) + +logger = logging.getLogger(__name__) + + +class CommonDataId(Enum): + PERIOD = 40 + + +def import_subjects() -> Dict[int, chronos_models.Subject]: + """ Import subjects """ + + subjects_ref = {} + + # Get subjects + subjects = run_default_filter(mysql_models.Subjects.objects, filter_term=False) + + for subject in tqdm(subjects, desc="Import subjects", **TQDM_DEFAULTS): + # Check if needed data are provided + if not subject.name: + raise RuntimeException( + "Subject ID {}: Cannot import subject without short name.".format( + subject.subject_id + ) + ) + + # Build values + short_name = subject.name[:10] + name = subject.longname if subject.longname else short_name + colour_fg = untis_colour_to_hex(subject.forecolor) + colour_bg = untis_colour_to_hex(subject.backcolor) + import_ref = subject.subject_id + + logger.info("Import subject {} …".format(short_name)) + + # Get or create subject object by short name + new_subject, created = chronos_models.Subject.objects.get_or_create( + abbrev=short_name, + defaults={ + "name": name, + "colour_fg": colour_fg, + "colour_bg": colour_bg, + "import_ref_untis": import_ref, + }, + ) + + if created: + logger.info(" New subject created") + + # Force sync + changed = False + if config.UNTIS_IMPORT_MYSQL_UPDATE_SUBJECTS and ( + new_subject.name != name + or new_subject.colour_fg != colour_fg + or new_subject.colour_bg != colour_bg + ): + new_subject.name = name + new_subject.colour_fg = untis_colour_to_hex(subject.forecolor) + new_subject.colour_bg = untis_colour_to_hex(subject.backcolor) + changed = True + + logger.info(" Name, foreground and background colour updated") + + if new_subject.import_ref_untis != import_ref: + new_subject.import_ref_untis = import_ref + changed = True + + logger.info(" Import reference updated") + + if changed: + new_subject.save() + + subjects_ref[import_ref] = new_subject + + return subjects_ref + + +def import_teachers() -> Dict[int, core_models.Person]: + """ Import teachers """ + + teachers_ref = {} + + # Get teachers + teachers = run_default_filter(mysql_models.Teacher.objects) + + for teacher in tqdm(teachers, desc="Import teachers", **TQDM_DEFAULTS): + # Check if needed data are provided + if not teacher.name: + raise RuntimeException( + "Teacher ID {}: Cannot import teacher without short name.".format( + teacher.teacher_id + ) + ) + + # Build values + short_name = teacher.name + first_name = teacher.firstname if teacher.firstname else "?" + last_name = teacher.longname if teacher.longname else teacher.name + import_ref = teacher.teacher_id + + logger.info("Import teacher {} (as person) …".format(short_name)) + + new_teacher, created = core_models.Person.objects.get_or_create( + short_name__iexact=short_name, + defaults={ + "first_name": first_name, + "last_name": last_name, + "import_ref_untis": import_ref, + }, + ) + + if created: + logger.info(" New person created") + + changed = False + if config.UNTIS_IMPORT_MYSQL_UPDATE_PERSONS_NAME and ( + new_teacher.first_name != first_name or new_teacher.last_name != last_name + ): + new_teacher.first_name = first_name + new_teacher.last_name = last_name + changed = True + logger.info(" First and last name updated") + + if ( + config.UNTIS_IMPORT_MYSQL_UPDATE_PERSONS_SHORT_NAME + and new_teacher.short_name != short_name + ): + new_teacher.short_name = short_name + changed = True + logger.info(" Short name updated") + + if new_teacher.import_ref_untis != import_ref: + new_teacher.import_ref_untis = import_ref + changed = True + logger.info(" Import reference updated") + + if changed: + new_teacher.save() + + teachers_ref[teacher.teacher_id] = new_teacher + + return teachers_ref + + +def import_classes(teachers_ref: Dict[int, core_models.Person]) -> Dict[int, core_models.Group]: + """ Import classes """ + + classes_ref = {} + + # Get classes + course_classes = run_default_filter(mysql_models.Class.objects, filter_term=True) + + for class_ in tqdm(course_classes, desc="Import classes", **TQDM_DEFAULTS): + # Check if needed data are provided + if not class_.name: + raise RuntimeException( + "Class ID {}: Cannot import class without short name.".format(class_.teacher_id) + ) + + # Build values + short_name = class_.name[:16] + name = class_.longname if class_.longname else short_name + teacher_ids = untis_split_first(class_.teacherids, int) + owners = [teachers_ref[t_id] for t_id in teacher_ids] + import_ref = class_.class_id + + logger.info("Import class {} (as group) …".format(short_name)) + + new_group, created = core_models.Group.objects.get_or_create( + short_name__iexact=short_name, defaults={"name": name, "import_ref_untis": import_ref}, + ) + + if created: + logger.info(" New person created") + + changed = False + + if ( + config.UNTIS_IMPORT_MYSQL_UPDATE_GROUPS_SHORT_NAME + and new_group.short_name != short_name + ): + new_group.short_name = short_name + changed = True + logger.info(" Short name updated") + + if config.UNTIS_IMPORT_MYSQL_UPDATE_GROUPS_NAME and new_group.name != name: + new_group.name = name + changed = True + logger.info(" Name updated") + + if new_group.import_ref_untis != import_ref: + new_group.import_ref_untis = import_ref + changed = True + logger.info(" Import reference updated") + + if changed: + new_group.save() + + if config.UNTIS_IMPORT_MYSQL_UPDATE_GROUPS_OVERWRITE_OWNERS: + new_group.owners.set(owners) + logger.info(" Group owners set") + else: + new_group.owners.add(*owners) + logger.info(" Group owners added") + + classes_ref[class_.class_id] = new_group + + return classes_ref + + +def import_rooms() -> Dict[int, chronos_models.Room]: + """ Import rooms """ + + ref = {} + + # Get rooms + rooms = run_default_filter(mysql_models.Room.objects) + + for room in tqdm(rooms, desc="Import rooms", **TQDM_DEFAULTS): + if not room.name: + raise RuntimeException( + "Room ID {}: Cannot import room without short name.".format(room.room_id) + ) + + # Build values + short_name = room.name[:10] + name = room.longname[:30] if room.longname else short_name + import_ref = room.room_id + + logger.info("Import room {} …".format(short_name)) + + new_room, created = chronos_models.Room.objects.get_or_create( + short_name=short_name, defaults={"name": name, "import_ref_untis": import_ref}, + ) + + if created: + logger.info(" New room created") + + changed = False + + if config.UNTIS_IMPORT_MYSQL_UPDATE_ROOMS_NAME and new_room.name != name: + new_room.name = name + changed = True + logger.info(" Name updated") + + if new_room.import_ref_untis != import_ref: + new_room.import_ref_untis = import_ref + changed = True + logger.info(" Import reference updated") + + if changed: + new_room.save() + + ref[import_ref] = new_room + + return ref + + +def import_supervision_areas(breaks_ref, teachers_ref) -> Dict[int, chronos_models.SupervisionArea]: + """ Import supervision areas """ + + ref = {} + + # Get supervision areas + areas = run_default_filter(mysql_models.Corridor.objects, filter_term=False) + + for area in tqdm(areas, desc="Import supervision areas", **TQDM_DEFAULTS): + if not area.name: + raise RuntimeException( + "Supervision area ID {}: Cannot import supervision area without short name.".format( + area.corridor_id + ) + ) + + short_name = area.name[:10] + name = area.longname[:50] if area.longname else short_name + colour_fg = untis_colour_to_hex(area.forecolor) + colour_bg = untis_colour_to_hex(area.backcolor) + import_ref = area.corridor_id + + logger.info("Import supervision area {} …".format(short_name)) + + new_area, created = chronos_models.SupervisionArea.objects.get_or_create( + short_name=short_name, + defaults={ + "name": name, + "colour_fg": colour_fg, + "colour_bg": colour_bg, + "import_ref_untis": import_ref, + }, + ) + + if created: + logger.info(" New supervision area created") + + changed = False + + if config.UNTIS_IMPORT_MYSQL_UPDATE_SUPERVISION_AREAS and ( + new_area.name != new_area.name + or new_area.colour_fg != colour_fg + or new_area.colour_bg != colour_bg + ): + new_area.name = name + new_area.colour_fg = colour_fg + new_area.colour_bg = colour_bg + changed = True + + logger.info(" Name, foreground and background colour updated") + + if new_area.import_ref_untis != import_ref: + new_area.import_ref_untis = import_ref + changed = True + logger.info(" Import reference updated") + + if changed: + new_area.save() + + logger.info(" Import supervisions for this area") + + # Parse raw data + raw_supervisions = connect_untis_fields(area, "breaksupervision", 16) + + supervisions_ref = {} + for raw_supervision in raw_supervisions: + # Split more and get teacher id + raw_supervision_2 = raw_supervision.split("~") + teacher_id = int(raw_supervision_2[1]) + + if teacher_id in teachers_ref: + # Get weekday, period after break and teacher + weekday = int(raw_supervision_2[2]) - 1 + period_after_break = int(raw_supervision_2[3]) + teacher = teachers_ref[teacher_id] + + logger.info( + " Import supervision on weekday {} before the {}. period (teacher {})".format( + weekday, period_after_break, teacher + ) + ) + + # Get or create + new_supervision, created = new_area.supervisions.get_or_create( + break_item=breaks_ref[weekday][period_after_break], + defaults={"teacher": teacher}, + ) + + # Log + if created: + logger.info(" New supervision created") + + # Save supervisions in reference dict + if weekday not in supervisions_ref: + supervisions_ref[weekday] = {} + if period_after_break not in supervisions_ref[weekday]: + supervisions_ref[weekday][period_after_break] = [] + supervisions_ref[weekday][period_after_break].append(new_supervision) + + for supervision in new_area.supervisions.all(): + delete = True + + # Get weekday and period after break + weekday = supervision.break_item.weekday + period_after_break = supervision.break_item.before_period_number + + # Delete supervision if no longer existing + if weekday in supervisions_ref: + if period_after_break in supervisions_ref[weekday]: + if supervision in supervisions_ref[weekday][period_after_break]: + delete = False + + if delete: + supervision.delete() + logger.info(" Supervision {} deleted".format(supervision)) + + ref[import_ref] = {"area": new_area, "supervisions": supervisions_ref} + + return ref + + +def import_time_periods() -> Dict[int, Dict[int, chronos_models.TimePeriod]]: + """ Import time periods an breaks """ + + times = ( + run_default_filter(mysql_models.Commondata.objects, filter_term=False) + .filter(id=30) + .order_by("number") + ) + + times_ref = {} + for time_ in tqdm(times, desc="Import times", **TQDM_DEFAULTS): + period = time_.number + + # Extract time + start_time = time(time_.fieldbyte1, time_.fieldbyte2) + end_time = time(time_.fieldbyte3, time_.fieldbyte4) + + times_ref[period] = (start_time, end_time) + + periods = ( + run_default_filter(mysql_models.Commondata.objects, filter_term=False) + .filter(id=CommonDataId.PERIOD.value) + .order_by("number", "number1") + ) + + time_periods_ref = {} + for time_period in tqdm(periods, desc="Import time periods", **TQDM_DEFAULTS): + weekday = time_period.number - 1 + period = time_period.number1 + start_time = times_ref[period][0] + end_time = times_ref[period][1] + + logger.info("Import time period on weekday {} in the {}. period".format(weekday, period)) + + new_time_period, created = chronos_models.TimePeriod.objects.get_or_create( + weekday=weekday, + period=period, + defaults={"time_start": start_time, "time_end": end_time}, + ) + + if created: + logger.info(" New time period created") + + if new_time_period.time_start != start_time or new_time_period.time_end != end_time: + new_time_period.time_start = start_time + new_time_period.time_end = end_time + new_time_period.save() + logger.info(" Time period updated") + + # Build index with time periods + if weekday not in time_periods_ref: + time_periods_ref[weekday] = {} + time_periods_ref[weekday][period] = new_time_period + + return time_periods_ref + + +def import_breaks( + time_periods_ref: Dict[int, Dict[int, chronos_models.TimePeriod]], +) -> Dict[int, Dict[int, chronos_models.Break]]: + # Build breaks for all weekdays + breaks_ref = {} + for weekday, time_periods in tqdm( + time_periods_ref.items(), desc="Import breaks (weekday)", **TQDM_DEFAULTS + ): + breaks_ref[weekday] = {} + + # Add None two times in order to create breaks before first lesson and after last lesson + time_periods_for_breaks = [None] + list(time_periods.values()) + [None] + for i, time_period in tqdm( + enumerate(time_periods_for_breaks), desc="Import breaks (period)", **TQDM_DEFAULTS + ): + # If last item (None) is reached, no further break must be created + if i + 1 == len(time_periods_for_breaks): + break + + after_period = time_period + before_period = time_periods_for_breaks[i + 1] + + short_name = "{}: {}./{}.".format( + weekday, + after_period.period if after_period else "-", + before_period.period if before_period else "-", + ) + + logger.info("Generate break {}".format(short_name)) + + new_break, created = chronos_models.Break.objects.get_or_create( + after_period=after_period, + before_period=before_period, + defaults={"short_name": short_name, "name": short_name}, + ) + + if created: + logger.info(" New break created") + + # Save index with lesson after break + next_period = new_break.before_period_number + breaks_ref[weekday][next_period] = new_break + + return breaks_ref + + +def import_absence_reasons() -> Dict[int, chronos_models.AbsenceReason]: + """ Import absence reasons """ + + ref = {} + + # Get reasons + reasons = run_default_filter(mysql_models.Absencereason.objects, filter_term=False) + + for reason in tqdm(reasons, desc="Import absence reasons", **TQDM_DEFAULTS): + if not reason.name: + raise RuntimeException( + "Absence reason ID {}: Cannot import absence reason without short name.".format( + reason.absence_reason_id + ) + ) + + # Build values + short_name = reason.name + name = reason.longname if reason.longname else short_name + import_ref = reason.absence_reason_id + + logger.info("Import absence reason {} …".format(short_name)) + + new_reason, created = chronos_models.AbsenceReason.objects.get_or_create( + import_ref_untis=import_ref, defaults={"short_name": short_name, "name": name} + ) + + if created: + logger.info(" New absence reason created") + + changed = False + + if new_reason.short_name != short_name or new_reason.name != name: + new_reason.short_name = short_name + new_reason.name = name + changed = True + logger.info(" Short name and name updated") + + if changed: + new_reason.save() + + ref[import_ref] = new_reason + + return ref diff --git a/aleksis/apps/untis/util/mysql/importers/events.py b/aleksis/apps/untis/util/mysql/importers/events.py new file mode 100644 index 0000000000000000000000000000000000000000..87b8bf3d00a33fc886e7e68ea2555ef1c761ab11 --- /dev/null +++ b/aleksis/apps/untis/util/mysql/importers/events.py @@ -0,0 +1,137 @@ +import logging + +from tqdm import tqdm + +from aleksis.apps.chronos import models as chronos_models + +from .... import models as mysql_models +from ..util import ( + TQDM_DEFAULTS, + connect_untis_fields, + get_first_period, + get_last_period, + get_term, + move_weekday_to_range, + run_default_filter, + untis_date_to_date, +) + +logger = logging.getLogger(__name__) + + +def import_events(time_periods_ref, teachers_ref, classes_ref, rooms_ref): + ref = {} + + # Get term + term = get_term() + term_date_start = untis_date_to_date(term.datefrom) + term_date_end = untis_date_to_date(term.dateto) + + # Get absences + events = ( + run_default_filter(mysql_models.Event.objects, filter_term=False) + .filter(datefrom__lte=term.dateto, dateto__gte=term.datefrom) + .order_by("event_id") + ) + + existing_events = [] + for event in tqdm(events, desc="Import events", **TQDM_DEFAULTS): + import_ref = event.event_id + + logger.info("Import event {}".format(import_ref)) + + # Build values + comment = event.text + + date_from = untis_date_to_date(event.datefrom) + date_to = untis_date_to_date(event.dateto) + period_from = event.lessonfrom + period_to = event.lessonto + weekday_from = date_from.weekday() + weekday_to = date_to.weekday() + + # Check min/max weekdays + weekday_from = move_weekday_to_range(time_periods_ref, weekday_from) + weekday_to = move_weekday_to_range(time_periods_ref, weekday_to) + + # Check min/max periods + first_period = get_first_period(time_periods_ref, weekday_from) + last_period = get_last_period(time_periods_ref, weekday_from) + + if period_from == 0: + period_from = first_period + if period_to == 0: + period_to = last_period + + time_period_from = time_periods_ref[weekday_from][period_from] + time_period_to = time_periods_ref[weekday_to][period_to] + + groups = [] + teachers = [] + rooms = [] + + # Get groups, teachers and rooms + raw_events = connect_untis_fields(event, "eventelement", 10) + for raw_event in raw_events: + el = raw_event.split("~") + + # Group + if el[0] != "0" and el[0] != "": + group = classes_ref[int(el[0])] + groups.append(group) + + # Teacher + if el[2] != "0" and el[2] != "": + teacher = teachers_ref[int(el[2])] + teachers.append(teacher) + + # Room + if el[3] != "0" and el[3] != "": + room = rooms_ref[int(el[3])] + rooms.append(room) + + new_event, created = chronos_models.Event.objects.get_or_create( + import_ref_untis=import_ref, + defaults={ + "date_start": date_from, + "date_end": date_to, + "period_from": time_period_from, + "period_to": time_period_to, + "title": comment, + }, + ) + + if created: + logger.info(" New event created") + + # Sync simple fields + if ( + new_event.date_start != date_from + or new_event.date_end != date_to + or new_event.period_from != time_period_from + or new_event.period_to != time_period_to + or new_event.title != comment + ): + new_event.date_start = date_from + new_event.date_end = date_to + new_event.period_from = time_period_from + new_event.period_to = time_period_to + new_event.title = comment + new_event.save() + logger.info(" Time range and title updated") + + # Sync m2m-fields + new_event.groups.set(groups) + new_event.teachers.set(teachers) + new_event.rooms.set(rooms) + + existing_events.append(import_ref) + ref[import_ref] = new_event + + # Delete all no longer existing events + for e in chronos_models.Event.objects.filter( + date_start__lte=term_date_start, date_end__gte=term_date_end + ): + if e.import_ref_untis and e.import_ref_untis not in existing_events: + logger.info("Event {} deleted".format(e.id)) + e.delete() diff --git a/aleksis/apps/untis/util/mysql/importers/holidays.py b/aleksis/apps/untis/util/mysql/importers/holidays.py new file mode 100644 index 0000000000000000000000000000000000000000..d3f9d61532bc08190210a41873d6b6c37f65235d --- /dev/null +++ b/aleksis/apps/untis/util/mysql/importers/holidays.py @@ -0,0 +1,67 @@ +import logging +from typing import Dict + +from tqdm import tqdm + +from aleksis.apps.chronos import models as chronos_models + +from .... import models as mysql_models +from ..util import TQDM_DEFAULTS, run_default_filter, untis_date_to_date + +logger = logging.getLogger(__name__) + + +def import_holidays() -> Dict[int, chronos_models.Holiday]: + """ Import holidays """ + ref = {} + + # Get holidays + holidays = run_default_filter(mysql_models.Holiday.objects, filter_term=False) + + for holiday in tqdm(holidays, desc="Import holidays", **TQDM_DEFAULTS): + import_ref = holiday.holiday_id + + # Check if needed data are provided + if not holiday.name: + raise RuntimeException( + "Holiday ID {}: Cannot import holiday without short name.".format(import_ref) + ) + + title = holiday.name[:50] + comments = holiday.longname + + date_start = untis_date_to_date(holiday.datefrom) + date_end = untis_date_to_date(holiday.dateto) + + logger.info("Import holiday {} …".format(title)) + + # Get or create holiday + new_holiday, created = chronos_models.Holiday.objects.get_or_create( + import_ref_untis=import_ref, + defaults={ + "title": title, + "comments": comments, + "date_start": date_start, + "date_end": date_end, + }, + ) + + if created: + logger.info(" New holiday created") + + if ( + new_holiday.title != title + or new_holiday.comments != comments + or new_holiday.date_start != date_start + or new_holiday.date_end != date_end + ): + new_holiday.title = title + new_holiday.comments = comments + new_holiday.date_start = date_start + new_holiday.date_end = date_end + new_holiday.save() + logger.info(" Holiday updated") + + ref[import_ref] = new_holiday + + return ref diff --git a/aleksis/apps/untis/util/mysql/importers/lessons.py b/aleksis/apps/untis/util/mysql/importers/lessons.py new file mode 100644 index 0000000000000000000000000000000000000000..b9f79ab0d6af77f926ed2bd9a3843ebfdedbaf54 --- /dev/null +++ b/aleksis/apps/untis/util/mysql/importers/lessons.py @@ -0,0 +1,267 @@ +import logging +from datetime import timedelta + +from django.utils.translation import gettext as _ + +from constance import config +from tqdm import tqdm + +from aleksis.apps.chronos import models as chronos_models +from aleksis.core import models as core_models + +from .... import models as mysql_models +from ..util import ( + TQDM_DEFAULTS, + compare_m2m, + connect_untis_fields, + get_term, + run_default_filter, + untis_date_to_date, + untis_split_third, +) + +logger = logging.getLogger(__name__) + + +def import_lessons(time_periods_ref, rooms_ref, subjects_ref, teachers_ref, classes_ref): + """ Import lessons """ + + # Get current term + term = get_term() + date_start = untis_date_to_date(term.datefrom) + date_end = untis_date_to_date(term.dateto) + + # Get all existing lessons for this term + lessons_in_term = chronos_models.Lesson.objects.filter(term_untis=term.term_id).values_list( + "id", flat=True + ) + + # Set the end date of all lessons from other terms ending in this term to the day before this term starts + chronos_models.Lesson.objects.filter(date_end__gte=date_start).exclude( + id__in=lessons_in_term + ).update(date_end=date_start - timedelta(days=1)) + + # Lessons + lessons = run_default_filter(mysql_models.Lesson.objects) + for lesson in tqdm(lessons, desc="Import lessons", **TQDM_DEFAULTS): + lesson_id = lesson.lesson_id + + logger.info(_("Import lesson {}").format(lesson_id)) + + if not lesson.lesson_tt: + logger.warning(_(" Skip because missing times").format(lesson_id)) + continue + + # Split data (,) + raw_lesson_data = connect_untis_fields(lesson, "lessonelement", 10) + raw_time_data = lesson.lesson_tt.split(",") + + raw_time_data_2 = [] + for el in raw_time_data: + # Split data (~) + raw_time_data_2.append(el.split("~")) + + # Get time periods and rooms + time_periods = [] + rooms_per_periods = [] + for el in raw_time_data_2: + weekday = int(el[1]) - 1 + hour = int(el[2]) + room_ids = untis_split_third(el[3], conv=int) + + # Get rooms + rooms = [] + for room_id in room_ids: + r = rooms_ref[room_id] + rooms.append(r) + + # Get time period + time_period = time_periods_ref[weekday][hour] + time_periods.append(time_period) + rooms_per_periods.append(rooms) + + # Split data more (~) + raw_lesson_data_2 = [] + for el in raw_lesson_data: + raw_lesson_data_2.append(el.split("~")) + + # All part lessons (courses) + for i, el in enumerate(raw_lesson_data_2): + logger.info(" Lesson part {}".format(i)) + + # Get plain ids + teacher_id = int(el[0]) + subject_id = int(el[2]) + class_ids = untis_split_third(el[17], conv=int) + + # Get teacher + if teacher_id != 0: + teacher = teachers_ref[teacher_id] + else: + teacher = None + + teachers = [teacher] if teacher else [] + + # Get subject + if subject_id != 0: + subject = subjects_ref[subject_id] + else: + logger.warning(_(" Skip because missing subject".format(i))) + continue + + # Get classes + course_classes = [] + for class_id in class_ids: + c = classes_ref[class_id] + course_classes.append(c) + + if config.UNTIS_IMPORT_MYSQL_USE_COURSE_GROUPS: + # Negative import_ref denotes a course group + group_import_ref = -int("{}{}".format(lesson_id, i)) + subject_ref = subject.abbrev + + # Search by parent groups and subject + qs = core_models.Group.objects.filter( + parent_groups__in=[c.id for c in course_classes], + untis_subject__iexact=subject_ref, + ) + + # Check if found groups match + match = False + if qs.exists(): + if compare_m2m(course_classes, qs[0].parent_groups.all()): + match = True + course_group = qs[0] + logger.info( + " Course group found by searching by parent groups and subject" + ) + + changed = False + if not match: + # No matching group found + + # Build names and refs for course groups + group_short_name = "{}-{}".format( + "".join([c.short_name for c in course_classes]), subject.abbrev + ) + group_name = "{}: {}".format( + ", ".join([c.short_name for c in course_classes]), subject.abbrev, + ) + + # Get or create course group + course_group, created = core_models.Group.objects.get_or_create( + short_name=group_short_name, defaults={"name": group_name} + ) + + # Log + if created: + logger.info(" Course group created") + + # Update parent groups + course_group.parent_groups.set(course_classes) + logger.info(" Course groups set") + + # Update name + if course_group.name != group_name: + course_group.name = group_name + logger.info(" Name of course group updated") + + changed = True + + # Update owners + course_group.owners.set(teachers) + + # Update import ref + if ( + course_group.import_ref_untis != group_import_ref + ): # or course_group.untis_subject != subject_ref: + course_group.import_ref_untis = group_import_ref + # course_group.subject_ref = subject_ref + logger.info(" Import reference of course group updated") + changed = True + + if changed: + course_group.save() + + groups = [course_group] + else: + groups = course_classes + + # Get old lesson + old_lesson_qs = chronos_models.Lesson.objects.filter( + lesson_id_untis=lesson_id, element_id_untis=i, term_untis=term.term_id + ) + + if old_lesson_qs.exists(): + # Update existing lesson + logger.info(" Existing lesson found") + + old_lesson = old_lesson_qs[0] + + if ( + old_lesson.subject != subject + or old_lesson.date_start != date_start + or old_lesson.date_end != date_end + ): + old_lesson.subject = subject + old_lesson.date_start = date_start + old_lesson.date_end = date_end + old_lesson.save() + logger.info(" Subject, start date and end date updated") + lesson = old_lesson + else: + # Create new lesson + + lesson = chronos_models.Lesson.objects.create( + subject=subject, + date_start=date_start, + date_end=date_end, + lesson_id_untis=lesson_id, + element_id_untis=i, + term_untis=term.term_id, + ) + logger.info(" New lesson created") + + # Sync groups + lesson.groups.set(groups) + + # Sync teachers + lesson.teachers.set(teachers) + + # All times for this course + old_lesson_periods_qs = chronos_models.LessonPeriod.objects.filter(lesson=lesson) + + # If length has changed, delete all lesson periods + if old_lesson_periods_qs.count() != len(time_periods): + old_lesson_periods_qs.delete() + logger.info(" Lesson periods deleted") + + # Sync time periods + for j, time_period in enumerate(time_periods): + logger.info(" Import lesson period {}".format(time_period)) + + # Get room if provided + rooms = rooms_per_periods[j] + if i < len(rooms): + room = rooms[i] + else: + room = None + + # Check if an old lesson period is provided + old_lesson_period_qs = old_lesson_periods_qs.filter(element_id_untis=j) + if old_lesson_period_qs.exists(): + # Update old lesson period + + old_lesson_period = old_lesson_period_qs[0] + if old_lesson_period.period != time_period or old_lesson_period.room != room: + old_lesson_period.period = time_period + old_lesson_period.room = room + old_lesson_period.save() + logger.info(" Time period and room updated") + else: + # Create new lesson period + + lesson.periods.add( + time_period, through_defaults={"room": room, "element_id_untis": j}, + ) + logger.info(" New time period added") diff --git a/aleksis/apps/untis/util/mysql/importers/substitutions.py b/aleksis/apps/untis/util/mysql/importers/substitutions.py new file mode 100644 index 0000000000000000000000000000000000000000..40242a4fe740cd4e802b918632ebab06281b1ad0 --- /dev/null +++ b/aleksis/apps/untis/util/mysql/importers/substitutions.py @@ -0,0 +1,251 @@ +import logging +from enum import Enum + +from django.db.models import Q + +from calendarweek import CalendarWeek +from tqdm import tqdm + +from aleksis.apps.chronos import models as chronos_models + +from .... import models as mysql_models +from ..util import ( + TQDM_DEFAULTS, + get_term, + run_default_filter, + untis_date_to_date, + untis_split_first, +) + +logger = logging.getLogger(__name__) + + +class SubstitutionFlag(Enum): + CANCELLED = "E" + CANCELLED_FOR_TEACHERS = "F" + + +def import_substitutions( + teachers_ref, + subjects_ref, + rooms_ref, + classes_ref, + supervision_areas_ref, + time_periods_ref, +): + """ Import substitutions """ + + term = get_term() + date_start = untis_date_to_date(term.datefrom) + date_end = untis_date_to_date(term.dateto) + + subs = ( + run_default_filter(mysql_models.Substitution.objects, filter_term=False) + .filter(date__gte=term.datefrom, date__lte=term.dateto) + .exclude( + Q(flags__contains="N") + | Q(flags__contains="b") + | Q(flags__contains="F") + | Q(flags__exact="g") + ) + .order_by("substitution_id") + ) + + existing_subs = [] + for sub in tqdm(subs, desc="Import substitutions", **TQDM_DEFAULTS): + # IDs + sub_id = sub.substitution_id + existing_subs.append(sub_id) + + lesson_id = sub.lesson_idsubst + + logger.info("Import substitution {}".format(sub_id)) + + # Time + date = untis_date_to_date(sub.date) + weekday = date.weekday() + week = CalendarWeek.from_date(date) + period = sub.lesson + + # Supervision substitution? + is_supervision_substitution = sub.corridor_id != 0 + + # Cancellation? + cancelled, cancelled_for_teachers = False, False + if SubstitutionFlag.CANCELLED.value in sub.flags: + cancelled = True + elif SubstitutionFlag.CANCELLED_FOR_TEACHERS.value in sub.flags: + cancelled_for_teachers = True + + # Comment + comment = sub.text + + # Teacher + if sub.teacher_idlessn != 0: + teacher_old = teachers_ref[sub.teacher_idlessn] + else: + teacher_old = None + + teachers = [] + teacher_new = None + if sub.teacher_idsubst != 0: + teacher_new = teachers_ref[sub.teacher_idsubst] + teachers = [teacher_new] + + if teacher_old is not None and teacher_new.id == teacher_old.id: + teachers = [] + + if not is_supervision_substitution: + lesson_periods = chronos_models.LessonPeriod.objects.filter( + lesson__lesson_id_untis=lesson_id, + lesson__teachers=teacher_old, + period__period=period, + period__weekday=weekday, + ).on_day(date) + + if lesson_periods.exists(): + lesson_period = lesson_periods[0] + logger.info(" Matching lesson period found ({})".format(lesson_period)) + else: + lesson_period = None + + # Subject + subject_old = lesson_period.lesson.subject if lesson_period else None + subject_new = None + if sub.subject_idsubst != 0: + subject_new = subjects_ref[sub.subject_idsubst] + + if subject_old and subject_old.id == subject_new.id: + subject_new = None + + if cancelled: + subject_new = None + + # Room + room_old = lesson_period.room if lesson_period else None + room_new = None + if sub.room_idsubst != 0: + room_new = rooms_ref[sub.room_idsubst] + + if room_old is not None and room_old.id == room_new.id: + room_new = None + + # Classes + classes = [] + class_ids = untis_split_first(sub.classids, conv=int) + + for id in class_ids: + classes.append(classes_ref[id]) + + if lesson_period: + (substitution, created,) = chronos_models.LessonSubstitution.objects.get_or_create( + lesson_period=lesson_period, week=week.week + ) + + if created: + logger.info(" Substitution created") + + # Sync teachers + substitution.teachers.set(teachers) + logger.info(" Substitution teachers set") + + # Update values + if ( + substitution.subject != subject_new + or substitution.room != room_new + or substitution.cancelled != cancelled + or substitution.cancelled_for_teachers != cancelled_for_teachers + or substitution.comment != comment + or substitution.import_ref_untis != sub_id + ): + substitution.subject = subject_new + substitution.room = room_new + substitution.cancelled = cancelled + substitution.cancelled_for_teachers = cancelled_for_teachers + substitution.comment = comment + substitution.import_ref_untis = sub_id + substitution.save() + logger.info(" Substitution updated") + + else: + logger.info(" Extra lesson detected") + time_period = time_periods_ref[date.weekday()][period] + + groups = [ + classes_ref[pk] for pk in untis_split_first(sub.classids, int) + ] + + room = room_old if not room_new and room_old else room_new + subject = subject_old if not subject_new else subject_new + teachers = [teacher_old] if not teacher_new else [teacher_new] + + ( + extra_lesson, + created, + ) = chronos_models.ExtraLesson.objects.update_or_create( + import_ref_untis=sub_id, + defaults={ + "week": week.week, + "period": time_period, + "subject": subject, + "room": room, + "comment": comment, + }, + ) + + if created: + logger.info(" Extra lesson created") + + extra_lesson.teachers.set(teachers) + extra_lesson.groups.set(groups) + else: + if teacher_new: + logger.info(" Supervision substitution detected") + + # Supervision + area_ref = supervision_areas_ref[sub.corridor_id] + possible_supervisions = area_ref["supervisions"][weekday][period] + + supervision = None + for possible_supervision in possible_supervisions: + if possible_supervision.teacher == teacher_old: + supervision = possible_supervision + + if supervision: + ( + substitution, + created, + ) = chronos_models.SupervisionSubstitution.objects.get_or_create( + supervision=supervision, date=date, defaults={"teacher": teacher_new}, + ) + + if created: + logger.info(" Supervision substitution created") + + if ( + substitution.teacher != teacher_new + or substitution.import_ref_untis != sub_id + ): + substitution.teacher = teacher_new + substitution.import_ref_untis = sub_id + substitution.save() + logger.info(" Supervision substitution updated") + + # Delete all no longer existing substitutions + for s in chronos_models.LessonSubstitution.objects.within_dates(date_start, date_end): + if s.import_ref_untis and s.import_ref_untis not in existing_subs: + logger.info("Substitution {} deleted".format(s.id)) + s.delete() + + # Delete all no longer existing extra lessons + for s in chronos_models.ExtraLesson.objects.within_dates(date_start, date_end): + if s.import_ref_untis and s.import_ref_untis not in existing_subs: + logger.info("Extra lesson {} deleted".format(s.id)) + s.delete() + + # Delete all no longer existing supervision substitutions + for s in chronos_models.SupervisionSubstitution.objects.filter(date__gte=date_start, date__lte=date_end): + if s.import_ref_untis and s.import_ref_untis not in existing_subs: + logger.info("Supervision substitution {} deleted".format(s.id)) + s.delete() + diff --git a/aleksis/apps/untis/util/mysql/main.py b/aleksis/apps/untis/util/mysql/main.py new file mode 100644 index 0000000000000000000000000000000000000000..7fd537e5629c7f8790d5f421839a924a7b3d3808 --- /dev/null +++ b/aleksis/apps/untis/util/mysql/main.py @@ -0,0 +1,49 @@ +from django.db import transaction + +from .importers.absences import import_absences +from .importers.common_data import ( + import_absence_reasons, + import_breaks, + import_classes, + import_rooms, + import_subjects, + import_supervision_areas, + import_teachers, + import_time_periods, +) +from .importers.events import import_events +from .importers.holidays import import_holidays +from .importers.lessons import import_lessons +from .importers.substitutions import import_substitutions + + +@transaction.atomic +def untis_import_mysql(): + # Coomon data for Chronos + subjects_ref = import_subjects() + rooms_ref = import_rooms() + absence_reasons_ref = import_absence_reasons() + + # Common data for core + teachers_ref = import_teachers() + classes_ref = import_classes(teachers_ref) + + # Time periods + time_periods_ref = import_time_periods() + breaks_ref = import_breaks(time_periods_ref) + + # Holidays + holidays_ref = import_holidays() + + # Supervisions + supervision_areas_ref = import_supervision_areas(breaks_ref, teachers_ref) + + # Lessons + import_lessons(time_periods_ref, rooms_ref, subjects_ref, teachers_ref, classes_ref) + + # Substitutions + import_absences(absence_reasons_ref, time_periods_ref, teachers_ref, classes_ref, rooms_ref) + import_substitutions(teachers_ref, subjects_ref, rooms_ref, classes_ref, supervision_areas_ref, time_periods_ref) + + # Events + import_events(time_periods_ref, teachers_ref, classes_ref, rooms_ref) diff --git a/aleksis/apps/untis/util/mysql/util.py b/aleksis/apps/untis/util/mysql/util.py new file mode 100644 index 0000000000000000000000000000000000000000..57c53c8a1700e4c51bf908df849a4a200ff725da --- /dev/null +++ b/aleksis/apps/untis/util/mysql/util.py @@ -0,0 +1,179 @@ +import logging +from datetime import date, datetime +from typing import Any, Callable, Optional, Sequence, Union + +from django.db.models import Model, QuerySet +from django.utils import timezone + +from ... import models as mysql_models + +DB_NAME = "untis" +UNTIS_DATE_FORMAT = "%Y%m%d" + +TQDM_DEFAULTS = { + "disable": None, + "unit": "obj", + "dynamic_ncols": True, +} + +logger = logging.getLogger(__name__) + + +def run_using(obj: QuerySet) -> QuerySet: + """ Seed QuerySet with using() database from global DB_NAME """ + return obj.using(DB_NAME) + + +def get_term(for_date: Optional[date] = None) -> mysql_models.Terms: + """ Get term valid for the provided date """ + + if not for_date: + for_date = timezone.now().date() + + term = run_using(mysql_models.Terms.objects).get( + datefrom__lte=date_to_untis_date(for_date), dateto__gte=date_to_untis_date(for_date) + ) + + return term + + +def run_default_filter( + qs: QuerySet, + for_date: Optional[date] = None, + filter_term: bool = True, + filter_deleted: bool = True, +) -> QuerySet: + """ Add a default filter in order to select the correct term """ + + term = get_term(for_date) + term_id, schoolyear_id, school_id, version_id = ( + term.term_id, + term.schoolyear_id, + term.school_id, + term.version_id, + ) + + qs = run_using(qs).filter( + school_id=school_id, schoolyear_id=schoolyear_id, version_id=version_id, + ) + + if filter_term: + qs = qs.filter(term_id=term_id) + + if filter_deleted: + qs = qs.filter(deleted=0) + + return qs + + +def clean_array(seq: Sequence, conv: Callable[[Any], Any] = lambda el: el) -> Sequence: + """ Convert a sequence using a converter function, stripping all + elements that are boolean False after conversion. + + >>> clean_array(["a", "", "b"]) + ['a', 'b'] + + >>> clean_array(["8", "", "12", "0"], int) + [8, 12] + """ + + filtered = filter(lambda el: bool(el), map(lambda el: conv(el) if el else None, seq)) + return type(seq)(filtered) + + +def untis_split_first(s: str, conv: Callable[[Any], Any] = lambda el: el) -> Sequence: + return clean_array(s.split(","), conv=conv) + + +def untis_split_second(s: str, conv: Callable[[Any], Any] = lambda el: el) -> Sequence: + return clean_array(s.split("~"), conv=conv) + + +def untis_split_third(s: str, conv: Callable[[Any], Any] = lambda el: el) -> Sequence: + return clean_array(s.split(";"), conv=conv) + + +def untis_date_to_date(untis: int) -> date: + """ Converts a UNTIS date to a python date """ + return datetime.strptime(str(untis), UNTIS_DATE_FORMAT).date() + + +def date_to_untis_date(from_date: date) -> int: + """ Converts a python date to a UNTIS date """ + return int(from_date.strftime(UNTIS_DATE_FORMAT)) + + +def untis_colour_to_hex(colour: int) -> str: + """ Convert a numerical colour in BGR order to a standard hex RGB string """ + + # Convert UNTIS number to HEX + hex_bgr = str(hex(colour))[2:].zfill(6) + + # Change BGR to RGB + hex_rgb = hex_bgr[4:6] + hex_bgr[2:4] + hex_bgr[0:2] + + # Add html # + return "#" + hex_rgb + + +def compare_m2m(a: Union[Sequence[Model], QuerySet], b: Union[Sequence[Model], QuerySet]) -> bool: + """ Compare if content of two m2m fields is equal """ + + return set(a) == set(b) + + +def connect_untis_fields(obj: Model, attr: str, limit: int) -> Sequence[str]: + """ Connects data from multiple DB fields + + Untis splits structured data, like lists, as comma-separated string into + multiple, numbered database fields, like: + + field1 = "This,is,a,nice" + field2 = "list,of,words" + + This function joins these fields, then splits them into the original list. + """ + + all_data = [] + + for i in range(1, limit + 1): + attr_name = "{}{}".format(attr, i) + raw_data = getattr(obj, attr_name, "") + if raw_data: + data = untis_split_first(raw_data) + all_data += data + + return all_data + + +def get_first_weekday(time_periods_ref: dict) -> int: + """ Get first weekday from time periods reference """ + return sorted(time_periods_ref.keys())[0] + + +def get_last_weekday(time_periods_ref: dict) -> int: + """ Get last weekday from time periods reference """ + return sorted(time_periods_ref.keys())[-1] + + +def get_first_period(time_periods_ref: dict, weekday: int) -> int: + """ Get first period on a weekday from time periods reference """ + return sorted(time_periods_ref[weekday].keys())[0] + + +def get_last_period(time_periods_ref: dict, weekday: int) -> int: + """ Get last period an a weekday from time periods reference """ + return sorted(time_periods_ref[weekday].keys())[-1] + + +def move_weekday_to_range(time_periods_ref: dict, weekday: int) -> int: + """ Move weekday values into school week (e. g. saturday to friday) """ + first_weekday = get_first_weekday(time_periods_ref) + last_weekday = get_last_weekday(time_periods_ref) + + if weekday < first_weekday: + weekday = first_weekday + if weekday > last_weekday: + weekday = last_weekday + + return weekday diff --git a/aleksis/apps/untis/util.py b/aleksis/apps/untis/util/xml/xml.py similarity index 80% rename from aleksis/apps/untis/util.py rename to aleksis/apps/untis/util/xml/xml.py index 3b61df05bc3ca570ae08aab378b17fac9043b7f9..4bc09e753061de40371dfe35ccf7e5551e87a71f 100644 --- a/aleksis/apps/untis/util.py +++ b/aleksis/apps/untis/util/xml/xml.py @@ -10,13 +10,6 @@ from aleksis.core.models import Group, Person from aleksis.core.util import messages -from untisconnect.api import TYPE_TEACHER, get_teacher_by_shortcode, TYPE_CLASS, get_class_by_name, get_all_teachers, \ - get_all_classes, get_all_rooms, get_all_subjects -from untisconnect.datetimeutils import get_calendar_week, calendar_week, weekday -from untisconnect.plan import get_plan -from userinformation import UserInformation - - def get_child_node_text(node: Node, tag: str) -> Optional[str]: tag_nodes = node.getElementsByTagName(tag) @@ -171,45 +164,3 @@ def untis_import_xml(request: HttpRequest, untis_xml: Union[BinaryIO, str]) -> N lesson.periods.add(period[0], through_defaults={"room": period[1]}) lesson.save() - - -def get_type_and_object_of_user(user): - _type = UserInformation.user_type(user) - if _type == UserInformation.TEACHER: - # Teacher - _type = TYPE_TEACHER - shortcode = user.username - el = get_teacher_by_shortcode(shortcode) - elif _type == UserInformation.STUDENT: - # Student - _type = TYPE_CLASS - _name = UserInformation.user_classes(user)[0] - el = get_class_by_name(_name) - else: - # Nothing of both - return None, None - - return _type, el - - -def overview_dict(): - return { - 'teachers': get_all_teachers(), - 'classes': get_all_classes(), - 'rooms': get_all_rooms(), - 'subjects': get_all_subjects() - } - - -def get_plan_for_day(_type, plan_id, date): - # Get calendar week and monday of week - - monday_of_week = get_calendar_week(calendar_week(date), date.year)["first_day"] - week_day = weekday(date) - - # Get plan - plan, holidays = get_plan(_type, plan_id, smart=True, monday_of_week=monday_of_week) - lessons = [(row[week_day], time) for row, time in plan] - - holidays_for_date = holidays[week_day] - return lessons, holidays_for_date diff --git a/aleksis/apps/untis/views.py b/aleksis/apps/untis/views.py index fbea02bf07176dfab33516ad4368890ec3b052c4..2221a3b02156b5bf6dddee0c58a246d82ea6aff5 100644 --- a/aleksis/apps/untis/views.py +++ b/aleksis/apps/untis/views.py @@ -5,12 +5,12 @@ from django.shortcuts import render from aleksis.core.decorators import admin_required from .forms import UntisUploadForm -from .util import untis_import_xml +from .util.xml.xml import untis_import_xml @login_required @admin_required -def untis_import(request: HttpRequest) -> HttpResponse: +def xml_import(request: HttpRequest) -> HttpResponse: context = {} upload_form = UntisUploadForm() @@ -23,4 +23,4 @@ def untis_import(request: HttpRequest) -> HttpResponse: context["upload_form"] = upload_form - return render(request, "untis/untis_import.html", context) + return render(request, "untis/xml_import.html", context) diff --git a/pyproject.toml b/pyproject.toml index f104baed41307f10e0661c92b615436575cfc40a..d6beadf2e6a91a2909e3ce9b18f55ab3c70e7415 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -22,6 +22,8 @@ classifiers = [ python = "^3.7" AlekSIS = { path = "../../.." } AlekSIS-App-Chronos = { path = "../AlekSIS-App-Chronos" } +mysqlclient = "^1.4.6" +tqdm = "^4.44.1" [build-system] requires = ["poetry>=0.12"]