code: widget implementation, almost there

This commit is contained in:
2024-02-02 21:48:41 +01:00
parent e8ddfb25fa
commit 6e0a71b7de
18 changed files with 482 additions and 127 deletions

View File

@@ -1,26 +1,20 @@
{% extends base|none("admin/base.jinja") %}
{% macro input(name, value="", type="text") -%}
<input type="{{ type }}" name="{{ name }}" value="{{ value }}" placeholder="">
{%- endmacro %}
{% block content %}
{% from "/admin/items/items.jinja" import field_widget %}
<div class="ui container">
<h1>Create {{item_model.name}} in {{item_info.name}}</h1>
<form action="{{item_model.add_url}}" method="POST" class="ui form">
<!--noformat-->
{% set fields = item_info.fields %}
{% for field in fields %}
{% if item %}
{% set field_value = item.fields[field]|none("") %}
{% else %}
{% set field_value = "" %}
{% endif %}
<div class="inline field">
<label>{{field|capitalize}}</label>
{{ input(field, field_value) }}
</div>
{% for field_name, field_defs in fields %}
{% if item %}
{% set field_value = item.fields[field_name]|none("") %}
{% else %}
{% set field_value = "" %}
{% endif %}
{{ field_widget(field_name, field_defs, field_value) }}
{% endfor %}
<button class="ui button" type="submit">Create</button>
</form>

View File

@@ -3,9 +3,9 @@
{% block content %}
{% if item %}
{{item.fields}}
{{item.fields}}
{% else %}
No Item found.
No Item found.
{% endif %}
{% endblock content %}

View File

@@ -0,0 +1,15 @@
<!--noformat-->
{% macro field_widget(name, definitions, value) -%}
{% set field = {
'type': definitions.type,
'name': name,
'value': value,
'placeholder': definitions.placeholder,
'label': definitions.label,
'readonly': definitions.readonly,
'required': definitions.required,
'options': definitions.options,
}
%}
{% include definitions.widget %}
{%- endmacro %}