Make instructions failsafe in the admin

This commit is contained in:
Gregoo 2025-02-04 10:47:22 +01:00
parent 7ce029029d
commit 3d660c594b
2 changed files with 25 additions and 20 deletions

View File

@ -34,6 +34,7 @@ def admin() -> str:
database_exception: Exception | None = None database_exception: Exception | None = None
database_upgrade_needed: bool = False database_upgrade_needed: bool = False
database_version: int = -1 database_version: int = -1
instructions: BrickInstructionsList | None = None
metadata_owners: list[BrickSetOwner] = [] metadata_owners: list[BrickSetOwner] = []
metadata_statuses: list[BrickSetStatus] = [] metadata_statuses: list[BrickSetStatus] = []
metadata_storages: list[BrickSetStorage] = [] metadata_storages: list[BrickSetStorage] = []
@ -50,6 +51,8 @@ def admin() -> str:
database_version = database.version database_version = database.version
database_counters = BrickSQL().count_records() database_counters = BrickSQL().count_records()
instructions = BrickInstructionsList()
metadata_owners = BrickSetOwnerList.list() metadata_owners = BrickSetOwnerList.list()
metadata_statuses = BrickSetStatusList.list(all=True) metadata_statuses = BrickSetStatusList.list(all=True)
metadata_storages = BrickSetStorageList.list() metadata_storages = BrickSetStorageList.list()
@ -104,7 +107,7 @@ def admin() -> str:
database_exception=database_exception, database_exception=database_exception,
database_upgrade_needed=database_upgrade_needed, database_upgrade_needed=database_upgrade_needed,
database_version=database_version, database_version=database_version,
instructions=BrickInstructionsList(), instructions=instructions,
metadata_owners=metadata_owners, metadata_owners=metadata_owners,
metadata_statuses=metadata_statuses, metadata_statuses=metadata_statuses,
metadata_storages=metadata_storages, metadata_storages=metadata_storages,

View File

@ -6,25 +6,27 @@
The instructions files folder is: <code>{{ config['INSTRUCTIONS_FOLDER'] }}</code>. <br> 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>. Allowed file formats for instructions are the following: <code>{{ ', '.join(config['INSTRUCTIONS_ALLOWED_EXTENSIONS']) }}</code>.
</p> </p>
<h5 class="border-bottom">Counters</h5> {% if instructions %}
<p> <h5 class="border-bottom">Counters</h5>
<div class="d-flex justify-content-start"> <p>
<ul class="list-group"> <div class="d-flex justify-content-start">
<li class="list-group-item d-flex justify-content-between align-items-start"> <ul class="list-group">
<span><i class="ri-hashtag"></i> Sets</span> <span class="badge text-bg-primary rounded-pill ms-2">{{ instructions.sets | length }}</span> <li class="list-group-item d-flex justify-content-between align-items-start">
</li> <span><i class="ri-hashtag"></i> Sets</span> <span class="badge text-bg-primary rounded-pill ms-2">{{ instructions.sets | length }}</span>
<li class="list-group-item d-flex justify-content-between align-items-start"> </li>
<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 class="list-group-item d-flex justify-content-between align-items-start">
</li> <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 class="list-group-item d-flex justify-content-between align-items-start"> </li>
<span><i class="ri-question-line"></i> Unknown</span> <span class="badge text-bg-primary rounded-pill ms-2">{{ instructions.unknown_total }}</span> <li class="list-group-item d-flex justify-content-between align-items-start">
</li> <span><i class="ri-question-line"></i> Unknown</span> <span class="badge text-bg-primary rounded-pill ms-2">{{ instructions.unknown_total }}</span>
<li class="list-group-item d-flex justify-content-between align-items-start"> </li>
<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 class="list-group-item d-flex justify-content-between align-items-start">
</li> <span><i class="ri-prohibited-line"></i> Rejected files</span> <span class="badge text-bg-primary rounded-pill ms-2">{{ instructions.rejected_total }}</span>
</ul> </li>
</div> </ul>
</p> </div>
</p>
{% endif %}
<h5 class="border-bottom">Refresh</h5> <h5 class="border-bottom">Refresh</h5>
<p> <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> <a href="{{ url_for('admin_instructions.refresh') }}" class="btn btn-primary" role="button"><i class="ri-refresh-line"></i> Refresh the instructions cache</a>