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

Merge branch '163-fields-must-be-unique-per-site' into 'master'

Resolve "Fields must be unique per site"

Closes #163

See merge request !197
parents 46347efd 802629fc
No related branches found
No related tags found
1 merge request!197Resolve "Fields must be unique per site"
Pipeline #13221 passed
# Generated by Django 3.2.3 on 2021-05-23 12:32
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('alsijil', '0012_unique_relation'),
]
operations = [
migrations.AlterUniqueTogether(
name='lessondocumentation',
unique_together=set(),
),
migrations.AlterUniqueTogether(
name='personalnote',
unique_together=set(),
),
migrations.AddConstraint(
model_name='excusetype',
constraint=models.UniqueConstraint(fields=('site_id', 'short_name'), name='unique_excuse_short_name'),
),
migrations.AddConstraint(
model_name='excusetype',
constraint=models.UniqueConstraint(fields=('site_id', 'name'), name='unique_excuse_name'),
),
migrations.AddConstraint(
model_name='extramark',
constraint=models.UniqueConstraint(fields=('site_id', 'short_name'), name='unique_mark_short_name'),
),
migrations.AddConstraint(
model_name='extramark',
constraint=models.UniqueConstraint(fields=('site_id', 'name'), name='unique_mark_name'),
),
migrations.AddConstraint(
model_name='grouprole',
constraint=models.UniqueConstraint(fields=('site_id', 'name'), name='unique_role_per_site'),
),
migrations.AddConstraint(
model_name='lessondocumentation',
constraint=models.UniqueConstraint(fields=('lesson_period', 'week', 'year', 'event', 'extra_lesson'), name='unique_documentation_per_object'),
),
migrations.AddConstraint(
model_name='personalnote',
constraint=models.UniqueConstraint(fields=('lesson_period', 'week', 'year', 'event', 'extra_lesson'), name='unique_personal_note_per_object'),
),
]
...@@ -61,6 +61,12 @@ class ExcuseType(ExtensibleModel): ...@@ -61,6 +61,12 @@ class ExcuseType(ExtensibleModel):
ordering = ["name"] ordering = ["name"]
verbose_name = _("Excuse type") verbose_name = _("Excuse type")
verbose_name_plural = _("Excuse types") 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 = ( lesson_related_constraint_q = (
...@@ -275,9 +281,12 @@ class PersonalNote(RegisterObjectRelatedMixin, ExtensibleModel): ...@@ -275,9 +281,12 @@ class PersonalNote(RegisterObjectRelatedMixin, ExtensibleModel):
constraints = [ constraints = [
CheckConstraint( CheckConstraint(
check=lesson_related_constraint_q, name="one_relation_only_personal_note" check=lesson_related_constraint_q, name="one_relation_only_personal_note"
) ),
models.UniqueConstraint(
fields=("lesson_period", "week", "year", "event", "extra_lesson"),
name="unique_personal_note_per_object",
),
] ]
unique_together = ["lesson_period", "week", "year", "event", "extra_lesson"]
class LessonDocumentation(RegisterObjectRelatedMixin, ExtensibleModel): class LessonDocumentation(RegisterObjectRelatedMixin, ExtensibleModel):
...@@ -362,9 +371,12 @@ class LessonDocumentation(RegisterObjectRelatedMixin, ExtensibleModel): ...@@ -362,9 +371,12 @@ class LessonDocumentation(RegisterObjectRelatedMixin, ExtensibleModel):
constraints = [ constraints = [
CheckConstraint( CheckConstraint(
check=lesson_related_constraint_q, name="one_relation_only_lesson_documentation", check=lesson_related_constraint_q, name="one_relation_only_lesson_documentation",
) ),
models.UniqueConstraint(
fields=("lesson_period", "week", "year", "event", "extra_lesson"),
name="unique_documentation_per_object",
),
] ]
unique_together = ["lesson_period", "week", "year", "event", "extra_lesson"]
class ExtraMark(ExtensibleModel): class ExtraMark(ExtensibleModel):
...@@ -387,6 +399,12 @@ class ExtraMark(ExtensibleModel): ...@@ -387,6 +399,12 @@ class ExtraMark(ExtensibleModel):
ordering = ["short_name"] ordering = ["short_name"]
verbose_name = _("Extra mark") verbose_name = _("Extra mark")
verbose_name_plural = _("Extra marks") 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): class GroupRole(ExtensibleModel):
...@@ -402,6 +420,9 @@ class GroupRole(ExtensibleModel): ...@@ -402,6 +420,9 @@ class GroupRole(ExtensibleModel):
class Meta: class Meta:
verbose_name = _("Group role") verbose_name = _("Group role")
verbose_name_plural = _("Group roles") verbose_name_plural = _("Group roles")
constraints = [
models.UniqueConstraint(fields=("site_id", "name"), name="unique_role_per_site"),
]
class GroupRoleAssignment(GroupPropertiesMixin, ExtensibleModel): class GroupRoleAssignment(GroupPropertiesMixin, ExtensibleModel):
......
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