Skip to content
Snippets Groups Projects
Commit 6aee4e95 authored by Jonathan Weth's avatar Jonathan Weth :keyboard: Committed by root
Browse files

Merge branch 'dev' into dev-1.0.1

parents ffcbdb57 2049a2ac
No related branches found
No related tags found
1 merge request!86Merge school-apps
......@@ -3,10 +3,12 @@ from django.contrib.auth import REDIRECT_FIELD_NAME
from .models import Aub, Status
# prevent to show aub details from foreign users
def check_own_aub_verification(user):
return Aub.objects.all().filter(created_by=user)
def check_own_aub(function=None, redirect_field_name=REDIRECT_FIELD_NAME, login_url=None):
"""
Decorator for views that checks that the user only gets his own aub, redirecting
......@@ -19,4 +21,4 @@ def check_own_aub(function=None, redirect_field_name=REDIRECT_FIELD_NAME, login_
)
if function:
return actual_decorator(function)
return actual_decorator
\ No newline at end of file
return actual_decorator
......@@ -45,6 +45,7 @@ class Aub(models.Model):
created_at = models.DateTimeField(default=timezone.now, verbose_name="Erstellungszeitpunkt")
def getStatus(self):
print(self.status, self.created_by, self.id)
return status_list[self.status]
def __str__(self):
......
......@@ -44,7 +44,7 @@ def index(request):
@login_required
@permission_required('aub.apply_for_aub')
@check_own_aub(login_url='/index.html')
@check_own_aub(login_url='/accounts/login/')
def details(request, id):
aub = get_object_or_404(Aub, id=id)
context = {
......
from django.contrib.auth.decorators import login_required
from django.contrib.auth.decorators import login_required, permission_required
from django.shortcuts import render
from debug.models import DebugLogGroup
@login_required
# @permission_required("timetable.")
@permission_required("debug.can_view_debug_log")
def debugging_tool(request):
groups = DebugLogGroup.objects.all()
return render(request, "debug/debug.html", {"groups": groups})
This diff is collapsed.
......@@ -9,6 +9,7 @@
<ul class="collapsible">
{% for question in section.questions.all %}
{% if question.show %}
<li>
<div class="collapsible-header flow-text">
<i class="material-icons">
......@@ -24,6 +25,7 @@
{{ question.answer_text|safe }}
</div>
</li>
{% endif %}
{% endfor %}
</ul>
</section>
......@@ -39,4 +41,4 @@
</a>
</p>
</main>
{% include 'partials/footer.html' %}
\ No newline at end of file
{% include 'partials/footer.html' %}
......@@ -212,11 +212,15 @@
</a>
</li>
{% endif %}
{% if perms.debug.can_view_debug_log %}
<li>
<a href="{% url 'debug_logs' %}">
<i class="material-icons">error</i> Debuggingtool
</a>
</li>
{% endif %}
</ul>
</div>
......
import dbsettings
from django import forms
from untisconnect.api_helper import get_terms
from untisconnect.api_helper import get_terms, get_school_years
choices = []
choices_school_years = []
school_years = get_school_years()
for year in school_years:
choices_school_years.append((year.id, year.name))
choices_terms = []
terms = get_terms()
for term in terms:
choices.append((term.id, term.name))
choices_terms.append((term.id, "{}, #{}: {}".format(term.school_year_id, term.id, term.name)))
class UNTISSettings(dbsettings.Group):
term = dbsettings.IntegerValue(widget=forms.Select, choices=choices)
school_year = dbsettings.PositiveIntegerValue("Schuljahr", widget=forms.Select, choices=choices_school_years)
term = dbsettings.IntegerValue("Periode", widget=forms.Select, choices=choices_terms,
help_text="Bitte wähle oberhalb auch das zur Periode passende Schuljahr aus.")
untis_settings = UNTISSettings()
untis_settings = UNTISSettings("UNTIS")
from django.urls import path
from untisconnect.models import Terms
from untisconnect.models import Terms, Schoolyear
try:
from . import views
......@@ -25,7 +26,7 @@ try:
path('<str:plan_date>-class.pdf', views.sub_pdf, name="timetable_substitutions_pdf_date")
]
except Terms.DoesNotExist:
except (Terms.DoesNotExist, Schoolyear.DoesNotExist):
from . import fallback_view
urlpatterns = [
......@@ -46,5 +47,3 @@ except Terms.DoesNotExist:
name='timetable_substitutions_date'),
path('class.pdf', fallback_view.fallback, name="timetable_substitutions_pdf")
]
from django.conf import settings
from untisconnect.api_helper import get_term_by_id, run_using, untis_date_to_date, date_to_untis_date
from untisconnect.api_helper import get_term_by_ids, run_using, untis_date_to_date, date_to_untis_date
from . import models
from timetable.settings import untis_settings
......@@ -20,9 +20,9 @@ def run_one(obj, filter_term=True):
def run_default_filter(obj, filter_term=True):
# Get term by settings in db
TERM_ID = untis_settings.term
TERM = get_term_by_id(TERM_ID)
SCHOOLYEAR_ID = untis_settings.school_year # 20172018
TERM = get_term_by_ids(TERM_ID, SCHOOLYEAR_ID)
SCHOOL_ID = TERM.school_id # 705103
SCHOOLYEAR_ID = TERM.schoolyear_id # 20172018
VERSION_ID = TERM.version_id # 1
if filter_term:
......@@ -317,6 +317,11 @@ def get_all_absences_by_date(date):
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 #
#########
......
......@@ -21,8 +21,8 @@ def run_using(obj):
return obj.using(DB_NAME)
def get_term_by_id(term_id):
data = run_using(models.Terms.objects).get(term_id=term_id)
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
......@@ -35,11 +35,13 @@ class Term(object):
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():
......@@ -53,6 +55,32 @@ def get_terms():
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 #
################
......
......@@ -3,7 +3,7 @@ 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
from .api import row_by_row_helper, run_all, get_absence_by_id
from . import models
......@@ -55,7 +55,8 @@ class Event(object):
if element[4] != "0" and element[4] != "":
print(element[4])
try:
absence = models.Absence.objects.using("untis").get(absence_id=int(element[4]))
absence_id = int(element[4])
absence = get_absence_by_id(absence_id)
self.absences.append(absence)
except models.Absence.DoesNotExist:
pass
......
......@@ -168,6 +168,8 @@ def generate_event_table(events):
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
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment