{# Resume content fieldset. Included by post/page edit.html only when kind=resume. Each section is a collapsible
; the repeating sections use the _repeating_field macro for drag / add / remove chrome. Client-side JS at the bottom of this file: - Generates stable IDs on new rows (crypto.randomUUID). - Wires drag-to-reorder via HTML5 DnD. - Keeps the Project "Linked position" dropdown in sync with the current Experience rows. - On form submit, walks the DOM and serialises all sections into the hidden resume_data input that POSTs to the server. The actual JSON shape it produces matches bragi.contrib.page.resume.ResumeData. Pydantic validation runs server-side; this JS is purely a form-to-JSON marshaller. #} {% from "admin/_repeating_field.html" import repeating_field %} {% set resume = resume_data_for_form %} {# flatpickr stylesheets — both files needed. The base stylesheet styles the calendar chrome (header, year-nav arrows, focus rings); the monthSelect plugin's own stylesheet sizes the month-button grid. Without the plugin stylesheet, the year-nav arrows sit on top of the Jan/Feb/Nov/Dec month buttons and clicking those cells changes the year instead of selecting the month. CDN pin matches the JS version (4.x). #}
Resume content {# Display options. Single boolean; serializeResumeData() picks it up from this checkbox at submit time. #} {# HEADER #}
Header
{% call(item, idx) repeating_field("header.profile_links", resume.header.profile_links, "+ Add link") %} {% endcall %}
{# HIGHLIGHTS (simple string list — uses repeating_field but body is just one input) #}
Highlights ({{ resume.highlights | length }})
{% call(item, idx) repeating_field("highlights", resume.highlights, "+ Add highlight") %} {# highlights are flat strings; use a synthetic 'text' field #} {% endcall %}
{# EXPERIENCE #}
Experience ({{ resume.experience | length }})
{% call(item, idx) repeating_field("experience", resume.experience, "+ Add experience") %} {% endcall %}
{# PROJECTS #}
Projects ({{ resume.projects | length }})
{% call(item, idx) repeating_field("projects", resume.projects, "+ Add project") %} {% endcall %}
{# EDUCATION #}
Education ({{ resume.education | length }})
{% call(item, idx) repeating_field("education", resume.education, "+ Add education") %} {% endcall %}
{# SKILLS #}
Skills ({{ resume.skills | length }} groups)
{% call(item, idx) repeating_field("skills", resume.skills, "+ Add skill group") %} {% endcall %}
{# CERTIFICATIONS #}
Certifications ({{ resume.certifications | length }})
{% call(item, idx) repeating_field("certifications", resume.certifications, "+ Add certification") %} {% endcall %}
{# LANGUAGES #}
Languages ({{ resume.languages | length }})
{% call(item, idx) repeating_field("languages", resume.languages, "+ Add language") %} {% endcall %}