diff --git a/bricktracker/views/admin/admin.py b/bricktracker/views/admin/admin.py index 584a359..bb6a5e6 100644 --- a/bricktracker/views/admin/admin.py +++ b/bricktracker/views/admin/admin.py @@ -34,6 +34,7 @@ def admin() -> str: database_exception: Exception | None = None database_upgrade_needed: bool = False database_version: int = -1 + instructions: BrickInstructionsList | None = None metadata_owners: list[BrickSetOwner] = [] metadata_statuses: list[BrickSetStatus] = [] metadata_storages: list[BrickSetStorage] = [] @@ -50,6 +51,8 @@ def admin() -> str: database_version = database.version database_counters = BrickSQL().count_records() + instructions = BrickInstructionsList() + metadata_owners = BrickSetOwnerList.list() metadata_statuses = BrickSetStatusList.list(all=True) metadata_storages = BrickSetStorageList.list() @@ -104,7 +107,7 @@ def admin() -> str: database_exception=database_exception, database_upgrade_needed=database_upgrade_needed, database_version=database_version, - instructions=BrickInstructionsList(), + instructions=instructions, metadata_owners=metadata_owners, metadata_statuses=metadata_statuses, metadata_storages=metadata_storages, diff --git a/templates/admin/instructions.html b/templates/admin/instructions.html index 99fbe5e..997348c 100644 --- a/templates/admin/instructions.html +++ b/templates/admin/instructions.html @@ -6,25 +6,27 @@ The instructions files folder is: <code>{{ config['INSTRUCTIONS_FOLDER'] }}</code>. <br> Allowed file formats for instructions are the following: <code>{{ ', '.join(config['INSTRUCTIONS_ALLOWED_EXTENSIONS']) }}</code>. </p> -<h5 class="border-bottom">Counters</h5> -<p> - <div class="d-flex justify-content-start"> - <ul class="list-group"> - <li class="list-group-item d-flex justify-content-between align-items-start"> - <span><i class="ri-hashtag"></i> Sets</span> <span class="badge text-bg-primary rounded-pill ms-2">{{ instructions.sets | length }}</span> - </li> - <li class="list-group-item d-flex justify-content-between align-items-start"> - <span><i class="ri-file-line"></i> Instructions for sets</span> <span class="badge text-bg-primary rounded-pill ms-2">{{ instructions.sets_total }}</span> - </li> - <li class="list-group-item d-flex justify-content-between align-items-start"> - <span><i class="ri-question-line"></i> Unknown</span> <span class="badge text-bg-primary rounded-pill ms-2">{{ instructions.unknown_total }}</span> - </li> - <li class="list-group-item d-flex justify-content-between align-items-start"> - <span><i class="ri-prohibited-line"></i> Rejected files</span> <span class="badge text-bg-primary rounded-pill ms-2">{{ instructions.rejected_total }}</span> - </li> - </ul> - </div> -</p> +{% if instructions %} + <h5 class="border-bottom">Counters</h5> + <p> + <div class="d-flex justify-content-start"> + <ul class="list-group"> + <li class="list-group-item d-flex justify-content-between align-items-start"> + <span><i class="ri-hashtag"></i> Sets</span> <span class="badge text-bg-primary rounded-pill ms-2">{{ instructions.sets | length }}</span> + </li> + <li class="list-group-item d-flex justify-content-between align-items-start"> + <span><i class="ri-file-line"></i> Instructions for sets</span> <span class="badge text-bg-primary rounded-pill ms-2">{{ instructions.sets_total }}</span> + </li> + <li class="list-group-item d-flex justify-content-between align-items-start"> + <span><i class="ri-question-line"></i> Unknown</span> <span class="badge text-bg-primary rounded-pill ms-2">{{ instructions.unknown_total }}</span> + </li> + <li class="list-group-item d-flex justify-content-between align-items-start"> + <span><i class="ri-prohibited-line"></i> Rejected files</span> <span class="badge text-bg-primary rounded-pill ms-2">{{ instructions.rejected_total }}</span> + </li> + </ul> + </div> + </p> +{% endif %} <h5 class="border-bottom">Refresh</h5> <p> <a href="{{ url_for('admin_instructions.refresh') }}" class="btn btn-primary" role="button"><i class="ri-refresh-line"></i> Refresh the instructions cache</a>