Skip to content
Snippets Groups Projects
Verified Commit ef150b95 authored by Jonathan Weth's avatar Jonathan Weth :keyboard:
Browse files

Merge branch 'master' into new-model-based-on-calendar

parents c07bd892 0ee5cc68
No related branches found
No related tags found
1 merge request!301New data model based on calendar events
...@@ -9,6 +9,11 @@ and this project adheres to `Semantic Versioning`_. ...@@ -9,6 +9,11 @@ and this project adheres to `Semantic Versioning`_.
Unreleased Unreleased
---------- ----------
Fixed
~~~~~
* Remove lessons replaced by events from "My timetable"
`3.0.1`_ - 2023-07-20 `3.0.1`_ - 2023-07-20
--------------------- ---------------------
......
...@@ -34,7 +34,7 @@ def build_timetable( ...@@ -34,7 +34,7 @@ def build_timetable(
type_ = obj.timetable_type type_ = obj.timetable_type
is_week = False is_week = False
if type(date_ref) == CalendarWeek: if isinstance(date_ref, CalendarWeek):
is_week = True is_week = True
if type_ is None: if type_ is None:
...@@ -361,17 +361,22 @@ def build_timetable( ...@@ -361,17 +361,22 @@ def build_timetable(
continue continue
events_for_this_period = events_per_period.get(period, []) 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, []) lesson_periods_for_this_period = lesson_periods_per_period.get(period, [])
# Add lesson periods # Add lesson periods
if lesson_periods_for_this_period: 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, # If there is a event in this period,
# we have to check whether the actual lesson is taking place. # we have to check whether the actual lesson is taking place.
lesson_periods_to_keep = [] lesson_periods_to_keep = []
for lesson_period in lesson_periods_for_this_period: 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) lesson_periods_to_keep.append(lesson_period)
col += lesson_periods_to_keep col += lesson_periods_to_keep
else: else:
......
...@@ -139,7 +139,7 @@ def timetable( ...@@ -139,7 +139,7 @@ def timetable(
el = get_el_by_pk(request, type_, pk, prefetch=True) el = get_el_by_pk(request, type_, pk, prefetch=True)
if type(el) == HttpResponseNotFound: if isinstance(el, HttpResponseNotFound):
return HttpResponseNotFound() return HttpResponseNotFound()
type_ = TimetableType.from_string(type_) type_ = TimetableType.from_string(type_)
......
...@@ -4,7 +4,7 @@ skip_missing_interpreters = true ...@@ -4,7 +4,7 @@ skip_missing_interpreters = true
envlist = py39,py310,py311 envlist = py39,py310,py311
[testenv] [testenv]
whitelist_externals = poetry allowlist_externals = poetry
skip_install = true skip_install = true
envdir = {toxworkdir}/globalenv envdir = {toxworkdir}/globalenv
commands_pre = commands_pre =
...@@ -68,18 +68,6 @@ known_django = django ...@@ -68,18 +68,6 @@ known_django = django
skip = migrations skip = migrations
sections = FUTURE,STDLIB,DJANGO,THIRDPARTY,FIRSTPARTY,LOCALFOLDER 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] [pytest]
DJANGO_SETTINGS_MODULE = aleksis.core.settings DJANGO_SETTINGS_MODULE = aleksis.core.settings
junit_family = legacy junit_family = legacy
......
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