diff --git a/templates/macro/form.html b/templates/macro/form.html index 9564f35..72af87f 100644 --- a/templates/macro/form.html +++ b/templates/macro/form.html @@ -43,26 +43,25 @@ {% endif %} {% endmacro %} -{% macro select(name, item, field, metadata_list, nullable=true, icon=none, delete=false) %} +{% macro select(name, id, prefix, url, value, metadata_list, nullable=true, icon=none, delete=false) %} {% if g.login.is_authenticated() %} - {% set prefix=metadata_list.as_prefix() %} - <label class="visually-hidden" for="{{ prefix }}-{{ item.fields.id }}">{{ name }}</label> + <label class="visually-hidden" for="{{ prefix }}-{{ id }}">{{ name }}</label> <div class="input-group"> {% if icon %}<span class="input-group-text"><i class="ri-{{ icon }} me-1"></i><span class="ms-1 d-none d-md-inline"> {{ name }}</span></span>{% endif %} - <select id="{{ prefix }}-{{ item.fields.id }}" class="form-select" + <select id="{{ prefix }}-{{ id }}" class="form-select" {% if not delete %} - data-changer-id="{{ item.fields.id }}" data-changer-prefix="{{ prefix }}" data-changer-url="{{ metadata_list.url_for_set_value(item.fields.id) }}" + data-changer-id="{{ id }}" data-changer-prefix="{{ prefix }}" data-changer-url="{{ url }}" {% else %} disabled {% endif %} autocomplete="off"> - {% if nullable %}<option value="" {% if item.fields[field] is none %}selected{% endif %}><i>None</i></option>{% endif %} + {% if nullable %}<option value="" {% if value is none %}selected{% endif %}><i>None</i></option>{% endif %} {% for metadata in metadata_list %} - <option value="{{ metadata.fields.id }}" {% if metadata.fields.id == item.fields[field] %}selected{% endif %}>{{ metadata.fields.name }}</option> + <option value="{{ metadata.fields.id }}" {% if metadata.fields.id == value %}selected{% endif %}>{{ metadata.fields.name }}</option> {% endfor %} </select> - <span id="status-{{ prefix }}-{{ item.fields.id }}" class="input-group-text ri-save-line"></span> - <button id="clear-{{ prefix }}-{{ item.fields.id }}" type="button" class="btn btn-sm btn-light btn-outline-danger border"><i class="ri-eraser-line"></i></button> + <span id="status-{{ prefix }}-{{ id }}" class="input-group-text ri-save-line"></span> + <button id="clear-{{ prefix }}-{{ id }}" type="button" class="btn btn-sm btn-light btn-outline-danger border"><i class="ri-eraser-line"></i></button> </div> {% endif %} {% endmacro %} diff --git a/templates/set/management.html b/templates/set/management.html index 744c961..ade6729 100644 --- a/templates/set/management.html +++ b/templates/set/management.html @@ -25,7 +25,7 @@ </div> <div class="col-12 flex-grow-1"> {% if brickset_purchase_locations | length %} - {{ form.select('Location', item, 'purchase_location', brickset_purchase_locations, icon='building-line', delete=delete) }} + {{ form.select('Location', item.fields.id, brickset_purchase_locations.as_prefix(), brickset_purchase_locations.url_for_set_value(item.fields.id), item.fields.purchase_location, brickset_purchase_locations, icon='building-line', delete=delete) }} {% else %} <i class="ri-error-warning-line"></i> No purchase location found. {% endif %} @@ -36,7 +36,7 @@ {{ accordion.footer() }} {{ accordion.header('Storage', 'storage', 'set-management', icon='archive-2-line') }} {% if brickset_storages | length %} - {{ form.select('Storage', item, 'storage', brickset_storages, delete=delete) }} + {{ form.select('Storage', item.fields.id, brickset_storages.as_prefix(), brickset_storages.url_for_set_value(item.fields.id), item.fields.storage, brickset_storages, icon='building-line', delete=delete) }} {% else %} <p class="text-center"><i class="ri-error-warning-line"></i> No storage found.</p> {% endif %}