From d6a729b5a522ecf2a8038937da4cd8e7bb942c83 Mon Sep 17 00:00:00 2001
From: Gregoo <versatile.mailbox@gmail.com>
Date: Thu, 30 Jan 2025 17:39:55 +0100
Subject: [PATCH] Move the checkbox logic inside the macro

---
 templates/macro/form.html | 13 +++++++------
 templates/set/card.html   |  4 +---
 2 files changed, 8 insertions(+), 9 deletions(-)

diff --git a/templates/macro/form.html b/templates/macro/form.html
index 499c220..379309f 100644
--- a/templates/macro/form.html
+++ b/templates/macro/form.html
@@ -1,17 +1,18 @@
-{% macro checkbox(prefix, id, text, url, checked, delete=false) %}
+{% macro checkbox(item, metadata, delete=false) %}
   {% if g.login.is_authenticated() %}
-    <input class="form-check-input" type="checkbox" id="{{ prefix }}-{{ id }}" {% if checked %}checked{% endif %}
+    {% set prefix=metadata.as_dataset() %}
+    <input class="form-check-input" type="checkbox" id="{{ prefix }}-{{ item.fields.id }}" {% if item.fields[metadata.as_column()] %}checked{% endif %}
     {% if not delete %}
-      data-changer-id="{{ id }}" data-changer-prefix="{{ prefix }}" data-changer-url="{{ url }}" data-changer-parent="set"
+      data-changer-id="{{ item.fields.id }}" data-changer-prefix="{{ prefix }}" data-changer-url="{{ metadata.url_for_set_state(item.fields.id) }}" data-changer-parent="set"
     {% else %}
       disabled
     {% endif %}
       autocomplete="off">
-    <label class="form-check-label" for="{{ prefix }}-{{ id }}">
-      {{ text }} <i id="status-{{ prefix }}-{{ id }}" class="mb-1"></i>
+    <label class="form-check-label" for="{{ prefix }}-{{ item.fields.id }}">
+      {{ metadata.fields.name }} <i id="status-{{ prefix }}-{{ item.fields.id }}" class="mb-1"></i>
     </label>
   {% else %}
-    <input class="form-check-input text-reset" type="checkbox" {% if checked %}checked{% endif %} disabled>
+    <input class="form-check-input text-reset" type="checkbox" {% if item.fields[metadata.as_column()] %}checked{% endif %} disabled>
     {{ text }}
   {% endif %}
 {% endmacro %}
diff --git a/templates/set/card.html b/templates/set/card.html
index fea4fc0..19e493c 100644
--- a/templates/set/card.html
+++ b/templates/set/card.html
@@ -29,9 +29,7 @@
   {% if not tiny and brickset_statuses | length %}
     <ul class="list-group list-group-flush card-check border-bottom-0">
       {% for status in brickset_statuses %}
-        <li class="list-group-item {% if not solo %}p-1{% endif %}">
-          {{ form.checkbox(status.as_dataset(), item.fields.id, status.fields.name, status.url_for_set_state(item.fields.id), item.fields[status.as_column()], delete=delete) }}
-        </li>
+        <li class="list-group-item {% if not solo %}p-1{% endif %}">{{ form.checkbox(item, status, delete=delete) }}</li>
       {% endfor %}
     </ul>
   {% endif %}