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

Merge branch '247-adapt-to-core-4-0' into 'master'

Resolve "Adapt to Core 4.0"

Closes #247

See merge request !335
parents 4f534a26 92d5a25c
No related branches found
No related tags found
1 merge request!335Resolve "Adapt to Core 4.0"
Pipeline #181687 failed
Showing
with 162 additions and 93 deletions
......@@ -11,7 +11,7 @@ from django.utils.translation import gettext as _
from calendarweek import CalendarWeek
from aleksis.apps.chronos.managers import DateRangeQuerySetMixin
from aleksis.core.managers import CurrentSiteManagerWithoutMigrations
from aleksis.core.managers import AlekSISBaseManagerWithoutMigrations
if TYPE_CHECKING:
from aleksis.core.models import Group
......@@ -93,7 +93,7 @@ class RegisterObjectRelatedQuerySet(QuerySet):
)
class PersonalNoteManager(CurrentSiteManagerWithoutMigrations):
class PersonalNoteManager(AlekSISBaseManagerWithoutMigrations):
"""Manager adding specific methods to personal notes."""
def get_queryset(self):
......@@ -126,7 +126,7 @@ class PersonalNoteQuerySet(RegisterObjectRelatedQuerySet, QuerySet):
)
class LessonDocumentationManager(CurrentSiteManagerWithoutMigrations):
class LessonDocumentationManager(AlekSISBaseManagerWithoutMigrations):
pass
......@@ -136,7 +136,7 @@ class LessonDocumentationQuerySet(RegisterObjectRelatedQuerySet, QuerySet):
return self.filter(~Q(topic="") | ~Q(group_note="") | ~Q(homework=""))
class GroupRoleManager(CurrentSiteManagerWithoutMigrations):
class GroupRoleManager(AlekSISBaseManagerWithoutMigrations):
pass
......@@ -160,7 +160,7 @@ class GroupRoleQuerySet(QuerySet):
)
class GroupRoleAssignmentManager(CurrentSiteManagerWithoutMigrations):
class GroupRoleAssignmentManager(AlekSISBaseManagerWithoutMigrations):
pass
......
# Generated by Django 3.0.6 on 2020-05-29 10:29
import django.contrib.sites.managers
import django.db.models.deletion
from django.db import migrations, models
import aleksis.core.managers
import aleksis.apps.alsijil.models
......@@ -14,7 +15,6 @@ class Migration(migrations.Migration):
dependencies = [
("core", "0001_initial"),
("chronos", "0001_initial"),
("sites", "0002_alter_domain_unique"),
]
operations = [
......@@ -60,22 +60,13 @@ class Migration(migrations.Migration):
max_length=100, unique=True, verbose_name="Match expression"
),
),
(
"site",
models.ForeignKey(
default=1,
editable=False,
on_delete=django.db.models.deletion.CASCADE,
to="sites.Site",
),
),
],
options={
"verbose_name": "Personal note filter",
"verbose_name_plural": "Personal note filters",
"ordering": ["identifier"],
},
managers=[("objects", django.contrib.sites.managers.CurrentSiteManager()),],
managers=[("objects", aleksis.core.managers.AlekSISBaseManager()),],
),
migrations.CreateModel(
name="PersonalNote",
......@@ -116,15 +107,6 @@ class Migration(migrations.Migration):
to="core.Person",
),
),
(
"site",
models.ForeignKey(
default=1,
editable=False,
on_delete=django.db.models.deletion.CASCADE,
to="sites.Site",
),
),
],
options={
"verbose_name": "Personal note",
......@@ -180,15 +162,6 @@ class Migration(migrations.Migration):
to="chronos.LessonPeriod",
),
),
(
"site",
models.ForeignKey(
default=1,
editable=False,
on_delete=django.db.models.deletion.CASCADE,
to="sites.Site",
),
),
],
options={
"verbose_name": "Lesson documentation",
......
# Generated by Django 3.0.8 on 2020-07-10 10:46
import django.contrib.sites.managers
import django.db.models.deletion
from django.db import migrations, models
import aleksis.core.managers
class Migration(migrations.Migration):
dependencies = [
("sites", "0002_alter_domain_unique"),
("alsijil", "0001_initial"),
]
......@@ -41,22 +41,13 @@ class Migration(migrations.Migration):
"name",
models.CharField(max_length=255, unique=True, verbose_name="Name"),
),
(
"site",
models.ForeignKey(
default=1,
editable=False,
on_delete=django.db.models.deletion.CASCADE,
to="sites.Site",
),
),
],
options={
"verbose_name": "Excuse type",
"verbose_name_plural": "Excuse types",
"ordering": ["name"],
},
managers=[("objects", django.contrib.sites.managers.CurrentSiteManager()),],
managers=[("objects", aleksis.core.managers.AlekSISBaseManager()),],
),
migrations.AddField(
model_name="personalnote",
......
# Generated by Django 3.0.8 on 2020-07-12 12:43
import django.contrib.sites.managers
import django.db.models.deletion
from django.db import migrations, models
import aleksis.core.managers
class Migration(migrations.Migration):
dependencies = [
("sites", "0002_alter_domain_unique"),
("alsijil", "0002_excuse_type"),
]
......@@ -41,22 +41,13 @@ class Migration(migrations.Migration):
"name",
models.CharField(max_length=255, unique=True, verbose_name="Name"),
),
(
"site",
models.ForeignKey(
default=1,
editable=False,
on_delete=django.db.models.deletion.CASCADE,
to="sites.Site",
),
),
],
options={
"verbose_name": "Extra mark",
"verbose_name_plural": "Extra marks",
"ordering": ["short_name"],
},
managers=[("objects", django.contrib.sites.managers.CurrentSiteManager()),],
managers=[("objects", aleksis.core.managers.AlekSISBaseManager()),],
),
migrations.AddField(
model_name="personalnote",
......
# Generated by Django 3.1.5 on 2021-01-21 14:55
import django.contrib.sites.managers
from django.db import migrations, models
import aleksis.core.managers
class Migration(migrations.Migration):
......@@ -22,7 +23,7 @@ class Migration(migrations.Migration):
'managed': False,
},
managers=[
('objects', django.contrib.sites.managers.CurrentSiteManager()),
('objects', aleksis.core.managers.AlekSISBaseManager()),
],
),
]
......@@ -11,7 +11,6 @@ class Migration(migrations.Migration):
dependencies = [
('core', '0009_default_dashboard'),
('sites', '0002_alter_domain_unique'),
('alsijil', '0008_global_permissions'),
]
......@@ -24,7 +23,6 @@ class Migration(migrations.Migration):
('name', models.CharField(max_length=255, verbose_name='Name')),
('icon', models.CharField(blank=True, choices=(lambda: ICONS)(), max_length=50, verbose_name='Icon')),
('colour', colorfield.fields.ColorField(blank=True, default='', max_length=18, verbose_name='Colour')),
('site', models.ForeignKey(default=1, editable=False, on_delete=django.db.models.deletion.CASCADE, to='sites.site')),
],
options={
'verbose_name': 'Group role',
......@@ -41,7 +39,6 @@ class Migration(migrations.Migration):
('groups', models.ManyToManyField(related_name='group_roles', to='core.Group', verbose_name='Groups')),
('person', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='group_roles', to='core.person', verbose_name='Assigned person')),
('role', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='assignments', to='alsijil.grouprole', verbose_name='Group role')),
('site', models.ForeignKey(default=1, editable=False, on_delete=django.db.models.deletion.CASCADE, to='sites.site')),
],
options={
'verbose_name': 'Group role assignment',
......
# Generated by Django 3.1.5 on 2021-01-10 15:48
import aleksis.apps.chronos.util.date
import django.contrib.sites.managers
from django.db import migrations, models
import django.db.models.deletion
......
......@@ -20,23 +20,23 @@ class Migration(migrations.Migration):
),
migrations.AddConstraint(
model_name='excusetype',
constraint=models.UniqueConstraint(fields=('site_id', 'short_name'), name='unique_excuse_short_name'),
constraint=models.UniqueConstraint(fields=('short_name',), name='unique_excuse_short_name'),
),
migrations.AddConstraint(
model_name='excusetype',
constraint=models.UniqueConstraint(fields=('site_id', 'name'), name='unique_excuse_name'),
constraint=models.UniqueConstraint(fields=('name',), name='unique_excuse_name'),
),
migrations.AddConstraint(
model_name='extramark',
constraint=models.UniqueConstraint(fields=('site_id', 'short_name'), name='unique_mark_short_name'),
constraint=models.UniqueConstraint(fields=('short_name',), name='unique_mark_short_name'),
),
migrations.AddConstraint(
model_name='extramark',
constraint=models.UniqueConstraint(fields=('site_id', 'name'), name='unique_mark_name'),
constraint=models.UniqueConstraint(fields=('name',), name='unique_mark_name'),
),
migrations.AddConstraint(
model_name='grouprole',
constraint=models.UniqueConstraint(fields=('site_id', 'name'), name='unique_role_per_site'),
constraint=models.UniqueConstraint(fields=('name',), name='unique_role_per_site'),
),
migrations.AddConstraint(
model_name='lessondocumentation',
......
# Generated by Django 4.2.3 on 2023-07-27 14:08
import aleksis.core.managers
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('core', '0052_site_related_name'),
('alsijil', '0017_rename_late_to_tardiness'),
]
operations = [
migrations.AddField(
model_name='excusetype',
name='managed_by_app_label',
field=models.CharField(blank=True, editable=False, max_length=255, verbose_name='App label of app responsible for managing this instance'),
),
migrations.AddField(
model_name='extramark',
name='managed_by_app_label',
field=models.CharField(blank=True, editable=False, max_length=255, verbose_name='App label of app responsible for managing this instance'),
),
migrations.AddField(
model_name='grouprole',
name='managed_by_app_label',
field=models.CharField(blank=True, editable=False, max_length=255, verbose_name='App label of app responsible for managing this instance'),
),
migrations.AddField(
model_name='grouproleassignment',
name='managed_by_app_label',
field=models.CharField(blank=True, editable=False, max_length=255, verbose_name='App label of app responsible for managing this instance'),
),
migrations.AddField(
model_name='lessondocumentation',
name='managed_by_app_label',
field=models.CharField(blank=True, editable=False, max_length=255, verbose_name='App label of app responsible for managing this instance'),
),
migrations.AddField(
model_name='personalnote',
name='managed_by_app_label',
field=models.CharField(blank=True, editable=False, max_length=255, verbose_name='App label of app responsible for managing this instance'),
),
]
# Generated by Django 4.2.9 on 2024-01-11 12:52
import colorfield.fields
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('alsijil', '0018_add_managed_by_app_label'),
]
operations = [
migrations.AlterModelOptions(
name='alsijilglobalpermissions',
options={'managed': False, 'permissions': (('view_lesson', 'Can view lesson overview'), ('view_week', 'Can view week overview'), ('view_full_register', 'Can view full register'), ('register_absence', 'Can register absence'), ('list_personal_note_filters', 'Can list all personal note filters'))},
),
migrations.AlterModelOptions(
name='grouprole',
options={'permissions': (('assign_group_role', 'Can assign group role'),), 'verbose_name': 'Group role', 'verbose_name_plural': 'Group roles'},
),
migrations.AlterModelManagers(
name='excusetype',
managers=[
],
),
migrations.AlterModelManagers(
name='extramark',
managers=[
],
),
migrations.RemoveConstraint(
model_name='excusetype',
name='unique_excuse_short_name',
),
migrations.RemoveConstraint(
model_name='excusetype',
name='unique_excuse_name',
),
migrations.RemoveConstraint(
model_name='extramark',
name='unique_mark_short_name',
),
migrations.RemoveConstraint(
model_name='extramark',
name='unique_mark_name',
),
migrations.RemoveConstraint(
model_name='grouprole',
name='unique_role_per_site',
),
] + [
migrations.RunSQL(
f"ALTER TABLE alsijil_{model_name} drop column if exists site_id;"
) for model_name in
[
"excusetype",
"personalnote",
"lessondocumentation",
"extramark",
"grouprole",
"grouproleassignment",
]
] + [
migrations.AlterField(
model_name='excusetype',
name='count_as_absent',
field=models.BooleanField(default=True, help_text="If checked, this excuse type will be counted as a missed lesson. If not checked,it won't show up in the absence report.", verbose_name='Count as absent'),
),
migrations.AlterField(
model_name='grouprole',
name='colour',
field=colorfield.fields.ColorField(blank=True, default='', image_field=None, max_length=25, samples=None, verbose_name='Colour'),
),
migrations.AlterField(
model_name='grouprole',
name='name',
field=models.CharField(max_length=255, unique=True, verbose_name='Name'),
),
migrations.AlterField(
model_name='personalnote',
name='groups_of_person',
field=models.ManyToManyField(related_name='+', to='core.group'),
),
]
......@@ -72,12 +72,6 @@ class ExcuseType(ExtensibleModel):
ordering = ["name"]
verbose_name = _("Excuse type")
verbose_name_plural = _("Excuse types")
constraints = [
models.UniqueConstraint(
fields=("site_id", "short_name"), name="unique_excuse_short_name"
),
models.UniqueConstraint(fields=("site_id", "name"), name="unique_excuse_name"),
]
lesson_related_constraint_q = (
......@@ -443,12 +437,6 @@ class ExtraMark(ExtensibleModel):
ordering = ["short_name"]
verbose_name = _("Extra mark")
verbose_name_plural = _("Extra marks")
constraints = [
models.UniqueConstraint(
fields=("site_id", "short_name"), name="unique_mark_short_name"
),
models.UniqueConstraint(fields=("site_id", "name"), name="unique_mark_name"),
]
class GroupRole(ExtensibleModel):
......@@ -456,7 +444,7 @@ class GroupRole(ExtensibleModel):
objects = GroupRoleManager.from_queryset(GroupRoleQuerySet)()
name = models.CharField(max_length=255, verbose_name=_("Name"))
name = models.CharField(max_length=255, verbose_name=_("Name"), unique=True)
icon = models.CharField(max_length=50, blank=True, choices=ICONS, verbose_name=_("Icon"))
colour = ColorField(blank=True, verbose_name=_("Colour"))
......@@ -466,9 +454,6 @@ class GroupRole(ExtensibleModel):
class Meta:
verbose_name = _("Group role")
verbose_name_plural = _("Group roles")
constraints = [
models.UniqueConstraint(fields=("site_id", "name"), name="unique_role_per_site"),
]
permissions = (("assign_group_role", _("Can assign group role")),)
def get_absolute_url(self) -> str:
......
......@@ -30,7 +30,7 @@
{% trans "Period" %}
</a>
</li>
{% if register_object.label_ != "lesson_period" or not register_object.get_substitution.cancelled or not request.site.preferences.alsijil__block_personal_notes_for_cancelled %}
{% if register_object.label_ != "lesson_period" or not register_object.get_substitution.cancelled or not SITE_PREFERENCES.alsijil__block_personal_notes_for_cancelled %}
<li class="tab col">
<a href="#personal-notes">
<i class="material-icons iconify" data-icon="mdi:account-multiple-outline"></i>
......@@ -86,7 +86,7 @@
{% endwith %}
{% endwith %}
{% if register_object.label_ != "lesson_period" or not register_object.get_substitution.cancelled or not request.site.preferences.alsijil__block_personal_notes_for_cancelled %}
{% if register_object.label_ != "lesson_period" or not register_object.get_substitution.cancelled or not SITE_PREFERENCES.alsijil__block_personal_notes_for_cancelled %}
<div class="col s12 no-padding" id="personal-notes">
{% include "alsijil/partials/lesson/tabs/notes.html" %}
</div>
......
......@@ -100,7 +100,7 @@
<div class="col s12" id="week-overview">
{% for weekday, objects in regrouped_objects.items %}
{% with weekdays|get_dict:objects.0.weekday as advanced_weekday %}
{% if advanced_weekday.holiday and not request.site.preferences.alsijil__allow_entries_in_holidays %}
{% if advanced_weekday.holiday and not SITE_PREFERENCES.alsijil__allow_entries_in_holidays %}
<div class="card">
<div class="card-content">
<span class="card-title">
......
[tool.poetry]
name = "AlekSIS-App-Alsijil"
version = "3.0.1.dev0"
version = "4.0.dev0"
packages = [
{ include = "aleksis" }
]
......@@ -46,11 +46,12 @@ priority = "primary"
name = "gitlab"
url = "https://edugit.org/api/v4/projects/461/packages/pypi/simple"
priority = "supplemental"
[tool.poetry.dependencies]
python = "^3.10"
aleksis-core = "^3.0"
aleksis-app-chronos = "^3.0"
aleksis-app-stoelindeling = { version = "^2.0", optional = true }
aleksis-core = "^4.0.0.dev2"
aleksis-app-chronos = "^4.0.0.dev0"
aleksis-app-stoelindeling = { version = "^3.0.dev1", optional = true }
[tool.poetry.extras]
seatingplans = ["aleksis-app-stoelindeling"]
......
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