2
0
mirror of https://github.com/inventree/InvenTree.git synced 2025-09-13 14:11:37 +00:00

Printing order (#10199)

* Fix printing order for labels

- Order of printing should match order of submission

* Same for reports
This commit is contained in:
Oliver
2025-08-20 07:14:07 +10:00
committed by GitHub
parent 49cc5fb137
commit b939e39ea2
2 changed files with 14 additions and 2 deletions

View File

@@ -175,7 +175,10 @@ class LabelPrint(GenericAPIView):
instances = template.get_model().objects.filter(pk__in=items)
if instances.count() == 0:
# Sort the instances by the order of the provided items
instances = sorted(instances, key=lambda item: items.index(item.pk))
if len(instances) == 0:
raise ValidationError(_('No valid items provided to template'))
return self.print(template, instances, plugin, request)
@@ -254,7 +257,10 @@ class ReportPrint(GenericAPIView):
instances = template.get_model().objects.filter(pk__in=items)
if instances.count() == 0:
# Sort the instances by the order of the provided items
instances = sorted(instances, key=lambda item: items.index(item.pk))
if len(instances) == 0:
raise ValidationError(_('No valid items provided to template'))
return self.print(template, instances, request)

View File

@@ -35,6 +35,9 @@ def print_reports(template_id: int, item_ids: list[int], output_id: int, **kwarg
model = template.get_model()
items = model.objects.filter(pk__in=item_ids)
# Ensure they are sorted by the order of the provided item IDs
items = sorted(items, key=lambda item: item_ids.index(item.pk))
template.print(items, output=output)
@@ -68,6 +71,9 @@ def print_labels(
model = template.get_model()
items = model.objects.filter(pk__in=item_ids)
# Ensure they are sorted by the order of the provided item IDs
items = sorted(items, key=lambda item: item_ids.index(item.pk))
plugin = registry.get_plugin(plugin_slug, active=True)
if not plugin: