forked from FrederikBaerentsen/BrickTracker
Rename checkboxes (too generic) to status (and some bug fixes)
This commit is contained in:
@@ -8,8 +8,8 @@ from ..exceptions import exception_handler
|
||||
from ...instructions_list import BrickInstructionsList
|
||||
from ...rebrickable_image import RebrickableImage
|
||||
from ...retired_list import BrickRetiredList
|
||||
from ...set_checkbox import BrickSetCheckbox
|
||||
from ...set_checkbox_list import BrickSetCheckboxList
|
||||
from ...set_status import BrickSetStatus
|
||||
from ...set_status_list import BrickSetStatusList
|
||||
from ...sql_counter import BrickCounter
|
||||
from ...sql import BrickSQL
|
||||
from ...theme_list import BrickThemeList
|
||||
@@ -24,11 +24,11 @@ admin_page = Blueprint('admin', __name__, url_prefix='/admin')
|
||||
@login_required
|
||||
@exception_handler(__file__)
|
||||
def admin() -> str:
|
||||
brickset_checkboxes: list[BrickSetCheckbox] = []
|
||||
database_counters: list[BrickCounter] = []
|
||||
database_exception: Exception | None = None
|
||||
database_upgrade_needed: bool = False
|
||||
database_version: int = -1
|
||||
metadata_statuses: list[BrickSetStatus] = []
|
||||
nil_minifigure_name: str = ''
|
||||
nil_minifigure_url: str = ''
|
||||
nil_part_name: str = ''
|
||||
@@ -41,7 +41,7 @@ def admin() -> str:
|
||||
database_version = database.version
|
||||
database_counters = BrickSQL().count_records()
|
||||
|
||||
brickset_checkboxes = BrickSetCheckboxList().list(all=True)
|
||||
metadata_statuses = BrickSetStatusList().list(all=True)
|
||||
except Exception as e:
|
||||
database_exception = e
|
||||
|
||||
@@ -62,38 +62,38 @@ def admin() -> str:
|
||||
'PARTS_FOLDER'
|
||||
)
|
||||
|
||||
open_checkbox = request.args.get('open_checkbox', None)
|
||||
open_image = request.args.get('open_image', None)
|
||||
open_instructions = request.args.get('open_instructions', None)
|
||||
open_logout = request.args.get('open_logout', None)
|
||||
open_retired = request.args.get('open_retired', None)
|
||||
open_status = request.args.get('open_status', None)
|
||||
open_theme = request.args.get('open_theme', None)
|
||||
|
||||
open_database = (
|
||||
open_checkbox is None and
|
||||
open_image is None and
|
||||
open_instructions is None and
|
||||
open_logout is None and
|
||||
open_retired is None and
|
||||
open_status is None and
|
||||
open_theme is None
|
||||
)
|
||||
|
||||
return render_template(
|
||||
'admin.html',
|
||||
configuration=BrickConfigurationList.list(),
|
||||
brickset_checkboxes=brickset_checkboxes,
|
||||
checkbox_error=request.args.get('checkbox_error'),
|
||||
status_error=request.args.get('status_error'),
|
||||
database_counters=database_counters,
|
||||
database_error=request.args.get('database_error'),
|
||||
database_exception=database_exception,
|
||||
database_upgrade_needed=database_upgrade_needed,
|
||||
database_version=database_version,
|
||||
instructions=BrickInstructionsList(),
|
||||
metadata_statuses=metadata_statuses,
|
||||
nil_minifigure_name=nil_minifigure_name,
|
||||
nil_minifigure_url=nil_minifigure_url,
|
||||
nil_part_name=nil_part_name,
|
||||
nil_part_url=nil_part_url,
|
||||
open_checkbox=open_checkbox,
|
||||
open_status=open_status,
|
||||
open_database=open_database,
|
||||
open_image=open_image,
|
||||
open_instructions=open_instructions,
|
||||
|
||||
@@ -1,98 +0,0 @@
|
||||
from flask import (
|
||||
Blueprint,
|
||||
jsonify,
|
||||
redirect,
|
||||
request,
|
||||
render_template,
|
||||
url_for,
|
||||
)
|
||||
from flask_login import login_required
|
||||
from werkzeug.wrappers.response import Response
|
||||
|
||||
from ..exceptions import exception_handler
|
||||
from ...reload import reload
|
||||
from ...set_checkbox import BrickSetCheckbox
|
||||
|
||||
admin_checkbox_page = Blueprint(
|
||||
'admin_checkbox',
|
||||
__name__,
|
||||
url_prefix='/admin/checkbox'
|
||||
)
|
||||
|
||||
|
||||
# Add a checkbox
|
||||
@admin_checkbox_page.route('/add', methods=['POST'])
|
||||
@login_required
|
||||
@exception_handler(
|
||||
__file__,
|
||||
post_redirect='admin.admin',
|
||||
error_name='checkbox_error',
|
||||
open_checkbox=True
|
||||
)
|
||||
def add() -> Response:
|
||||
BrickSetCheckbox().from_form(request.form).insert()
|
||||
|
||||
reload()
|
||||
|
||||
return redirect(url_for('admin.admin', open_checkbox=True))
|
||||
|
||||
|
||||
# Delete the checkbox
|
||||
@admin_checkbox_page.route('<id>/delete', methods=['GET'])
|
||||
@login_required
|
||||
@exception_handler(__file__)
|
||||
def delete(*, id: str) -> str:
|
||||
return render_template(
|
||||
'admin.html',
|
||||
delete_checkbox=True,
|
||||
checkbox=BrickSetCheckbox().select_specific(id),
|
||||
error=request.args.get('checkbox_error')
|
||||
)
|
||||
|
||||
|
||||
# Actually delete the checkbox
|
||||
@admin_checkbox_page.route('<id>/delete', methods=['POST'])
|
||||
@login_required
|
||||
@exception_handler(
|
||||
__file__,
|
||||
post_redirect='admin_checkbox.delete',
|
||||
error_name='checkbox_error'
|
||||
)
|
||||
def do_delete(*, id: str) -> Response:
|
||||
checkbox = BrickSetCheckbox().select_specific(id)
|
||||
checkbox.delete()
|
||||
|
||||
reload()
|
||||
|
||||
return redirect(url_for('admin.admin', open_checkbox=True))
|
||||
|
||||
|
||||
# Change the field of a checkbox
|
||||
@admin_checkbox_page.route('/<id>/field/<name>', methods=['POST'])
|
||||
@login_required
|
||||
@exception_handler(__file__, json=True)
|
||||
def update_field(*, id: str, name: str) -> Response:
|
||||
checkbox = BrickSetCheckbox().select_specific(id)
|
||||
value = checkbox.update_field(name, json=request.json)
|
||||
|
||||
reload()
|
||||
|
||||
return jsonify({'value': value})
|
||||
|
||||
|
||||
# Rename the checkbox
|
||||
@admin_checkbox_page.route('<id>/rename', methods=['POST'])
|
||||
@login_required
|
||||
@exception_handler(
|
||||
__file__,
|
||||
post_redirect='admin.admin',
|
||||
error_name='checkbox_error',
|
||||
open_checkbox=True
|
||||
)
|
||||
def rename(*, id: str) -> Response:
|
||||
checkbox = BrickSetCheckbox().select_specific(id)
|
||||
checkbox.from_form(request.form).rename()
|
||||
|
||||
reload()
|
||||
|
||||
return redirect(url_for('admin.admin', open_checkbox=True))
|
||||
@@ -0,0 +1,98 @@
|
||||
from flask import (
|
||||
Blueprint,
|
||||
jsonify,
|
||||
redirect,
|
||||
request,
|
||||
render_template,
|
||||
url_for,
|
||||
)
|
||||
from flask_login import login_required
|
||||
from werkzeug.wrappers.response import Response
|
||||
|
||||
from ..exceptions import exception_handler
|
||||
from ...reload import reload
|
||||
from ...set_status import BrickSetStatus
|
||||
|
||||
admin_status_page = Blueprint(
|
||||
'admin_status',
|
||||
__name__,
|
||||
url_prefix='/admin/status'
|
||||
)
|
||||
|
||||
|
||||
# Add a metadata status
|
||||
@admin_status_page.route('/add', methods=['POST'])
|
||||
@login_required
|
||||
@exception_handler(
|
||||
__file__,
|
||||
post_redirect='admin.admin',
|
||||
error_name='status_error',
|
||||
open_status=True
|
||||
)
|
||||
def add() -> Response:
|
||||
BrickSetStatus().from_form(request.form).insert()
|
||||
|
||||
reload()
|
||||
|
||||
return redirect(url_for('admin.admin', open_status=True))
|
||||
|
||||
|
||||
# Delete the metadata status
|
||||
@admin_status_page.route('<id>/delete', methods=['GET'])
|
||||
@login_required
|
||||
@exception_handler(__file__)
|
||||
def delete(*, id: str) -> str:
|
||||
return render_template(
|
||||
'admin.html',
|
||||
delete_status=True,
|
||||
status=BrickSetStatus().select_specific(id),
|
||||
error=request.args.get('status_error')
|
||||
)
|
||||
|
||||
|
||||
# Actually delete the metadata status
|
||||
@admin_status_page.route('<id>/delete', methods=['POST'])
|
||||
@login_required
|
||||
@exception_handler(
|
||||
__file__,
|
||||
post_redirect='admin_status.delete',
|
||||
error_name='status_error'
|
||||
)
|
||||
def do_delete(*, id: str) -> Response:
|
||||
status = BrickSetStatus().select_specific(id)
|
||||
status.delete()
|
||||
|
||||
reload()
|
||||
|
||||
return redirect(url_for('admin.admin', open_status=True))
|
||||
|
||||
|
||||
# Change the field of a metadata status
|
||||
@admin_status_page.route('/<id>/field/<name>', methods=['POST'])
|
||||
@login_required
|
||||
@exception_handler(__file__, json=True)
|
||||
def update_field(*, id: str, name: str) -> Response:
|
||||
status = BrickSetStatus().select_specific(id)
|
||||
value = status.update_field(name, json=request.json)
|
||||
|
||||
reload()
|
||||
|
||||
return jsonify({'value': value})
|
||||
|
||||
|
||||
# Rename the metadata status
|
||||
@admin_status_page.route('<id>/rename', methods=['POST'])
|
||||
@login_required
|
||||
@exception_handler(
|
||||
__file__,
|
||||
post_redirect='admin.admin',
|
||||
error_name='status_error',
|
||||
open_status=True
|
||||
)
|
||||
def rename(*, id: str) -> Response:
|
||||
status = BrickSetStatus().select_specific(id)
|
||||
status.from_form(request.form).rename()
|
||||
|
||||
reload()
|
||||
|
||||
return redirect(url_for('admin.admin', open_status=True))
|
||||
@@ -2,7 +2,7 @@ from flask import Blueprint, render_template
|
||||
|
||||
from .exceptions import exception_handler
|
||||
from ..minifigure_list import BrickMinifigureList
|
||||
from ..set_checkbox_list import BrickSetCheckboxList
|
||||
from ..set_status_list import BrickSetStatusList
|
||||
from ..set_list import BrickSetList
|
||||
|
||||
index_page = Blueprint('index', __name__)
|
||||
@@ -16,5 +16,5 @@ def index() -> str:
|
||||
'index.html',
|
||||
brickset_collection=BrickSetList().last(),
|
||||
minifigure_collection=BrickMinifigureList().last(),
|
||||
brickset_checkboxes=BrickSetCheckboxList().list(),
|
||||
brickset_statuses=BrickSetStatusList().list(),
|
||||
)
|
||||
|
||||
@@ -16,7 +16,7 @@ from .exceptions import exception_handler
|
||||
from ..minifigure import BrickMinifigure
|
||||
from ..part import BrickPart
|
||||
from ..set import BrickSet
|
||||
from ..set_checkbox_list import BrickSetCheckboxList
|
||||
from ..set_status_list import BrickSetStatusList
|
||||
from ..set_list import BrickSetList
|
||||
from ..socket import MESSAGES
|
||||
|
||||
@@ -32,19 +32,19 @@ def list() -> str:
|
||||
return render_template(
|
||||
'sets.html',
|
||||
collection=BrickSetList().all(),
|
||||
brickset_checkboxes=BrickSetCheckboxList().list(),
|
||||
brickset_statuses=BrickSetStatusList().list(),
|
||||
)
|
||||
|
||||
|
||||
# Change the status of a checkbox
|
||||
# Change the status of a status
|
||||
@set_page.route('/<id>/status/<metadata_id>', methods=['POST'])
|
||||
@login_required
|
||||
@exception_handler(__file__, json=True)
|
||||
def update_status(*, id: str, metadata_id: str) -> Response:
|
||||
brickset = BrickSet().select_light(id)
|
||||
checkbox = BrickSetCheckboxList().get(metadata_id)
|
||||
status = BrickSetStatusList().get(metadata_id)
|
||||
|
||||
state = checkbox.update_set_state(brickset, request.json)
|
||||
state = status.update_set_state(brickset, request.json)
|
||||
|
||||
return jsonify({'value': state})
|
||||
|
||||
@@ -97,7 +97,7 @@ def details(*, id: str) -> str:
|
||||
'set.html',
|
||||
item=BrickSet().select_specific(id),
|
||||
open_instructions=request.args.get('open_instructions'),
|
||||
brickset_checkboxes=BrickSetCheckboxList().list(all=True),
|
||||
brickset_statuses=BrickSetStatusList().list(all=True),
|
||||
)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user