Add helper to produce the set metadata lists

This commit is contained in:
Gregoo 2025-02-04 10:08:25 +01:00
parent b0c7cd7da5
commit 82b744334f
7 changed files with 39 additions and 46 deletions

View File

@ -1,11 +1,14 @@
from typing import Any, Self
from typing import Any, Self, Union
from flask import current_app
from .record_list import BrickRecordList
from .set_owner import BrickSetOwner
from .set_owner_list import BrickSetOwnerList
from .set_status_list import BrickSetStatusList
from .set_storage import BrickSetStorage
from .set_storage_list import BrickSetStorageList
from .set_tag import BrickSetTag
from .set_tag_list import BrickSetTagList
from .set import BrickSet
@ -163,3 +166,22 @@ class BrickSetList(BrickRecordList[BrickSet]):
self.list(override_query=self.using_storage_query)
return self
# Helper to build the metadata lists
def set_metadata_lists(
as_class: bool = False
) -> dict[
str,
Union[
list[BrickSetOwner],
list[BrickSetStorage],
BrickSetStorageList,
list[BrickSetTag]
]
]:
return {
'brickset_owners': BrickSetOwnerList.list(),
'brickset_storages': BrickSetStorageList.list(as_class=as_class),
'brickset_tags': BrickSetTagList.list(),
}

View File

@ -3,9 +3,7 @@ from flask_login import login_required
from ..configuration_list import BrickConfigurationList
from .exceptions import exception_handler
from ..set_owner_list import BrickSetOwnerList
from ..set_storage_list import BrickSetStorageList
from ..set_tag_list import BrickSetTagList
from ..set_list import set_metadata_lists
from ..socket import MESSAGES
add_page = Blueprint('add', __name__, url_prefix='/add')
@ -20,12 +18,10 @@ def add() -> str:
return render_template(
'add.html',
brickset_owners=BrickSetOwnerList.list(),
brickset_storages=BrickSetStorageList.list(),
brickset_tags=BrickSetTagList.list(),
path=current_app.config['SOCKET_PATH'],
namespace=current_app.config['SOCKET_NAMESPACE'],
messages=MESSAGES
messages=MESSAGES,
**set_metadata_lists()
)
@ -38,11 +34,9 @@ def bulk() -> str:
return render_template(
'add.html',
brickset_owners=BrickSetOwnerList.list(),
brickset_storages=BrickSetStorageList.list(),
brickset_tags=BrickSetTagList.list(),
path=current_app.config['SOCKET_PATH'],
namespace=current_app.config['SOCKET_NAMESPACE'],
messages=MESSAGES,
bulk=True
bulk=True,
**set_metadata_lists()
)

View File

@ -2,11 +2,8 @@ from flask import Blueprint, render_template
from .exceptions import exception_handler
from ..minifigure_list import BrickMinifigureList
from ..set_owner_list import BrickSetOwnerList
from ..set_status_list import BrickSetStatusList
from ..set_storage_list import BrickSetStorageList
from ..set_tag_list import BrickSetTagList
from ..set_list import BrickSetList
from ..set_list import BrickSetList, set_metadata_lists
index_page = Blueprint('index', __name__)
@ -18,9 +15,7 @@ def index() -> str:
return render_template(
'index.html',
brickset_collection=BrickSetList().last(),
brickset_owners=BrickSetOwnerList.list(),
brickset_statuses=BrickSetStatusList.list(),
brickset_storages=BrickSetStorageList.list(as_class=True),
brickset_tags=BrickSetTagList.list(),
minifigure_collection=BrickMinifigureList().last(),
**set_metadata_lists(as_class=True)
)

View File

@ -3,10 +3,7 @@ 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
from ..set_list import BrickSetList, set_metadata_lists
minifigure_page = Blueprint('minifigure', __name__, url_prefix='/minifigures')
@ -31,7 +28,5 @@ 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(),
**set_metadata_lists(as_class=True)
)

View File

@ -4,10 +4,7 @@ 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
from ..set_list import BrickSetList, set_metadata_lists
part_page = Blueprint('part', __name__, url_prefix='/parts')
@ -67,7 +64,5 @@ 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(),
**set_metadata_lists(as_class=True)
)

View File

@ -16,7 +16,7 @@ from .exceptions import exception_handler
from ..minifigure import BrickMinifigure
from ..part import BrickPart
from ..set import BrickSet
from ..set_list import BrickSetList
from ..set_list import BrickSetList, set_metadata_lists
from ..set_owner_list import BrickSetOwnerList
from ..set_status_list import BrickSetStatusList
from ..set_storage_list import BrickSetStorageList
@ -35,10 +35,8 @@ def list() -> str:
return render_template(
'sets.html',
collection=BrickSetList().all(),
brickset_owners=BrickSetOwnerList.list(),
brickset_statuses=BrickSetStatusList.list(),
brickset_storages=BrickSetStorageList.list(as_class=True),
brickset_tags=BrickSetTagList.list(),
**set_metadata_lists(as_class=True)
)
@ -145,10 +143,8 @@ def details(*, id: str) -> str:
'set.html',
item=BrickSet().select_specific(id),
open_instructions=request.args.get('open_instructions'),
brickset_owners=BrickSetOwnerList.list(),
brickset_statuses=BrickSetStatusList.list(all=True),
brickset_storages=BrickSetStorageList.list(as_class=True),
brickset_tags=BrickSetTagList.list(),
**set_metadata_lists(as_class=True)
)

View File

@ -1,11 +1,9 @@
from flask import Blueprint, render_template
from .exceptions import exception_handler
from ..set_owner_list import BrickSetOwnerList
from ..set_list import BrickSetList
from ..set_list import BrickSetList, set_metadata_lists
from ..set_storage import BrickSetStorage
from ..set_storage_list import BrickSetStorageList
from ..set_tag_list import BrickSetTagList
storage_page = Blueprint('storage', __name__, url_prefix='/storages')
@ -30,7 +28,5 @@ def details(*, id: str) -> str:
'storage.html',
item=storage,
sets=BrickSetList().using_storage(storage),
brickset_owners=BrickSetOwnerList.list(),
brickset_storages=BrickSetStorageList.list(as_class=True),
brickset_tags=BrickSetTagList.list(),
**set_metadata_lists(as_class=True)
)