Skip to content
Snippets Groups Projects
Commit ab9a0fdc authored by magicfelix's avatar magicfelix
Browse files

Make Absence subclass of FreeBusy

parent df38e1fa
No related branches found
No related tags found
1 merge request!7Resolve "Implement Absence model based on FreeBusy"
# Generated by Django 4.2.3 on 2023-07-31 15:16
# Generated by Django 4.2.4 on 2023-08-17 19:59
import aleksis.core.managers
from django.db import migrations, models
......@@ -11,7 +11,7 @@ class Migration(migrations.Migration):
dependencies = [
("sites", "0002_alter_domain_unique"),
("core", "0052_site_related_name"),
("core", "0053_freebusy"),
]
operations = [
......@@ -62,25 +62,16 @@ class Migration(migrations.Migration):
name="Absence",
fields=[
(
"id",
models.BigAutoField(
auto_created=True, primary_key=True, serialize=False, verbose_name="ID"
),
),
(
"managed_by_app_label",
models.CharField(
blank=True,
editable=False,
max_length=255,
verbose_name="App label of app responsible for managing this instance",
"freebusy_ptr",
models.OneToOneField(
auto_created=True,
on_delete=django.db.models.deletion.CASCADE,
parent_link=True,
primary_key=True,
serialize=False,
to="core.freebusy",
),
),
("extended_data", models.JSONField(default=dict, editable=False)),
("date_start", models.DateField(verbose_name="Start date")),
("date_end", models.DateField(verbose_name="End date")),
("time_start", models.TimeField(blank=True, null=True, verbose_name="Start time")),
("time_end", models.TimeField(blank=True, null=True, verbose_name="End time")),
("comment", models.TextField(blank=True, verbose_name="Comment")),
(
"person",
......@@ -102,22 +93,12 @@ class Migration(migrations.Migration):
verbose_name="Absence reason",
),
),
(
"site",
models.ForeignKey(
default=1,
editable=False,
on_delete=django.db.models.deletion.CASCADE,
related_name="+",
to="sites.site",
),
),
],
options={
"verbose_name": "Absence",
"verbose_name_plural": "Absences",
"ordering": ["date_start"],
},
bases=("core.freebusy",),
),
migrations.AddConstraint(
model_name="absencereason",
......@@ -126,10 +107,4 @@ class Migration(migrations.Migration):
name="kolego_unique_short_name_per_site_absence_reason",
),
),
migrations.AddIndex(
model_name="absence",
index=models.Index(
fields=["date_start", "date_end"], name="kolego_abse_date_st_846150_idx"
),
),
]
......@@ -3,6 +3,7 @@ from django.utils.translation import gettext_lazy as _
from aleksis.core.managers import CurrentSiteManagerWithoutMigrations
from aleksis.core.mixins import ExtensibleModel
from aleksis.core.models import FreeBusy
from ..managers import AbsenceQuerySet
......@@ -28,7 +29,7 @@ class AbsenceReason(ExtensibleModel):
]
class Absence(ExtensibleModel):
class Absence(FreeBusy):
objects = CurrentSiteManagerWithoutMigrations.from_queryset(AbsenceQuerySet)()
reason = models.ForeignKey(
......@@ -47,17 +48,11 @@ class Absence(ExtensibleModel):
verbose_name=_("Person"),
)
date_start = models.DateField(verbose_name=_("Start date"))
date_end = models.DateField(verbose_name=_("End date"))
time_start = models.TimeField(verbose_name=_("Start time"), blank=True, null=True)
time_end = models.TimeField(verbose_name=_("End time"), blank=True, null=True)
comment = models.TextField(verbose_name=_("Comment"), blank=True)
def __str__(self):
return f"{self.person} ({self.date_start} - {self.date_end})"
class Meta:
ordering = ["date_start"]
indexes = [models.Index(fields=["date_start", "date_end"])]
verbose_name = _("Absence")
verbose_name_plural = _("Absences")
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