2025-02-03 12:25:42 +01:00
|
|
|
from typing import Self
|
2025-01-24 10:36:24 +01:00
|
|
|
|
2025-01-30 16:23:47 +01:00
|
|
|
from .metadata_list import BrickMetadataList
|
2025-01-30 15:03:16 +01:00
|
|
|
from .set_status import BrickSetStatus
|
2025-01-24 10:36:24 +01:00
|
|
|
|
|
|
|
|
2025-01-30 15:03:16 +01:00
|
|
|
# Lego sets status list
|
2025-01-31 18:37:44 +01:00
|
|
|
class BrickSetStatusList(BrickMetadataList[BrickSetStatus]):
|
2025-01-30 16:23:47 +01:00
|
|
|
kind: str = 'set statuses'
|
|
|
|
|
2025-02-04 17:38:26 +01:00
|
|
|
# Database
|
2025-01-30 16:23:47 +01:00
|
|
|
table: str = 'bricktracker_set_statuses'
|
2025-02-04 17:38:26 +01:00
|
|
|
order: str = '"bricktracker_metadata_statuses"."name"'
|
2025-01-24 10:36:24 +01:00
|
|
|
|
|
|
|
# Queries
|
2025-01-30 15:03:16 +01:00
|
|
|
select_query = 'set/metadata/status/list'
|
2025-01-24 10:36:24 +01:00
|
|
|
|
2025-01-30 16:23:47 +01:00
|
|
|
# Filter the list of set status
|
|
|
|
def filter(self, all: bool = False) -> list[BrickSetStatus]:
|
2025-01-24 10:36:24 +01:00
|
|
|
return [
|
|
|
|
record
|
|
|
|
for record
|
|
|
|
in self.records
|
|
|
|
if all or record.fields.displayed_on_grid
|
|
|
|
]
|
2025-02-03 12:25:42 +01:00
|
|
|
|
|
|
|
# Instantiate the list with the proper class
|
|
|
|
@classmethod
|
|
|
|
def new(cls, /, *, force: bool = False) -> Self:
|
|
|
|
return cls(BrickSetStatus, force=force)
|