Files
bricktracker
sql
views
__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_minifigures.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
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
BrickTracker/bricktracker/sql_counter.py

47 lines
1.3 KiB
Python

from typing import Tuple
# Some table aliases to make it look cleaner (id: (name, icon))
ALIASES: dict[str, Tuple[str, str]] = {
'bricktracker_set_checkboxes': ('Checkboxes', 'checkbox-line'),
'bricktracker_set_statuses': ('Bricktracker sets status', 'checkbox-line'),
'bricktracker_sets': ('Bricktracker sets', 'hashtag'),
'bricktracker_wishes': ('Bricktracker wishes', 'gift-line'),
'inventory': ('Parts', 'shapes-line'),
'minifigures': ('Minifigures', 'group-line'),
'missing': ('Missing', 'error-warning-line'),
'rebrickable_sets': ('Rebrickable sets', 'hashtag'),
'sets': ('Sets', 'hashtag'),
'sets_old': ('Sets (legacy)', 'hashtag'),
'wishlist': ('Wishlist', 'gift-line'),
'wishlist_old': ('Wishlist (legacy)', 'gift-line'),
}
class BrickCounter(object):
name: str
table: str
icon: str
count: int
def __init__(
self,
table: str,
/,
*,
name: str | None = None,
icon: str = 'question-line'
):
self.table = table
# Check if there is an alias
if table in ALIASES:
self.name = ALIASES[table][0]
self.icon = ALIASES[table][1]
else:
if name is None:
self.name = table
else:
self.name = name
self.icon = icon