Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • AlekSIS/official/AlekSIS-App-Chronos
  • sunweaver/AlekSIS-App-Chronos
  • sggua/AlekSIS-App-Chronos
  • tincmeKdenka/AlekSIS-App-Chronos
  • ligquamacti/AlekSIS-App-Chronos
  • 1crotatilhe/AlekSIS-App-Chronos
  • 1compluningi/AlekSIS-App-Chronos
  • starwardcarfi/AlekSIS-App-Chronos
  • ceohecholeg/AlekSIS-App-Chronos
  • 7quecontranchi/AlekSIS-App-Chronos
  • 8evsubcesza/AlekSIS-App-Chronos
  • unscinKibdzu/AlekSIS-App-Chronos
  • delucPchondmu/AlekSIS-App-Chronos
13 results
Show changes
Commits on Source (11)
......@@ -5,6 +5,8 @@ from django.utils.html import format_html
from guardian.admin import GuardedModelAdmin
from aleksis.core.models import Room
from .models import (
Absence,
AbsenceReason,
......@@ -16,7 +18,6 @@ from .models import (
Lesson,
LessonPeriod,
LessonSubstitution,
Room,
Subject,
Supervision,
SupervisionArea,
......
......@@ -8,9 +8,9 @@ from django_filters import BooleanFilter, FilterSet, ModelMultipleChoiceFilter
from django_select2.forms import ModelSelect2MultipleWidget
from material import Layout, Row
from aleksis.core.models import Group, Person, SchoolTerm
from aleksis.core.models import Group, Person, Room, SchoolTerm
from .models import Break, Room, Subject, SupervisionArea, TimePeriod
from .models import Break, Subject, SupervisionArea, TimePeriod
class MultipleModelMultipleChoiceFilter(ModelMultipleChoiceFilter):
......
# Generated by Django 3.2.16 on 2022-11-30 17:23
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('core', '0047_add_room_model'),
('chronos', '0012_add_supervision_global_permission'),
]
operations = [
migrations.AlterField(
model_name='absence',
name='room',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='absences', to='core.room', verbose_name='Room'),
),
migrations.AlterField(
model_name='event',
name='rooms',
field=models.ManyToManyField(related_name='events', to='core.Room', verbose_name='Rooms'),
),
migrations.AlterField(
model_name='extralesson',
name='room',
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='extra_lessons', to='core.room', verbose_name='Room'),
),
migrations.AlterField(
model_name='lessonperiod',
name='room',
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='lesson_periods', to='core.room', verbose_name='Room'),
),
migrations.AlterField(
model_name='lessonsubstitution',
name='room',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='core.room', verbose_name='Room'),
),
migrations.AlterField(
model_name='timeperiod',
name='weekday',
field=models.PositiveSmallIntegerField(choices=[(0, 'Montag'), (1, 'Dienstag'), (2, 'Mittwoch'), (3, 'Donnerstag'), (4, 'Freitag'), (5, 'Samstag'), (6, 'Sonntag')], verbose_name='Week day'),
),
migrations.DeleteModel(
name='Room',
),
]
......@@ -67,7 +67,7 @@ from aleksis.core.mixins import (
GlobalPermissionModel,
SchoolTermRelatedExtensibleModel,
)
from aleksis.core.models import DashboardWidget, Group, SchoolTerm
from aleksis.core.models import DashboardWidget, Group, Room, SchoolTerm
from aleksis.core.util.core_helpers import has_person
from aleksis.core.util.pdf import generate_pdf_from_template
......@@ -360,28 +360,6 @@ class Subject(ExtensibleModel):
]
class Room(ExtensibleModel):
short_name = models.CharField(verbose_name=_("Short name"), max_length=255)
name = models.CharField(verbose_name=_("Long name"), max_length=255)
def __str__(self) -> str:
return f"{self.name} ({self.short_name})"
def get_absolute_url(self) -> str:
return reverse("timetable", args=["room", self.id])
class Meta:
permissions = (("view_room_timetable", _("Can view room timetable")),)
ordering = ["name", "short_name"]
verbose_name = _("Room")
verbose_name_plural = _("Rooms")
constraints = [
models.UniqueConstraint(
fields=["site_id", "short_name"], name="unique_short_name_per_site_room"
),
]
class Lesson(ValidityRangeRelatedExtensibleModel, GroupPropertiesMixin, TeacherPropertiesMixin):
subject = models.ForeignKey(
"Subject",
......@@ -463,7 +441,9 @@ class LessonSubstitution(ExtensibleModel, TeacherPropertiesMixin, WeekRelatedMix
blank=True,
verbose_name=_("Teachers"),
)
room = models.ForeignKey("Room", models.CASCADE, null=True, blank=True, verbose_name=_("Room"))
room = models.ForeignKey(
"core.Room", models.CASCADE, null=True, blank=True, verbose_name=_("Room")
)
cancelled = models.BooleanField(default=False, verbose_name=_("Cancelled?"))
cancelled_for_teachers = models.BooleanField(
......@@ -538,7 +518,7 @@ class LessonPeriod(WeekAnnotationMixin, TeacherPropertiesMixin, ExtensibleModel)
)
room = models.ForeignKey(
"Room",
"core.Room",
models.CASCADE,
null=True,
related_name="lesson_periods",
......@@ -751,7 +731,7 @@ class Absence(SchoolTermRelatedExtensibleModel):
verbose_name=_("Group"),
)
room = models.ForeignKey(
"Room",
"core.Room",
on_delete=models.CASCADE,
related_name="absences",
null=True,
......@@ -1088,7 +1068,7 @@ class Event(SchoolTermRelatedExtensibleModel, GroupPropertiesMixin, TeacherPrope
)
groups = models.ManyToManyField("core.Group", related_name="events", verbose_name=_("Groups"))
rooms = models.ManyToManyField("Room", related_name="events", verbose_name=_("Rooms"))
rooms = models.ManyToManyField("core.Room", related_name="events", verbose_name=_("Rooms"))
teachers = models.ManyToManyField(
"core.Person", related_name="events", verbose_name=_("Teachers")
)
......@@ -1234,7 +1214,7 @@ class ExtraLesson(
verbose_name=_("Teachers"),
)
room = models.ForeignKey(
"Room",
"core.Room",
models.CASCADE,
null=True,
related_name="extra_lessons",
......
from aleksis.core.util.search import Indexable, SearchIndex
from .models import Room
class RoomIndex(SearchIndex, Indexable):
"""Haystack index for searching rooms."""
model = Room
......@@ -6,19 +6,12 @@ from django.utils import timezone
import pytest
from aleksis.apps.chronos.util.chronos_helpers import get_rooms, get_teachers
from aleksis.core.models import Group, Person, SchoolTerm
from aleksis.core.models import Group, Person, Room, SchoolTerm
pytestmark = pytest.mark.django_db
from aleksis.apps.chronos.models import (
Lesson,
LessonPeriod,
Room,
Subject,
TimePeriod,
ValidityRange,
)
from aleksis.apps.chronos.models import Lesson, LessonPeriod, Subject, TimePeriod, ValidityRange
def test_rooms_teachers_only_from_current_school_term():
......
......@@ -12,13 +12,12 @@ from aleksis.apps.chronos.models import (
Lesson,
LessonPeriod,
LessonSubstitution,
Room,
Subject,
SupervisionSubstitution,
TimePeriod,
)
from aleksis.apps.chronos.util.change_tracker import TimetableDataChangeTracker
from aleksis.core.models import Group, Person, SchoolTerm
from aleksis.core.models import Group, Person, Room, SchoolTerm
pytestmark = pytest.mark.django_db
......
......@@ -7,8 +7,7 @@ from django.apps import apps
from calendarweek import CalendarWeek
from aleksis.apps.chronos.managers import TimetableType
from aleksis.apps.chronos.models import Room
from aleksis.core.models import Group, Person
from aleksis.core.models import Group, Person, Room
LessonPeriod = apps.get_model("chronos", "LessonPeriod")
TimePeriod = apps.get_model("chronos", "TimePeriod")
......
......@@ -9,7 +9,7 @@ from django.utils import timezone
from guardian.core import ObjectPermissionChecker
from aleksis.core.models import Announcement, Group, Person, SchoolTerm
from aleksis.core.models import Announcement, Group, Person, Room, SchoolTerm
from aleksis.core.util.core_helpers import get_site_preferences
from aleksis.core.util.predicates import check_global_permission
......@@ -18,7 +18,6 @@ from ..models import (
Absence,
LessonPeriod,
LessonSubstitution,
Room,
Supervision,
SupervisionSubstitution,
TimePeriod,
......
......@@ -3,10 +3,9 @@ from django.db.models import Model
from rules import predicate
from aleksis.core.models import Group, Person
from aleksis.core.models import Group, Person, Room
from aleksis.core.util.predicates import has_global_perm, has_object_perm
from ..models import Room
from .chronos_helpers import get_classes, get_rooms, get_teachers
......
......@@ -50,8 +50,8 @@ secondary = true
[tool.poetry.dependencies]
python = "^3.9"
calendarweek = "^0.5.0"
aleksis-core = "^2.8"
aleksis-app-resint = "^2.0"
aleksis-core = "^3.0.dev"
aleksis-app-resint = "^3.0.dev"
[tool.poetry.dev-dependencies]
aleksis-builddeps = "*"
......