- {% if item.un %}
- {% with un=item.un %}
- {% include "_types/auth/_newsletter_toggle.html" %}
- {% endwith %}
- {% else %}
- {# No subscription row yet — show an off toggle that will create one #}
-
-
-
- {% endif %}
-
-
- {% endfor %}
-
- {% else %}
-
No newsletters available.
- {% endif %}
-
-
-
diff --git a/browser/templates/_types/auth/_oob_elements.html b/browser/templates/_types/auth/_oob_elements.html
deleted file mode 100644
index cafb113..0000000
--- a/browser/templates/_types/auth/_oob_elements.html
+++ /dev/null
@@ -1,29 +0,0 @@
-{% extends 'oob_elements.html' %}
-
-{# OOB elements for HTMX navigation - all elements that need updating #}
-
-{# Import shared OOB macros #}
-{% from '_types/root/_oob_menu.html' import mobile_menu with context %}
-
-{# Header with app title - includes cart-mini, navigation, and market-specific header #}
-
-{% block oobs %}
-
- {% from '_types/root/_n/macros.html' import oob_header with context %}
- {{oob_header('root-header-child', 'auth-header-child', '_types/auth/header/_header.html')}}
-
- {% from '_types/root/header/_header.html' import header_row with context %}
- {{ header_row(oob=True) }}
-{% endblock %}
-
-
-{% block mobile_menu %}
- {% include '_types/auth/_nav.html' %}
-{% endblock %}
-
-
-{% block content %}
- {% include oob.main %}
-{% endblock %}
-
-
diff --git a/browser/templates/_types/auth/_tickets_panel.html b/browser/templates/_types/auth/_tickets_panel.html
deleted file mode 100644
index 69f7596..0000000
--- a/browser/templates/_types/auth/_tickets_panel.html
+++ /dev/null
@@ -1,44 +0,0 @@
-
-{% endif %}
\ No newline at end of file
diff --git a/browser/templates/_types/blog/mobile/_filter/summary/tag_groups.html b/browser/templates/_types/blog/mobile/_filter/summary/tag_groups.html
deleted file mode 100644
index 7bf142e..0000000
--- a/browser/templates/_types/blog/mobile/_filter/summary/tag_groups.html
+++ /dev/null
@@ -1,33 +0,0 @@
-{% if selected_groups and selected_groups|length %}
-
- {% for sg in selected_groups %}
- {% for group in tag_groups %}
- {% if sg == group.slug %}
-
\ No newline at end of file
diff --git a/browser/templates/_types/browse/_product_cards.html b/browser/templates/_types/browse/_product_cards.html
deleted file mode 100644
index cc8edb3..0000000
--- a/browser/templates/_types/browse/_product_cards.html
+++ /dev/null
@@ -1,107 +0,0 @@
-{% for p in products %}
- {% include "_types/browse/_product_card.html" %}
-{% endfor %}
-{% if page < total_pages|int %}
-
-
-
- {% for s in labels %}
- {% set is_on = (selected_labels and (s.name|lower in selected_labels)) %}
- {% set qs = {"remove_label": s.name, "page":None}|qs if is_on
- else {"add_label": s.name, "page":None}|qs %}
- {% set href = (current_local_href ~ qs)|host %}
-
- {% for s in stickers %}
- {% set is_on = (selected_stickers and (s.name|lower in selected_stickers)) %}
- {% set qs = {"remove_sticker": s.name, "page": None}|qs if is_on
- else {"add_sticker": s.name, "page": None}|qs %}
- {% set href = (current_local_href ~ qs)|host%}
-
-
-{% endmacro %}
\ No newline at end of file
diff --git a/browser/templates/_types/calendar/_main_panel.html b/browser/templates/_types/calendar/_main_panel.html
deleted file mode 100644
index 48ae736..0000000
--- a/browser/templates/_types/calendar/_main_panel.html
+++ /dev/null
@@ -1,180 +0,0 @@
-
-
-
- {# Month / year navigation #}
-
-
-
- {# Calendar grid #}
-
- {# Weekday header: only show on sm+ (desktop/tablet) #}
-
- {% for wd in weekday_names %}
-
{{ wd }}
- {% endfor %}
-
-
- {# On mobile: 1 column; on sm+: 7 columns #}
-
- {% for week in weeks %}
- {% for day in week %}
-
-
-
-
- {{ day.date.strftime('%a') }}
-
-
- {# Clickable day number: goes to day detail view #}
-
- {{ day.date.day }}
-
-
-
- {# Entries for this day: merged, chronological #}
-
- {# Build a list of entries for this specific day.
- month_entries is already sorted by start_at in Python. #}
- {% for e in month_entries %}
- {% if e.start_at.date() == day.date %}
- {# Decide colour: highlight "mine" differently if you want #}
- {% set is_mine = (g.user and e.user_id == g.user.id)
- or (not g.user and e.session_id == qsession.get('calendar_sid')) %}
-
- {% from '_types/cart/_cart.html' import show_cart with context %}
- {{ show_cart() }}
-
\ No newline at end of file
diff --git a/browser/templates/_types/cart/_mini.html b/browser/templates/_types/cart/_mini.html
deleted file mode 100644
index a8255e4..0000000
--- a/browser/templates/_types/cart/_mini.html
+++ /dev/null
@@ -1,45 +0,0 @@
-{% macro mini(oob=False, count=None) %}
-
- {# cart_count is set by the context processor in all apps.
- Cart app computes it from g.cart + calendar_cart_entries;
- other apps get it from the cart internal API.
- count param allows explicit override when macro is imported without context. #}
- {% if count is not none %}
- {% set _count = count %}
- {% elif cart_count is defined and cart_count is not none %}
- {% set _count = cart_count %}
- {% elif cart is defined and cart is not none %}
- {% set _count = (cart | sum(attribute="quantity")) + ((calendar_cart_entries | length) if calendar_cart_entries else 0) %}
- {% else %}
- {% set _count = 0 %}
- {% endif %}
-
- {% if _count == 0 %}
-
- {% if order.status == 'paid' %}
- Payment received
- {% elif order.status == 'failed' %}
- Payment failed
- {% elif order.status == 'missing' %}
- Order not found
- {% else %}
- Payment status: {{ order.status|default('pending')|capitalize }}
- {% endif %}
-
-
- {% if order.status == 'paid' %}
- Thanks for your order.
- {% elif order.status == 'failed' %}
- Something went wrong while processing your payment. You can try again below.
- {% elif order.status == 'missing' %}
- We couldn't find that order – it may have expired or never been created.
- {% else %}
- We’re still waiting for a final confirmation from SumUp.
- {% endif %}
-
-
-
-
-{% endblock %}
-
-{% block aside %}
- {# no aside content for now #}
-{% endblock %}
-
-{% block content %}
-
- {% if order %}
-
- {% include '_types/order/_summary.html' %}
-
- {% else %}
-
- We couldn’t find that order. If you reached this page from an old link, please start a new order.
-
- {% endif %}
- {% include '_types/order/_items.html' %}
- {% include '_types/order/_calendar_items.html' %}
- {% include '_types/order/_ticket_items.html' %}
-
- {% if order.status == 'failed' and order %}
-
-
Your payment was not completed.
-
- You can go back to your cart and try checkout again. If the problem persists,
- please contact us and mention order #{{ order.id }}.
-
- {% for sub in data.subs %}
- {% set href = (url_for('market.browse.browse_sub', top_slug=data.slug, sub_slug=sub.slug) ~qs)|host%}
- {% if top_slug==(data.slug | lower) and sub_slug == sub.slug %}
-
-
-
- {% endif %}
\ No newline at end of file
diff --git a/browser/templates/_types/order/_items.html b/browser/templates/_types/order/_items.html
deleted file mode 100644
index 27b2a9f..0000000
--- a/browser/templates/_types/order/_items.html
+++ /dev/null
@@ -1,51 +0,0 @@
-{# Items list #}
-{% if order and order.items %}
-
-
-
\ No newline at end of file
diff --git a/browser/templates/_types/order/_ticket_items.html b/browser/templates/_types/order/_ticket_items.html
deleted file mode 100644
index ef06c0b..0000000
--- a/browser/templates/_types/order/_ticket_items.html
+++ /dev/null
@@ -1,49 +0,0 @@
-{# --- Tickets in this order --- #}
- {% if order and order_tickets %}
-
-
- Event tickets in this order
-
-
-
- {% for tk in order_tickets %}
-
-
-
- {{ tk.entry_name }}
- {# Small status pill #}
-
- {{ tk.state|replace('_', ' ')|capitalize }}
-
-
- {% include '_types/post/_entry_items.html' with context %}
-
-
-
-
diff --git a/browser/templates/_types/post/_entry_items.html b/browser/templates/_types/post/_entry_items.html
deleted file mode 100644
index d221e85..0000000
--- a/browser/templates/_types/post/_entry_items.html
+++ /dev/null
@@ -1,38 +0,0 @@
-{# Get entries from either direct variable or associated_entries dict #}
-{% set entry_list = entries if entries is defined else (associated_entries.entries if associated_entries is defined else []) %}
-{% set current_page = page if page is defined else (associated_entries.page if associated_entries is defined else 1) %}
-{% set has_more_entries = has_more if has_more is defined else (associated_entries.has_more if associated_entries is defined else False) %}
-
-{% for entry in entry_list %}
- {% set _entry_path = '/' + post.slug + '/calendars/' + entry.calendar_slug + '/' + entry.start_at.year|string + '/' + entry.start_at.month|string + '/' + entry.start_at.day|string + '/entries/' + entry.id|string + '/' %}
-
- {% if post.feature_image %}
-
- {% else %}
-
- {% endif %}
-
- {% for calendar in all_calendars %}
- {% for entry in calendar.entries %}
- {% if entry.id in associated_entry_ids and entry.deleted_at is none %}
-
- {% endif %}
- {% endfor %}
- {% endfor %}
-
- {% else %}
-
No entries associated yet. Browse calendars below to add entries.
- {% for week in weeks %}
- {% for day in week %}
-
-
{{ day.date.day }}
-
- {# Entries for this day #}
-
- {% for e in month_entries %}
- {% if e.start_at.date() == day.date %}
- {% if e.id in associated_entry_ids %}
- {# Associated entry - show with delete button #}
-
- {% for wdata in container_nav_widgets %}
- {% with ctx=wdata.ctx %}
- {% include wdata.widget.template with context %}
- {% endwith %}
- {% endfor %}
-
-
-
-
-
- {# Right scroll arrow - desktop only #}
-
diff --git a/browser/templates/_types/post/admin/_nav_entries_oob.html b/browser/templates/_types/post/admin/_nav_entries_oob.html
deleted file mode 100644
index eecc3d5..0000000
--- a/browser/templates/_types/post/admin/_nav_entries_oob.html
+++ /dev/null
@@ -1,80 +0,0 @@
-{# OOB swap for nav entries and calendars when toggling associations or editing calendars #}
-{% import 'macros/links.html' as links %}
-
-{# Associated Entries and Calendars - vertical on mobile, horizontal with arrows on desktop #}
-{% if (associated_entries and associated_entries.entries) or calendars %}
-
- {% set ident = [] %}
- {% for k in ['id','ghost_id','uuid','slug','name','title'] if k in it.__mapper__.c %}
- {% set v = (it|attr(k))|default('', true) %}
- {% do ident.append(k ~ '=' ~ v) %}
- {% endfor %}
-
{{ (ident|join(' • ')) or it|string }}
-
- {% if depth < max_depth %}
-
- {{ render_model(it, depth+1, max_depth) }}
-
- {% else %}
-
…max depth reached…
- {% endif %}
-
-
- {% endfor %}
-
-
-
- {% endif %}
-
- {% else %}
- {% set child = value %}
- {% set ident = [] %}
- {% for k in ['id','ghost_id','uuid','slug','name','title'] if k in child.__mapper__.c %}
- {% set v = (child|attr(k))|default('', true) %}
- {% do ident.append(k ~ '=' ~ v) %}
- {% endfor %}
-
{{ (ident|join(' • ')) or child|string }}
-
- {% if depth < max_depth %}
-
- {{ render_model(child, depth+1, max_depth) }}
-
- {% else %}
-
…max depth reached…
- {% endif %}
- {% endif %}
-
-
- {% endfor %}
-
-
- {% endif %}
-{%- endmacro %}
-
-
-
- Model: Post • Table: {{ original_post.__tablename__ }}
-
- {{ render_model(original_post, 0, 2) }}
-
-
diff --git a/browser/templates/_types/post_data/_nav.html b/browser/templates/_types/post_data/_nav.html
deleted file mode 100644
index f5c504d..0000000
--- a/browser/templates/_types/post_data/_nav.html
+++ /dev/null
@@ -1,2 +0,0 @@
-{% from 'macros/admin_nav.html' import placeholder_nav %}
-{{ placeholder_nav() }}
diff --git a/browser/templates/_types/post_data/_oob_elements.html b/browser/templates/_types/post_data/_oob_elements.html
deleted file mode 100644
index 32fd0c7..0000000
--- a/browser/templates/_types/post_data/_oob_elements.html
+++ /dev/null
@@ -1,28 +0,0 @@
-{% extends 'oob_elements.html' %}
-
-{# OOB elements for HTMX navigation - all elements that need updating #}
-
-{# Import shared OOB macros #}
-{% from '_types/root/_oob_menu.html' import mobile_menu with context %}
-
-
-{% block oobs %}
-
- {% from '_types/root/_n/macros.html' import oob_header with context %}
- {{oob_header('post-admin-header-child', 'post_data-header-child', '_types/post_data/header/_header.html')}}
-
- {% from '_types/post/admin/header/_header.html' import header_row with context %}
- {{ header_row(oob=True) }}
-{% endblock %}
-
-
-{% block mobile_menu %}
- {% include '_types/post_data/_nav.html' %}
-{% endblock %}
-
-
-{% block content %}
- {% include "_types/post_data/_main_panel.html" %}
-{% endblock %}
-
-
diff --git a/browser/templates/_types/post_data/header/_header.html b/browser/templates/_types/post_data/header/_header.html
deleted file mode 100644
index 27eaf6f..0000000
--- a/browser/templates/_types/post_data/header/_header.html
+++ /dev/null
@@ -1,15 +0,0 @@
-{% import 'macros/links.html' as links %}
-{% macro header_row(oob=False) %}
- {% call links.menu_row(id='post_data-row', oob=oob) %}
-
-
-
- {% endif %}
-{%- endmacro %}
-
-
-{% macro card_price(item) %}
-
-
-{# price block unchanged #}
- {% set _sym = {'GBP':'£','EUR':'€','USD':'$'} %}
- {% set sp_val = item.special_price or (item.oe_list_price and item.oe_list_price.special) %}
- {% set sp_raw = item.special_price_raw or (item.oe_list_price and item.oe_list_price.special_raw) %}
- {% set sp_cur = item.special_price_currency or (item.oe_list_price and item.oe_list_price.special_currency) %}
- {% set rp_val = item.regular_price or item.rrp or (item.oe_list_price and item.oe_list_price.rrp) %}
- {% set rp_raw = item.regular_price_raw or item.rrp_raw or (item.oe_list_price and item.oe_list_price.rrp_raw) %}
- {% set rp_cur = item.regular_price_currency or item.rrp_currency or (item.oe_list_price and item.oe_list_price.rrp_currency) %}
- {% set sp_str = sp_raw if sp_raw else ( (_sym.get(sp_cur, '') ~ ('%.2f'|format(sp_val))) if sp_val is number else (sp_val or '')) %}
- {% set rp_str = rp_raw if rp_raw else ( (_sym.get(rp_cur, '') ~ ('%.2f'|format(rp_val))) if rp_val is number else (rp_val or '')) %}
-