diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 4fed9bc57cdf05f45aa7ba8faac411e9995fe4ff..c4910d94b5b1e282a9bb6b1ede5c930df33d3c6c 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -9,6 +9,11 @@ and this project adheres to `Semantic Versioning`_. Unreleased ---------- +Fixed +~~~~~ + +* Remove lessons replaced by events from "My timetable" + `3.0.1`_ - 2023-07-20 --------------------- diff --git a/aleksis/apps/chronos/util/build.py b/aleksis/apps/chronos/util/build.py index a6c89a347ffdf2cc10e01b705fcad746eb7535e2..f79ecf6484dbaa18f22447ad9a0a0c57160add96 100644 --- a/aleksis/apps/chronos/util/build.py +++ b/aleksis/apps/chronos/util/build.py @@ -34,7 +34,7 @@ def build_timetable( type_ = obj.timetable_type is_week = False - if type(date_ref) == CalendarWeek: + if isinstance(date_ref, CalendarWeek): is_week = True if type_ is None: @@ -361,17 +361,22 @@ def build_timetable( continue events_for_this_period = events_per_period.get(period, []) + events_for_replacement_for_this_period = events_for_replacement_per_period.get( + period, [] + ) lesson_periods_for_this_period = lesson_periods_per_period.get(period, []) # Add lesson periods if lesson_periods_for_this_period: - if events_for_this_period: + if events_for_replacement_for_this_period: # If there is a event in this period, # we have to check whether the actual lesson is taking place. lesson_periods_to_keep = [] for lesson_period in lesson_periods_for_this_period: - if not lesson_period.is_replaced_by_event(events_for_this_period): + if not lesson_period.is_replaced_by_event( + events_for_replacement_for_this_period + ): lesson_periods_to_keep.append(lesson_period) col += lesson_periods_to_keep else: diff --git a/aleksis/apps/chronos/views.py b/aleksis/apps/chronos/views.py index fdb6def85b24e1f166ff7ee1139e04b0e4bfe9a5..a7ae9b77b322c00f41860c39a3f6cc7ae6376687 100644 --- a/aleksis/apps/chronos/views.py +++ b/aleksis/apps/chronos/views.py @@ -139,7 +139,7 @@ def timetable( el = get_el_by_pk(request, type_, pk, prefetch=True) - if type(el) == HttpResponseNotFound: + if isinstance(el, HttpResponseNotFound): return HttpResponseNotFound() type_ = TimetableType.from_string(type_) diff --git a/tox.ini b/tox.ini index 6e4b77ab1ded935257117696975c2150772cd85c..85c2494a5a2f5480bb05d48781edfaa74803eeab 100644 --- a/tox.ini +++ b/tox.ini @@ -4,7 +4,7 @@ skip_missing_interpreters = true envlist = py39,py310,py311 [testenv] -whitelist_externals = poetry +allowlist_externals = poetry skip_install = true envdir = {toxworkdir}/globalenv commands_pre = @@ -68,18 +68,6 @@ known_django = django skip = migrations sections = FUTURE,STDLIB,DJANGO,THIRDPARTY,FIRSTPARTY,LOCALFOLDER -[mypy] -plugins = mypy_django_plugin.main -python_version = 3.8 -platform = linux -show_column_numbers = True -follow_imports = skip -ignore_missing_imports = True -cache_dir = /dev/null - -[mypy.plugins.django-stubs] -django_settings_module = aleksis.core.settings - [pytest] DJANGO_SETTINGS_MODULE = aleksis.core.settings junit_family = legacy