From cddb76bf7eb95399184d1e11c0d974433b1a75c7 Mon Sep 17 00:00:00 2001 From: FreneticScribbler Date: Wed, 8 Sep 2021 20:39:52 +0100 Subject: [PATCH] Order training items by number --- .../migrations/0007_auto_20210908_2043.py | 25 +++++++++++++++++++ training/models.py | 11 +++++++- training/templates/base_training.html | 7 +++--- training/templates/edit_training_record.html | 2 +- 4 files changed, 40 insertions(+), 5 deletions(-) create mode 100644 training/migrations/0007_auto_20210908_2043.py diff --git a/training/migrations/0007_auto_20210908_2043.py b/training/migrations/0007_auto_20210908_2043.py new file mode 100644 index 00000000..60b8031b --- /dev/null +++ b/training/migrations/0007_auto_20210908_2043.py @@ -0,0 +1,25 @@ +# Generated by Django 3.1.13 on 2021-09-08 19:43 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('training', '0006_auto_20210903_2158'), + ] + + operations = [ + migrations.AlterModelOptions( + name='trainingitem', + options={'ordering': ['category__reference_number', 'reference_number']}, + ), + migrations.AlterUniqueTogether( + name='trainingitem', + unique_together={('reference_number', 'name', 'category')}, + ), + migrations.AlterOrderWithRespectTo( + name='trainingitemqualification', + order_with_respect_to='item', + ), + ] diff --git a/training/models.py b/training/models.py index edda8359..81038564 100644 --- a/training/models.py +++ b/training/models.py @@ -45,8 +45,12 @@ class TrainingItem(models.Model): category = models.ForeignKey('TrainingCategory', related_name='items', on_delete=models.RESTRICT) name = models.CharField(max_length=50) + @property + def number(self): + return "{}.{}".format(self.category.reference_number, self.reference_number) + def __str__(self): - return "{}.{} {}".format(self.category.reference_number, self.reference_number, self.name) + return "{} {}".format(self.number, self.name) @staticmethod def user_has_qualification(item, user, depth): @@ -54,6 +58,10 @@ class TrainingItem(models.Model): if q.item == item and q.depth > depth: return True + class Meta: + unique_together = ["reference_number", "name", "category"] + ordering = ['category__reference_number', 'reference_number'] + class TrainingItemQualification(models.Model): STARTED = 0 @@ -95,6 +103,7 @@ class TrainingItemQualification(models.Model): class Meta: unique_together = ["trainee", "item", "depth"] + order_with_respect_to = 'item' # Levels diff --git a/training/templates/base_training.html b/training/templates/base_training.html index 9e2ec8c5..0640ca75 100644 --- a/training/templates/base_training.html +++ b/training/templates/base_training.html @@ -10,7 +10,7 @@ {% if user.is_authenticated %} - - + + + {% endif %} {% endblock %} diff --git a/training/templates/edit_training_record.html b/training/templates/edit_training_record.html index 60d74980..eaa0046a 100644 --- a/training/templates/edit_training_record.html +++ b/training/templates/edit_training_record.html @@ -24,7 +24,7 @@ {% render_field form.trainee|attr:'hidden' value=form.trainee.initial %}
-