{% extends "base.html" %}
{% from "macros/url.html" import prepend_bu_prefix %}
{#
Base template for create/edit form pages.
Follows REST conventions: /resource/new (create), /resource/ (edit/delete)
Adapted for Bootstrap 3.
Required variables:
- title: Page heading
- is_update: bool - Edit mode (true) or create mode (false)
Optional variables (have sensible defaults):
- form_action: Defaults to list_url for create, request.path for edit
- form_method: Defaults to POST for create, PUT for edit
- success_url: Defaults to list_url (parent path)
- cancel_url: Defaults to success_url
- info_message: Optional info alert
- use_form_handler: Set false for traditional POST forms
Blocks:
- form_fields: The form inputs (required)
- form_buttons: Override default buttons
- extra_content: Content after form
#}
{# Compute list URL (parent path) - works for both /new and / #}
{% set _list_url = prepend_bu_prefix(request.path.rsplit('/', 1)[0] + '/') %}
{# is_update should be passed directly from backend #}
{% set _is_update = is_update | default(false) %}
{# Apply defaults based on conventions #}
{% set _form_action = form_action | default(_list_url if not _is_update else prepend_bu_prefix(request.path)) %}
{% set _form_method = form_method | default('PUT' if _is_update else 'POST') %}
{% set _success_url = success_url | default(_list_url) %}
{% set _cancel_url = cancel_url | default(_success_url) %}
{% block head_css %}
{{ super() }}
{% endblock %}
{% block body %}
{# Error alert - shown by JS on form errors, or by server on page load #}