forked from FrederikBaerentsen/BrickTracker
bricktracker
sql
views
admin
__init__.py
add.py
error.py
exceptions.py
index.py
instructions.py
login.py
minifigure.py
part.py
set.py
upload.py
wish.py
__init__.py
app.py
config.py
configuration.py
configuration_list.py
exceptions.py
fields.py
instructions.py
instructions_list.py
login.py
minifigure.py
minifigure_list.py
navbar.py
parser.py
part.py
part_list.py
rebrickable.py
rebrickable_image.py
rebrickable_minifigure.py
rebrickable_parts.py
rebrickable_set.py
rebrickable_set_list.py
record.py
record_list.py
reload.py
retired.py
retired_list.py
set.py
set_checkbox.py
set_checkbox_list.py
set_list.py
socket.py
socket_decorator.py
sql.py
sql_counter.py
sql_migration.py
sql_migration_list.py
sql_stats.py
theme.py
theme_list.py
version.py
wish.py
wish_list.py
docs
static
templates
.dockerignore
.env.sample
.gitignore
CHANGELOG.md
Dockerfile
LICENSE
README.md
__init__.py
app.py
compose.legacy.yml
compose.local.yaml
compose.yaml
entrypoint.sh
requirements.txt
test-server.sh
61 lines
1.7 KiB
Python
61 lines
1.7 KiB
Python
from flask import Blueprint, render_template
|
|
|
|
from .exceptions import exception_handler
|
|
from ..minifigure_list import BrickMinifigureList
|
|
from ..part import BrickPart
|
|
from ..part_list import BrickPartList
|
|
from ..set_list import BrickSetList
|
|
|
|
part_page = Blueprint('part', __name__, url_prefix='/parts')
|
|
|
|
|
|
# Index
|
|
@part_page.route('/', methods=['GET'])
|
|
@exception_handler(__file__)
|
|
def list() -> str:
|
|
return render_template(
|
|
'parts.html',
|
|
table_collection=BrickPartList().all()
|
|
)
|
|
|
|
|
|
# Missing
|
|
@part_page.route('/missing', methods=['GET'])
|
|
@exception_handler(__file__)
|
|
def missing() -> str:
|
|
return render_template(
|
|
'missing.html',
|
|
table_collection=BrickPartList().missing()
|
|
)
|
|
|
|
|
|
# Part details
|
|
@part_page.route('/<number>/<int:color>/details', defaults={'element': None}, methods=['GET']) # noqa: E501
|
|
@part_page.route('/<number>/<int:color>/<int:element>/details', methods=['GET']) # noqa: E501
|
|
@exception_handler(__file__)
|
|
def details(*, number: str, color: int, element: int | None) -> str:
|
|
return render_template(
|
|
'part.html',
|
|
item=BrickPart().select_generic(number, color, element_id=element),
|
|
sets_using=BrickSetList().using_part(
|
|
number,
|
|
color,
|
|
element_id=element
|
|
),
|
|
sets_missing=BrickSetList().missing_part(
|
|
number,
|
|
color,
|
|
element_id=element
|
|
),
|
|
minifigures_using=BrickMinifigureList().using_part(
|
|
number,
|
|
color,
|
|
element_id=element
|
|
),
|
|
minifigures_missing=BrickMinifigureList().missing_part(
|
|
number,
|
|
color,
|
|
element_id=element
|
|
),
|
|
)
|