From d8046ac1744c6075d467f8ec24f090ee44daa708 Mon Sep 17 00:00:00 2001
From: Gregoo <versatile.mailbox@gmail.com>
Date: Mon, 3 Feb 2025 17:38:39 +0100
Subject: [PATCH] Add missing metadata for set loaded from minifigures or parts
---
bricktracker/set_list.py | 20 ++++++++++++++++----
bricktracker/views/minifigure.py | 6 ++++++
bricktracker/views/part.py | 6 ++++++
templates/macro/badge.html | 2 +-
templates/minifigure/card.html | 2 +-
templates/part/card.html | 2 +-
6 files changed, 31 insertions(+), 7 deletions(-)
diff --git a/bricktracker/set_list.py b/bricktracker/set_list.py
index e25594ca..ffc436d2 100644
--- a/bricktracker/set_list.py
+++ b/bricktracker/set_list.py
@@ -130,7 +130,10 @@ class BrickSetList(BrickRecordList[BrickSet]):
# Load the sets from the database
for record in self.select(
override_query=self.missing_minifigure_query,
- order=self.order
+ order=self.order,
+ owners=BrickSetOwnerList.as_columns(),
+ statuses=BrickSetStatusList.as_columns(),
+ tags=BrickSetTagList.as_columns(),
):
brickset = BrickSet(record=record)
@@ -147,7 +150,10 @@ class BrickSetList(BrickRecordList[BrickSet]):
# Load the sets from the database
for record in self.select(
override_query=self.missing_part_query,
- order=self.order
+ order=self.order,
+ owners=BrickSetOwnerList.as_columns(),
+ statuses=BrickSetStatusList.as_columns(),
+ tags=BrickSetTagList.as_columns(),
):
brickset = BrickSet(record=record)
@@ -163,7 +169,10 @@ class BrickSetList(BrickRecordList[BrickSet]):
# Load the sets from the database
for record in self.select(
override_query=self.using_minifigure_query,
- order=self.order
+ order=self.order,
+ owners=BrickSetOwnerList.as_columns(),
+ statuses=BrickSetStatusList.as_columns(),
+ tags=BrickSetTagList.as_columns(),
):
brickset = BrickSet(record=record)
@@ -180,7 +189,10 @@ class BrickSetList(BrickRecordList[BrickSet]):
# Load the sets from the database
for record in self.select(
override_query=self.using_part_query,
- order=self.order
+ order=self.order,
+ owners=BrickSetOwnerList.as_columns(),
+ statuses=BrickSetStatusList.as_columns(),
+ tags=BrickSetTagList.as_columns(),
):
brickset = BrickSet(record=record)
diff --git a/bricktracker/views/minifigure.py b/bricktracker/views/minifigure.py
index 5d9cc85f..99587287 100644
--- a/bricktracker/views/minifigure.py
+++ b/bricktracker/views/minifigure.py
@@ -3,7 +3,10 @@ from flask import Blueprint, render_template
from .exceptions import exception_handler
from ..minifigure import BrickMinifigure
from ..minifigure_list import BrickMinifigureList
+from ..set_owner_list import BrickSetOwnerList
from ..set_list import BrickSetList
+from ..set_storage_list import BrickSetStorageList
+from ..set_tag_list import BrickSetTagList
minifigure_page = Blueprint('minifigure', __name__, url_prefix='/minifigures')
@@ -28,4 +31,7 @@ def details(*, figure: str) -> str:
using=BrickSetList().using_minifigure(figure),
missing=BrickSetList().missing_minifigure(figure),
damaged=BrickSetList().damaged_minifigure(figure),
+ brickset_owners=BrickSetOwnerList.list(),
+ brickset_storages=BrickSetStorageList.list(as_class=True),
+ brickset_tags=BrickSetTagList.list(),
)
diff --git a/bricktracker/views/part.py b/bricktracker/views/part.py
index 7cbc1c80..b2a9eedd 100644
--- a/bricktracker/views/part.py
+++ b/bricktracker/views/part.py
@@ -4,7 +4,10 @@ from .exceptions import exception_handler
from ..minifigure_list import BrickMinifigureList
from ..part import BrickPart
from ..part_list import BrickPartList
+from ..set_owner_list import BrickSetOwnerList
from ..set_list import BrickSetList
+from ..set_storage_list import BrickSetStorageList
+from ..set_tag_list import BrickSetTagList
part_page = Blueprint('part', __name__, url_prefix='/parts')
@@ -64,4 +67,7 @@ def details(*, part: str, color: int) -> str:
),
different_color=BrickPartList().with_different_color(brickpart),
similar_prints=BrickPartList().from_print(brickpart),
+ brickset_owners=BrickSetOwnerList.list(),
+ brickset_storages=BrickSetStorageList.list(as_class=True),
+ brickset_tags=BrickSetTagList.list(),
)
diff --git a/templates/macro/badge.html b/templates/macro/badge.html
index dfc93840..bd683f40 100644
--- a/templates/macro/badge.html
+++ b/templates/macro/badge.html
@@ -73,7 +73,7 @@
{% endmacro %}
{% macro storage(item, storages, solo=false, last=false) %}
- {% if item.fields.storage in storages.mapping %}
+ {% if storages and item.fields.storage in storages.mapping %}
{% set storage = storages.mapping[item.fields.storage] %}
{% if last %}
{% set tooltip=storage.fields.name %}
diff --git a/templates/minifigure/card.html b/templates/minifigure/card.html
index 2cba9b4c..812c2cd5 100644
--- a/templates/minifigure/card.html
+++ b/templates/minifigure/card.html
@@ -1,4 +1,4 @@
-{% import 'macro/accordion.html' as accordion %}
+{% import 'macro/accordion.html' as accordion with context %}
{% import 'macro/badge.html' as badge %}
{% import 'macro/card.html' as card %}
diff --git a/templates/part/card.html b/templates/part/card.html
index 16f2103e..a83a2f7f 100644
--- a/templates/part/card.html
+++ b/templates/part/card.html
@@ -1,4 +1,4 @@
-{% import 'macro/accordion.html' as accordion %}
+{% import 'macro/accordion.html' as accordion with context %}
{% import 'macro/badge.html' as badge %}
{% import 'macro/card.html' as card %}