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

@@ -35,12 +35,12 @@
{% if has_permission %}
<div id="user-tools">
{% block welcome_msg %}
{{ translate('Welcome,') }}
{{ translate('Welcome,') }}
<strong>{{ user.get_short_name or user.get_username }}</strong>.
{% endblock %}
{% block userlinks %}
{% if site_url %}
<a href="{{ site_url }}">{{ translate('View site') }}</a> /
<a href="{{ site_url }}">{{ translate('View site') }}</a> /
{% endif %}
{% if user.is_active and user.is_staff %}
{% set docsroot = url('django-admindocs-docroot') %}
@@ -70,6 +70,12 @@
<div class="breadcrumbs">
<a href="{{ url( 'admin:index') }}">{{ translate('Home') }}</a>
{% if title %} &rsaquo; {{ title }}{% endif %}
<div>
{% for x in y %}
{% for a in b %}
{% endfor %}
{% endfor %}
</div>
</div>
{% endblock %}
</nav>
@@ -79,7 +85,7 @@
<div class="main" id="main">
{% if not is_popup and is_nav_sidebar_enabled %}
{% block nav_sidebar %}
{% include "admin/nav_sidebar.html" %}
{% include "admin/nav_sidebar.html" %}
{% endblock %}
{% endif %}
<main id="content-start" class="content" tabindex="-1">

View File

@@ -2,4 +2,9 @@
{% block content %}
{% include "admin/dashboard.jinja" %}
<div>
Some text
another text
Third text
</div>
{% endblock %}

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 %}

View File

@@ -0,0 +1,4 @@
<div class="inline field">
<label>{{field.label or field.name|capitalize}}</label>
<input type="{{ field.type|none('text') }}" name="{{ field.name }}" value="{{ field.value }}" placeholder="{{field.placeholder}}">
</div>

View File

@@ -0,0 +1,12 @@
<div class="inline field">
<label>{{ field.label or field.name|capitalize }}</label>
<!--noformat-->
<textarea name="{{ field.name }}" {% if field.placeholder %}placeholder="{{ field.placeholder }}"{% endif %}
{% for field_name in ['rows', 'cols', 'maxlength', 'minlength', 'wrap', 'autofocus'] %}
{% if field_name in field.options %}{{field_name}}="{{ field.options[field_name] }}" {% endif %}
{% endfor %}
{% if field.required %}required{% endif %}
{% if field.readonly %}readonly{% endif %}
{% if "disabled" in field.options and field.options.disabled %}disabled{% endif %}
>{{ field.value }}</textarea>
</div>