diff --git a/shared b/shared index 65c4989..322ae48 160000 --- a/shared +++ b/shared @@ -1 +1 @@ -Subproject commit 65c4989d08b85a821a0932e4376f2ab088f50d0c +Subproject commit 322ae481eeb47418245e669c3585f6d2195656da diff --git a/templates/_types/calendar/_description.html b/templates/_types/calendar/_description.html new file mode 100644 index 0000000..0f04f3a --- /dev/null +++ b/templates/_types/calendar/_description.html @@ -0,0 +1,12 @@ +{% macro description(calendar, oob=False) %} +
+ {{ calendar.description or ''}} +
+ +{% endmacro %} \ No newline at end of file diff --git a/templates/_types/calendar/_oob_elements.html b/templates/_types/calendar/_oob_elements.html new file mode 100644 index 0000000..1447e24 --- /dev/null +++ b/templates/_types/calendar/_oob_elements.html @@ -0,0 +1,22 @@ +{% extends "oob_elements.html" %} +{# OOB elements for post admin page #} + + + + +{% block oobs %} + {% from '_types/root/_n/macros.html' import oob_header with context %} + {{oob_header('post-header-child', 'calendar-header-child', '_types/calendar/header/_header.html')}} + + {% from '_types/post/header/_header.html' import header_row with context %} + {{ header_row(oob=True) }} +{% endblock %} + + +{% block mobile_menu %} +{% include '_types/calendar/_nav.html' %} +{% endblock %} + +{% block content %} + {% include '_types/calendar/_main_panel.html' %} +{% endblock %} diff --git a/templates/_types/calendar/admin/_nav.html b/templates/_types/calendar/admin/_nav.html new file mode 100644 index 0000000..f5c504d --- /dev/null +++ b/templates/_types/calendar/admin/_nav.html @@ -0,0 +1,2 @@ +{% from 'macros/admin_nav.html' import placeholder_nav %} +{{ placeholder_nav() }} diff --git a/templates/_types/calendar/admin/_oob_elements.html b/templates/_types/calendar/admin/_oob_elements.html new file mode 100644 index 0000000..ec6244c --- /dev/null +++ b/templates/_types/calendar/admin/_oob_elements.html @@ -0,0 +1,25 @@ +{% extends 'oob_elements.html' %} + +{# OOB elements for calendar admin page #} + +{# Import shared OOB macros #} +{% from '_types/root/header/_oob.html' import root_header_start, root_header_end with context %} +{% 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('calendar-header-child', 'calendar-admin-header-child', '_types/calendar/admin/header/_header.html')}} + + {% from '_types/calendar/header/_header.html' import header_row with context %} + {{header_row(oob=True)}} +{% endblock %} + + +{% block mobile_menu %} + {% include '_types/calendar/admin/_nav.html' %} +{% endblock %} + +{% block content %} + {% include '_types/calendar/admin/_main_panel.html' %} +{% endblock %} diff --git a/templates/_types/calendar/admin/index.html b/templates/_types/calendar/admin/index.html new file mode 100644 index 0000000..c27d6d2 --- /dev/null +++ b/templates/_types/calendar/admin/index.html @@ -0,0 +1,24 @@ +{% extends '_types/calendar/index.html' %} +{% import 'macros/layout.html' as layout %} + +{% block calendar_header_child %} + {% from '_types/root/_n/macros.html' import header with context %} + {% call header() %} + {% from '_types/calendar/admin/header/_header.html' import header_row with context %} + {{ header_row() }} +
+ {% block calendar_admin_header_child %} + {% endblock %} +
+ {% endcall %} +{% endblock %} + + + +{% block _main_mobile_menu %} + {% include '_types/calendar/admin/_nav.html' %} +{% endblock %} + +{% block content %} + {% include '_types/calendar/admin/_main_panel.html' %} +{% endblock %} diff --git a/templates/_types/calendars/_nav.html b/templates/_types/calendars/_nav.html new file mode 100644 index 0000000..f5c504d --- /dev/null +++ b/templates/_types/calendars/_nav.html @@ -0,0 +1,2 @@ +{% from 'macros/admin_nav.html' import placeholder_nav %} +{{ placeholder_nav() }} diff --git a/templates/_types/calendars/_oob_elements.html b/templates/_types/calendars/_oob_elements.html new file mode 100644 index 0000000..6de3bea --- /dev/null +++ b/templates/_types/calendars/_oob_elements.html @@ -0,0 +1,28 @@ +{% extends 'oob_elements.html' %} + +{# OOB elements for HTMX navigation - all elements that need updating #} + +{% 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('post-admin-header-child', 'calendars-header-child', '_types/calendars/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/calendars/_nav.html' %} +{% endblock %} + + +{% block content %} + {% include "_types/calendars/_main_panel.html" %} +{% endblock %} + + diff --git a/templates/_types/cart/_mini.html b/templates/_types/cart/_mini.html new file mode 100644 index 0000000..a8255e4 --- /dev/null +++ b/templates/_types/cart/_mini.html @@ -0,0 +1,45 @@ +{% 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 %} +
+ + + +
+ {% else %} + + + + + + {{ _count }} + + + {% endif %} +
+{% endmacro %} diff --git a/templates/_types/day/_main_panel.html b/templates/_types/day/_main_panel.html new file mode 100644 index 0000000..0eea6f0 --- /dev/null +++ b/templates/_types/day/_main_panel.html @@ -0,0 +1,28 @@ +
+ + + + + + + + + + + + + {% for entry in day_entries %} + {% include '_types/day/_row.html' %} + {% else %} + + {% endfor %} + + + +
NameSlot/TimeStateCostTicketsActions
No entries yet.
+ +
+ {% include '_types/day/_add_button.html' %} +
+ +
diff --git a/templates/_types/day/_oob_elements.html b/templates/_types/day/_oob_elements.html new file mode 100644 index 0000000..812e6b0 --- /dev/null +++ b/templates/_types/day/_oob_elements.html @@ -0,0 +1,18 @@ +{% extends "oob_elements.html" %} + +{% block oobs %} + {% from '_types/root/_n/macros.html' import oob_header with context %} + {{oob_header('calendar-header-child', 'day-header-child', '_types/day/header/_header.html')}} + + {% from '_types/calendar/header/_header.html' import header_row with context %} + {{ header_row(oob=True) }} +{% endblock %} + + +{% block mobile_menu %} + {% include '_types/day/_nav.html' %} +{% endblock %} + +{% block content %} + {% include '_types/day/_main_panel.html' %} +{% endblock %} diff --git a/templates/_types/day/admin/_main_panel.html b/templates/_types/day/admin/_main_panel.html new file mode 100644 index 0000000..f5c504d --- /dev/null +++ b/templates/_types/day/admin/_main_panel.html @@ -0,0 +1,2 @@ +{% from 'macros/admin_nav.html' import placeholder_nav %} +{{ placeholder_nav() }} diff --git a/templates/_types/day/admin/_nav.html b/templates/_types/day/admin/_nav.html new file mode 100644 index 0000000..f5c504d --- /dev/null +++ b/templates/_types/day/admin/_nav.html @@ -0,0 +1,2 @@ +{% from 'macros/admin_nav.html' import placeholder_nav %} +{{ placeholder_nav() }} diff --git a/templates/_types/day/admin/_oob_elements.html b/templates/_types/day/admin/_oob_elements.html new file mode 100644 index 0000000..20986bf --- /dev/null +++ b/templates/_types/day/admin/_oob_elements.html @@ -0,0 +1,25 @@ +{% extends 'oob_elements.html' %} + +{# OOB elements for calendar admin page #} + +{# Import shared OOB macros #} +{% from '_types/root/header/_oob.html' import root_header_start, root_header_end with context %} +{% 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('day-header-child', 'day-admin-header-child', '_types/day/admin/header/_header.html')}} + + {% from '_types/calendar/header/_header.html' import header_row with context %} + {{header_row(oob=True)}} +{% endblock %} + + +{% block mobile_menu %} + {% include '_types/day/admin/_nav.html' %} +{% endblock %} + +{% block content %} + {% include '_types/day/admin/_main_panel.html' %} +{% endblock %} diff --git a/templates/_types/day/admin/index.html b/templates/_types/day/admin/index.html new file mode 100644 index 0000000..f4f37b5 --- /dev/null +++ b/templates/_types/day/admin/index.html @@ -0,0 +1,24 @@ +{% extends '_types/day/index.html' %} +{% import 'macros/layout.html' as layout %} +{% import 'macros/links.html' as links %} + + +{% block day_header_child %} + {% from '_types/root/_n/macros.html' import header with context %} + {% call header() %} + {% from '_types/day/admin/header/_header.html' import header_row with context %} + {{ header_row() }} +
+ {% block day_admin_header_child %} + {% endblock %} +
+ {% endcall %} +{% endblock %} + +{% block _main_mobile_menu %} + {% include '_types/day/admin/_nav.html' %} +{% endblock %} + +{% block content %} + {% include '_types/day/admin/_main_panel.html' %} +{% endblock %} diff --git a/templates/_types/day/index.html b/templates/_types/day/index.html new file mode 100644 index 0000000..655ee55 --- /dev/null +++ b/templates/_types/day/index.html @@ -0,0 +1,18 @@ +{% extends '_types/calendar/index.html' %} + +{% block calendar_header_child %} + {% from '_types/root/_n/macros.html' import index_row with context %} + {% call index_row('day-header-child', '_types/day/header/_header.html') %} + {% block day_header_child %} + {% endblock %} + {% endcall %} +{% endblock %} + +{% block _main_mobile_menu %} + {% include '_types/day/_nav.html' %} +{% endblock %} + + +{% block content %} + {% include '_types/day/_main_panel.html' %} +{% endblock %} diff --git a/templates/_types/entry/_oob_elements.html b/templates/_types/entry/_oob_elements.html new file mode 100644 index 0000000..8981fa1 --- /dev/null +++ b/templates/_types/entry/_oob_elements.html @@ -0,0 +1,18 @@ +{% extends "oob_elements.html" %} + +{% block oobs %} + {% from '_types/root/_n/macros.html' import oob_header with context %} + {{oob_header('day-header-child', 'entry-header-child', '_types/entry/header/_header.html')}} + + {% from '_types/day/header/_header.html' import header_row with context %} + {{ header_row(oob=True) }} +{% endblock %} + + +{% block mobile_menu %} + {% include '_types/entry/_nav.html' %} +{% endblock %} + +{% block content %} + {% include '_types/entry/_main_panel.html' %} +{% endblock %} diff --git a/templates/_types/entry/_optioned.html b/templates/_types/entry/_optioned.html new file mode 100644 index 0000000..ba23391 --- /dev/null +++ b/templates/_types/entry/_optioned.html @@ -0,0 +1,9 @@ + +{% include '_types/entry/_options.html' %} +
+ {% include '_types/entry/_title.html' %} +
+ +
+ {% include '_types/entry/_state.html' %} +
\ No newline at end of file diff --git a/templates/_types/entry/_state.html b/templates/_types/entry/_state.html new file mode 100644 index 0000000..b67254a --- /dev/null +++ b/templates/_types/entry/_state.html @@ -0,0 +1,15 @@ +{% if entry.state %} + + {{ entry.state|capitalize }} + + {% endif %} \ No newline at end of file diff --git a/templates/_types/entry/_times.html b/templates/_types/entry/_times.html new file mode 100644 index 0000000..3543fe4 --- /dev/null +++ b/templates/_types/entry/_times.html @@ -0,0 +1,5 @@ +{% from 'macros/date.html' import t %} +
+ {{ t(entry.start_at) }} + {% if entry.end_at %} → {{ t(entry.end_at) }}{% endif %} +
\ No newline at end of file diff --git a/templates/_types/entry/_title.html b/templates/_types/entry/_title.html new file mode 100644 index 0000000..3c1dc63 --- /dev/null +++ b/templates/_types/entry/_title.html @@ -0,0 +1,3 @@ + + {{ entry.name }} + {% include '_types/entry/_state.html' %} diff --git a/templates/_types/entry/admin/_main_panel.html b/templates/_types/entry/admin/_main_panel.html new file mode 100644 index 0000000..f5c504d --- /dev/null +++ b/templates/_types/entry/admin/_main_panel.html @@ -0,0 +1,2 @@ +{% from 'macros/admin_nav.html' import placeholder_nav %} +{{ placeholder_nav() }} diff --git a/templates/_types/entry/admin/_nav_posts_oob.html b/templates/_types/entry/admin/_nav_posts_oob.html new file mode 100644 index 0000000..25ef1f1 --- /dev/null +++ b/templates/_types/entry/admin/_nav_posts_oob.html @@ -0,0 +1,31 @@ +{# OOB swap for entry posts nav when posts are associated/disassociated #} +{% import 'macros/links.html' as links %} + +{# Associated Posts - vertical on mobile, horizontal with arrows on desktop #} +{% if entry_posts %} +
+ {% from 'macros/scrolling_menu.html' import scrolling_menu with context %} + {% call(entry_post) scrolling_menu('entry-posts-container', entry_posts) %} + + {% if entry_post.feature_image %} + {{ entry_post.title }} + {% else %} +
+ {% endif %} +
+
{{ entry_post.title }}
+
+
+ {% endcall %} +
+{% else %} + {# Empty placeholder to remove nav posts when all are disassociated #} +
+{% endif %} diff --git a/templates/_types/entry/admin/_oob_elements.html b/templates/_types/entry/admin/_oob_elements.html new file mode 100644 index 0000000..bcf2255 --- /dev/null +++ b/templates/_types/entry/admin/_oob_elements.html @@ -0,0 +1,25 @@ +{% extends 'oob_elements.html' %} + +{# OOB elements for calendar admin page #} + +{# Import shared OOB macros #} +{% from '_types/root/header/_oob.html' import root_header_start, root_header_end with context %} +{% 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('entry-header-child', 'entry-admin-header-child', '_types/entry/admin/header/_header.html')}} + + {% from '_types/entry/header/_header.html' import header_row with context %} + {{header_row(oob=True)}} +{% endblock %} + + +{% block mobile_menu %} + {% include '_types/entry/admin/_nav.html' %} +{% endblock %} + +{% block content %} + {% include '_types/entry/admin/_main_panel.html' %} +{% endblock %} diff --git a/templates/_types/entry/admin/index.html b/templates/_types/entry/admin/index.html new file mode 100644 index 0000000..caa100c --- /dev/null +++ b/templates/_types/entry/admin/index.html @@ -0,0 +1,24 @@ +{% extends '_types/entry/index.html' %} +{% import 'macros/layout.html' as layout %} +{% import 'macros/links.html' as links %} + + +{% block entry_header_child %} + {% from '_types/root/_n/macros.html' import header with context %} + {% call header() %} + {% from '_types/entry/admin/header/_header.html' import header_row with context %} + {{ header_row() }} +
+ {% block entry_admin_header_child %} + {% endblock %} +
+ {% endcall %} +{% endblock %} + +{% block _main_mobile_menu %} + {% include '_types/entry/admin/_nav.html' %} +{% endblock %} + +{% block content %} + {% include '_types/entry/admin/_main_panel.html' %} +{% endblock %} diff --git a/templates/_types/entry/index.html b/templates/_types/entry/index.html new file mode 100644 index 0000000..a980f46 --- /dev/null +++ b/templates/_types/entry/index.html @@ -0,0 +1,20 @@ +{% extends '_types/day/index.html' %} + +{% block day_header_child %} + {% from '_types/root/_n/macros.html' import index_row with context %} + {% call index_row('entry-header-child', '_types/entry/header/_header.html') %} + {% block entry_header_child %} + {% endblock %} + {% endcall %} +{% endblock %} + + +{% block _main_mobile_menu %} + {% include '_types/entry/_nav.html' %} +{% endblock %} + + + +{% block content %} +{% include '_types/entry/_main_panel.html' %} +{% endblock %} \ No newline at end of file diff --git a/templates/_types/post/admin/_associated_entries.html b/templates/_types/post/admin/_associated_entries.html new file mode 100644 index 0000000..d9fe853 --- /dev/null +++ b/templates/_types/post/admin/_associated_entries.html @@ -0,0 +1,50 @@ +
+

Associated Entries

+ {% if associated_entry_ids %} +
+ {% 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.
+ {% endif %} +
diff --git a/templates/_types/post/header/_header.html b/templates/_types/post/header/_header.html new file mode 100644 index 0000000..143e79d --- /dev/null +++ b/templates/_types/post/header/_header.html @@ -0,0 +1,28 @@ +{% import 'macros/links.html' as links %} +{% macro header_row(oob=False) %} + {% call links.menu_row(id='post-row', oob=oob) %} + {% call links.link(url_for('blog.post.post_detail', slug=post.slug), hx_select_search ) %} + {% if post.feature_image %} + + {% endif %} + + {{ post.title | truncate(160, True, '…') }} + + {% endcall %} + {% call links.desktop_nav() %} + {% if page_cart_count is defined and page_cart_count > 0 %} + + + {{ page_cart_count }} + + {% endif %} + {% include '_types/post/_nav.html' %} + {% endcall %} + {% endcall %} +{% endmacro %} \ No newline at end of file diff --git a/templates/_types/post_entries/_nav.html b/templates/_types/post_entries/_nav.html new file mode 100644 index 0000000..f5c504d --- /dev/null +++ b/templates/_types/post_entries/_nav.html @@ -0,0 +1,2 @@ +{% from 'macros/admin_nav.html' import placeholder_nav %} +{{ placeholder_nav() }} diff --git a/templates/_types/slot/__description.html b/templates/_types/slot/__description.html new file mode 100644 index 0000000..7897fd2 --- /dev/null +++ b/templates/_types/slot/__description.html @@ -0,0 +1,13 @@ +{% macro description(slot, oob=False) %} +
+ {{ slot.description or ''}} +
+ +{% endmacro %} diff --git a/templates/_types/slot/_description.html b/templates/_types/slot/_description.html new file mode 100644 index 0000000..32e28e6 --- /dev/null +++ b/templates/_types/slot/_description.html @@ -0,0 +1,5 @@ +

+ {% if slot.description %} + {{ slot.description }} + {% endif %} +

diff --git a/templates/_types/slot/_oob_elements.html b/templates/_types/slot/_oob_elements.html new file mode 100644 index 0000000..3b82170 --- /dev/null +++ b/templates/_types/slot/_oob_elements.html @@ -0,0 +1,15 @@ +{% extends "oob_elements.html" %} + +{% block oobs %} + {% from '_types/root/_n/macros.html' import oob_header with context %} + {{oob_header('slots-header-child', 'slot-header-child', '_types/slot/header/_header.html')}} + + {% from '_types/slots/header/_header.html' import header_row with context %} + {{ header_row(oob=True) }} +{% endblock %} + + + +{% block content %} + {% include '_types/slot/_main_panel.html' %} +{% endblock %} diff --git a/templates/_types/slot/index.html b/templates/_types/slot/index.html new file mode 100644 index 0000000..265be24 --- /dev/null +++ b/templates/_types/slot/index.html @@ -0,0 +1,20 @@ +{% extends '_types/slots/index.html' %} +{% import 'macros/layout.html' as layout %} + + +{% block slots_header_child %} + {% from '_types/root/_n/macros.html' import index_row with context %} + {% call index_row('slot-header-child', '_types/slot/header/_header.html') %} + {% block slot_header_child %} + {% endblock %} + {% endcall %} +{% endblock %} + + +{% block _main_mobile_menu %} + {#% include '_types/slot/_nav.html' %#} +{% endblock %} + +{% block content %} + {% include '_types/slot/_main_panel.html' %} +{% endblock %} diff --git a/templates/_types/slots/_main_panel.html b/templates/_types/slots/_main_panel.html new file mode 100644 index 0000000..a2ac263 --- /dev/null +++ b/templates/_types/slots/_main_panel.html @@ -0,0 +1,26 @@ +
+ + + + + + + + + + + + + {% for s in slots %} + {% include '_types/slots/_row.html' %} + {% else %} + + {% endfor %} + +
NameFlexibleDaysTimeCostActions
No slots yet.
+ + +
+ {% include '_types/slots/_add_button.html' %} +
+
diff --git a/templates/_types/slots/_oob_elements.html b/templates/_types/slots/_oob_elements.html new file mode 100644 index 0000000..acf0d05 --- /dev/null +++ b/templates/_types/slots/_oob_elements.html @@ -0,0 +1,15 @@ +{% extends "oob_elements.html" %} + +{% block oobs %} + {% from '_types/root/_n/macros.html' import oob_header with context %} + {{oob_header('calendar-header-child', 'slots-header-child', '_types/slots/header/_header.html')}} + + {% from '_types/calendar/header/_header.html' import header_row with context %} + {{ header_row(oob=True) }} +{% endblock %} + + + +{% block content %} + {% include '_types/slots/_main_panel.html' %} +{% endblock %} diff --git a/templates/_types/slots/index.html b/templates/_types/slots/index.html new file mode 100644 index 0000000..453ba5f --- /dev/null +++ b/templates/_types/slots/index.html @@ -0,0 +1,19 @@ +{% extends '_types/calendar/index.html' %} + +{% block calendar_header_child %} + {% from '_types/root/_n/macros.html' import index_row with context %} + {% call index_row('slots-header-child', '_types/slots/header/_header.html') %} + {% block slots_header_child %} + {% endblock %} + {% endcall %} +{% endblock %} + +{% block _main_mobile_menu %} + {#% include '_types/calendar/_nav.html' %#} +{% endblock %} + + + +{% block content %} + {% include '_types/slots/_main_panel.html' %} +{% endblock %} \ No newline at end of file diff --git a/templates/_types/ticket_type/_nav.html b/templates/_types/ticket_type/_nav.html new file mode 100644 index 0000000..f5c504d --- /dev/null +++ b/templates/_types/ticket_type/_nav.html @@ -0,0 +1,2 @@ +{% from 'macros/admin_nav.html' import placeholder_nav %} +{{ placeholder_nav() }} diff --git a/templates/_types/ticket_type/_oob_elements.html b/templates/_types/ticket_type/_oob_elements.html new file mode 100644 index 0000000..824e62a --- /dev/null +++ b/templates/_types/ticket_type/_oob_elements.html @@ -0,0 +1,18 @@ +{% extends "oob_elements.html" %} + +{% block oobs %} + {% from '_types/root/_n/macros.html' import oob_header with context %} + {{oob_header('ticket_types-header-child', 'ticket_type-header-child', '_types/ticket_type/header/_header.html')}} + + {% from '_types/ticket_types/header/_header.html' import header_row with context %} + {{ header_row(oob=True) }} +{% endblock %} + + +{% block mobile_menu %} + {% include '_types/ticket_type/_nav.html' %} +{% endblock %} + +{% block content %} + {% include '_types/ticket_type/_main_panel.html' %} +{% endblock %} diff --git a/templates/_types/ticket_type/index.html b/templates/_types/ticket_type/index.html new file mode 100644 index 0000000..245992c --- /dev/null +++ b/templates/_types/ticket_type/index.html @@ -0,0 +1,19 @@ +{% extends '_types/ticket_types/index.html' %} +{% import 'macros/layout.html' as layout %} + +{% block ticket_types_header_child %} + {% from '_types/root/_n/macros.html' import index_row with context %} + {% call index_row('ticket_types-header-child', '_types/ticket_type/header/_header.html') %} + {% block ticket_type_header_child %} + {% endblock %} + {% endcall %} +{% endblock %} + + +{% block _main_mobile_menu %} + {#% include '_types/ticket_type/_nav.html' %#} +{% endblock %} + +{% block content %} + {% include '_types/ticket_type/_main_panel.html' %} +{% endblock %} diff --git a/templates/_types/ticket_types/_main_panel.html b/templates/_types/ticket_types/_main_panel.html new file mode 100644 index 0000000..2afaa7a --- /dev/null +++ b/templates/_types/ticket_types/_main_panel.html @@ -0,0 +1,24 @@ +
+ + + + + + + + + + + {% for tt in ticket_types %} + {% include '_types/ticket_types/_row.html' %} + {% else %} + + {% endfor %} + +
NameCostCountActions
No ticket types yet.
+ + +
+ {% include '_types/ticket_types/_add_button.html' %} +
+
diff --git a/templates/_types/ticket_types/_nav.html b/templates/_types/ticket_types/_nav.html new file mode 100644 index 0000000..f5c504d --- /dev/null +++ b/templates/_types/ticket_types/_nav.html @@ -0,0 +1,2 @@ +{% from 'macros/admin_nav.html' import placeholder_nav %} +{{ placeholder_nav() }} diff --git a/templates/_types/ticket_types/_oob_elements.html b/templates/_types/ticket_types/_oob_elements.html new file mode 100644 index 0000000..a746f17 --- /dev/null +++ b/templates/_types/ticket_types/_oob_elements.html @@ -0,0 +1,18 @@ +{% extends "oob_elements.html" %} + +{% block oobs %} + {% from '_types/root/_n/macros.html' import oob_header with context %} + {{oob_header('entry-admin-header-child', 'ticket_types-header-child', '_types/ticket_types/header/_header.html')}} + + {% from '_types/entry/admin/header/_header.html' import header_row with context %} + {{ header_row(oob=True) }} +{% endblock %} + + +{% block mobile_menu %} + {% include '_types/ticket_types/_nav.html' %} +{% endblock %} + +{% block content %} + {% include '_types/ticket_types/_main_panel.html' %} +{% endblock %} diff --git a/templates/_types/ticket_types/index.html b/templates/_types/ticket_types/index.html new file mode 100644 index 0000000..9d0362a --- /dev/null +++ b/templates/_types/ticket_types/index.html @@ -0,0 +1,20 @@ +{% extends '_types/entry/admin/index.html' %} + +{% block entry_admin_header_child %} + {% from '_types/root/_n/macros.html' import index_row with context %} + {% call index_row('ticket_type-header-child', '_types/ticket_types/header/_header.html') %} + {% block ticket_types_header_child %} + {% endblock %} + {% endcall %} +{% endblock %} + + +{% block _main_mobile_menu %} + {% include '_types/ticket_types/_nav.html' %} +{% endblock %} + + + +{% block content %} + {% include '_types/ticket_types/_main_panel.html' %} +{% endblock %} diff --git a/templates/macros/date.html b/templates/macros/date.html new file mode 100644 index 0000000..5954f28 --- /dev/null +++ b/templates/macros/date.html @@ -0,0 +1,7 @@ +{% macro dt(d) -%} +{{ d.astimezone().strftime('%-d %b %Y, %H:%M') if d.tzinfo else d.strftime('%-d %b %Y, %H:%M') }} +{%- endmacro %} + +{% macro t(d) -%} +{{ d.astimezone().strftime('%H:%M') if d.tzinfo else d.strftime('%H:%M') }} +{%- endmacro %}