diff --git a/revert/migrations/0002_alter_reverttask_id.py b/revert/migrations/0002_alter_reverttask_id.py new file mode 100644 index 0000000..a628bca --- /dev/null +++ b/revert/migrations/0002_alter_reverttask_id.py @@ -0,0 +1,18 @@ +# Generated by Django 5.1.7 on 2026-03-14 02:22 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('revert', '0001_initial'), + ] + + operations = [ + migrations.AlterField( + model_name='reverttask', + name='id', + field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'), + ), + ] diff --git a/store/migrations/0024_alter_batch_id_alter_tool_id.py b/store/migrations/0024_alter_batch_id_alter_tool_id.py new file mode 100644 index 0000000..339be45 --- /dev/null +++ b/store/migrations/0024_alter_batch_id_alter_tool_id.py @@ -0,0 +1,23 @@ +# Generated by Django 5.1.7 on 2026-03-14 02:22 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('store', '0023_edits_bigints'), + ] + + operations = [ + migrations.AlterField( + model_name='batch', + name='id', + field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'), + ), + migrations.AlterField( + model_name='tool', + name='id', + field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'), + ), + ] diff --git a/store/models.py b/store/models.py index e866572..42d9aa6 100644 --- a/store/models.py +++ b/store/models.py @@ -207,7 +207,8 @@ def tag_ids(self): @cached_property def sorted_tags(self): - return self.tags.order_by('-priority', 'id') + # tags come sorted through its Meta ordering + return self.tags.all() @cached_property def reverting_batches(self): diff --git a/store/views.py b/store/views.py index 54f90d1..c4a960c 100644 --- a/store/views.py +++ b/store/views.py @@ -14,6 +14,7 @@ from .serializers import BatchSimpleSerializer, BatchDetailSerializer, BatchCSVSerializer, EditSerializer, ToolSerializer, ToolStatsSerializer from django_filters.rest_framework import DjangoFilterBackend from tagging.filters import TaggingFilterBackend +from tagging.models import Tag class BatchView(generics.RetrieveAPIView): serializer_class = BatchDetailSerializer @@ -46,7 +47,12 @@ class APIBatchView(BatchView): class BatchesView(generics.ListAPIView): serializer_class = BatchSimpleSerializer - queryset = Batch.objects.all().order_by('-ended') + queryset = ( + Batch.objects + .select_related('tool') + .prefetch_related('tags') + .order_by('-ended') + ) template_name = 'store/batches.html' filter_fields = ('user',) filter_backends = (TaggingFilterBackend,) diff --git a/tagging/migrations/0006_alter_tag_options.py b/tagging/migrations/0006_alter_tag_options.py new file mode 100644 index 0000000..5af12c3 --- /dev/null +++ b/tagging/migrations/0006_alter_tag_options.py @@ -0,0 +1,17 @@ +# Generated by Django 5.1.7 on 2026-03-14 02:22 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('tagging', '0005_inspect_batches'), + ] + + operations = [ + migrations.AlterModelOptions( + name='tag', + options={'ordering': ['-priority', 'id']}, + ), + ] diff --git a/tagging/models.py b/tagging/models.py index 30085c0..8d3a1f5 100644 --- a/tagging/models.py +++ b/tagging/models.py @@ -130,6 +130,9 @@ class Tag(CachingMixin, models.Model): #: Color for the tag (HTML coded, including hash) color = models.CharField(max_length=32, default='#939393') + class Meta: + ordering = ['-priority', 'id'] + @property def display_name(self): """