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

Add extra mark model

parent de461c45
No related branches found
No related tags found
1 merge request!68Resolve "Add option to configure extra marks for personal notes"
# Generated by Django 3.0.8 on 2020-07-12 12:43
import django.contrib.postgres.fields.jsonb
import django.contrib.sites.managers
import django.db.models.deletion
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("sites", "0002_alter_domain_unique"),
("alsijil", "0001_initial"),
]
operations = [
migrations.CreateModel(
name="ExtraMark",
fields=[
(
"id",
models.AutoField(
auto_created=True,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
(
"extended_data",
django.contrib.postgres.fields.jsonb.JSONField(
default=dict, editable=False
),
),
(
"short_name",
models.CharField(
max_length=255, unique=True, verbose_name="Short name"
),
),
(
"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()),],
),
migrations.AddField(
model_name="personalnote",
name="extra_marks",
field=models.ManyToManyField(
blank=True,
null=True,
to="alsijil.ExtraMark",
verbose_name="Extra marks",
),
),
]
......@@ -30,6 +30,10 @@ class PersonalNote(ExtensibleModel):
remarks = models.CharField(max_length=200, blank=True)
extra_marks = models.ManyToManyField(
"ExtraMark", null=True, blank=True, verbose_name=_("Extra marks")
)
class Meta:
verbose_name = _("Personal note")
verbose_name_plural = _("Personal notes")
......@@ -91,3 +95,27 @@ class PersonalNoteFilter(ExtensibleModel):
verbose_name = _("Personal note filter")
verbose_name_plural = _("Personal note filters")
ordering = ["identifier"]
class ExtraMark(ExtensibleModel):
"""A model for extra marks.
Can be used for lesson-based counting of things (like forgotten homework).
"""
short_name = models.CharField(
max_length=255, unique=True, verbose_name=_("Short name")
)
name = models.CharField(max_length=255, unique=True, verbose_name=_("Name"))
def __str__(self):
return f"{self.name} ({self.short_name})"
@property
def count_label(self):
return f"{self.short_name}_count"
class Meta:
ordering = ["short_name"]
verbose_name = _("Extra mark")
verbose_name_plural = _("Extra marks")
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