new forms
This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
{% macro header_with_save_button(heading) %}
|
||||
<div class="container">
|
||||
<div class="cols">
|
||||
<div class="col col-9">
|
||||
<h1>{{heading}}</h1>
|
||||
</div>
|
||||
<div class="col col-3 text-right">
|
||||
<button type="submit" class="btn btn-primary">
|
||||
<i class="icon icon-check"></i>Save
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endmacro input %}
|
||||
|
||||
{% macro text(name, label, value) %}
|
||||
<div class="form-group cols">
|
||||
<div class="col-3 pl-2">
|
||||
<label class="form-label" for="{{name}}">{{label}}</label>
|
||||
</div>
|
||||
<div class="col-9 pr-2">
|
||||
<input type="text" class="form-input input-inline" id="{{name}}" name="{{name}}" value="{{value}}" autocomplete="off">
|
||||
</div>
|
||||
</div>
|
||||
{% endmacro input %}
|
||||
|
||||
{% macro checkbox(name, label, checked) %}
|
||||
<div class="form-group cols">
|
||||
<div class="col-3 pl-2">
|
||||
<label class="form-label" for="{{name}}">{{label}}</label>
|
||||
</div>
|
||||
<div class="col-9 pr-2">
|
||||
<label class="form-switch input-inline">
|
||||
<input type="checkbox" id="{{name}}" name="{{name}}" value="true" autocomplete="off" {{opt(checked=checked)}}>
|
||||
<i class="form-icon"></i>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
{% endmacro input %}
|
||||
@@ -7,19 +7,27 @@
|
||||
<link rel="stylesheet" href="/static/style.css">
|
||||
</head>
|
||||
<body>
|
||||
<nav class="top-nav">
|
||||
{%- block nav -%}{%- endblock -%}
|
||||
</nav>
|
||||
<div class="content">
|
||||
<header class="navbar mb-2 mt-2">
|
||||
<section class="navbar-section">
|
||||
<a href="/" class="navbar-brand text-bold mr-2">
|
||||
Yopa
|
||||
</a>
|
||||
{%- block nav -%}{%- endblock -%}
|
||||
</section>
|
||||
<section class="navbar-section">
|
||||
YOPA is the best
|
||||
</section>
|
||||
</header>
|
||||
|
||||
<div class="content">
|
||||
{%- if flash_error -%}
|
||||
<div class="toast error">
|
||||
<div class="toast toast-error mb-2">
|
||||
{{ flash_error }}
|
||||
</div>
|
||||
{%- endif -%}
|
||||
|
||||
{%- if flash_success -%}
|
||||
<div class="toast success">
|
||||
<div class="toast toast-success mb-2">
|
||||
{{ flash_success }}
|
||||
</div>
|
||||
{%- endif -%}
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
{%- if prop.default -%}
|
||||
, default: "{{prop.default | print_typed_value}}"
|
||||
{%- endif -%}
|
||||
{%- if prop.unique %}, UNIQUE{% endif %}
|
||||
{%- if prop.optional %}, OPTIONAL{% endif %}
|
||||
{%- if prop.multiple %}, MULTIPLE{% endif %}
|
||||
<a href="/model/property/update/{{prop.id}}">Edit property</a> ·
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
{%- endblock %}
|
||||
|
||||
{% block nav -%}
|
||||
<a href="/">Home</a>
|
||||
<a href="/" class="btn btn-link"><i class="icon icon-home"></i>Home</a>
|
||||
{%- endblock %}
|
||||
|
||||
{% block content -%}
|
||||
|
||||
@@ -1,27 +1,22 @@
|
||||
{% extends "_layout" %}
|
||||
{% import "_form_macros" as form %}
|
||||
|
||||
{% block title -%}
|
||||
Define object
|
||||
{%- endblock %}
|
||||
|
||||
{% block nav -%}
|
||||
<a href="/">Home</a>
|
||||
<a href="/" class="btn btn-link"><i class="icon icon-home"></i>Home</a>
|
||||
{%- endblock %}
|
||||
|
||||
{% block content -%}
|
||||
|
||||
<h1>Define new object model</h1>
|
||||
|
||||
<form action="/model/object/create" method="POST">
|
||||
<table>
|
||||
<tr>
|
||||
<th><label for="name">Name:</label></th>
|
||||
<td><input type="text" id="name" name="name" value="{{old.name}}" autocomplete="off">
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
{{ form::header_with_save_button(heading="Define new object model") }}
|
||||
|
||||
<input type="submit" value="Save">
|
||||
<div class="form-horizontal container">
|
||||
{{ form::text(name="name", label="Name", value=old.name) }}
|
||||
</div>
|
||||
</form>
|
||||
|
||||
{%- endblock %}
|
||||
|
||||
@@ -1,38 +1,36 @@
|
||||
{% extends "_layout" %}
|
||||
{% import "_form_macros" as form %}
|
||||
|
||||
{% block title -%}
|
||||
Edit object model
|
||||
{%- endblock %}
|
||||
|
||||
{% block nav -%}
|
||||
<a href="/">Home</a>
|
||||
<a href="/" class="btn btn-link"><i class="icon icon-home"></i>Home</a>
|
||||
{%- endblock %}
|
||||
|
||||
{% block content -%}
|
||||
|
||||
<h1>Edit object model {{ model.name }}</h1>
|
||||
|
||||
<form action="/model/object/update/{{ model.id }}" method="POST">
|
||||
<table>
|
||||
<tr>
|
||||
<th><label for="name">Name:</label></th>
|
||||
<td><input type="text" id="name" name="name" value="{{ model.name }}" autocomplete="off">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><label for="name_property">Name property:</label></th>
|
||||
<td>
|
||||
<select name="name_property" id="name_property" autocomplete="off">
|
||||
{{ form::header_with_save_button(heading="Edit object model "~model.name) }}
|
||||
|
||||
<div class="form-horizontal container">
|
||||
{{ form::text(name="name", label="Name", value=model.name) }}
|
||||
|
||||
<div class="form-group cols">
|
||||
<div class="col-3 pl-2">
|
||||
<label class="form-label" for="name_property">Name property</label>
|
||||
</div>
|
||||
<div class="col-9 pr-2">
|
||||
<select name="name_property" class="form-select input-inline" id="name_property" autocomplete="off">
|
||||
<option value=""></option>
|
||||
{% for p in properties %}
|
||||
<option value="{{ p.id }}" {{selected(val=old.name_property, opt=p.id)}}>{{ p.name }}</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<input type="submit" value="Save">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
{%- endblock %}
|
||||
|
||||
@@ -1,56 +1,44 @@
|
||||
{% extends "_layout" %}
|
||||
{% import "_form_macros" as form %}
|
||||
|
||||
{% block title -%}
|
||||
Define property
|
||||
{%- endblock %}
|
||||
|
||||
{% block nav -%}
|
||||
<a href="/">Home</a>
|
||||
<a href="/" class="btn btn-link"><i class="icon icon-home"></i>Home</a>
|
||||
{%- endblock %}
|
||||
|
||||
{% block content -%}
|
||||
|
||||
{# The parent can be either object or relation model #}
|
||||
<h1>Add new property to {{object.describe}}</h1>
|
||||
|
||||
<form action="/model/property/create" method="POST">
|
||||
{{ form::header_with_save_button(heading="Add new property to "~object.describe) }}
|
||||
|
||||
<input type="hidden" name="object" value="{{object.id}}">
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th><label for="name">Name:</label></th>
|
||||
<td><input type="text" id="name" name="name" value="{{old.name}}" autocomplete="off"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><label for="unique">Unique:</label></th>
|
||||
<td><input type="checkbox" name="unique" id="unique" value="true" {{opt(checked=old.unique)}} autocomplete="off"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><label for="optional">Optional:</label></th>
|
||||
<td><input type="checkbox" name="optional" id="optional" value="true" {{opt(checked=old.optional)}} autocomplete="off"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><label for="multiple">Multiple:</label></th>
|
||||
<td><input type="checkbox" name="multiple" id="multiple" value="true" {{opt(checked=old.multiple)}} autocomplete="off"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><label for="data_type">Type:</label></th>
|
||||
<td>
|
||||
<select name="data_type" id="data_type" autocomplete="off">
|
||||
<div class="form-horizontal container">
|
||||
{{ form::text(name="name", label="Name", value=old.name) }}
|
||||
|
||||
{{ form::checkbox(name="unique", label="Unique", checked=old.unique) }}
|
||||
{{ form::checkbox(name="optional", label="Optional", checked=old.optional) }}
|
||||
{{ form::checkbox(name="multiple", label="Multiple", checked=old.multiple) }}
|
||||
|
||||
<div class="form-group cols">
|
||||
<div class="col-3 pl-2">
|
||||
<label class="form-label" for="data_type">Data type</label>
|
||||
</div>
|
||||
<div class="col-9 pr-2">
|
||||
<select name="data_type" class="form-select input-inline" id="data_type" autocomplete="off">
|
||||
<option value="String" {{selected(opt="String",val=old.data_type)}}>String</option>
|
||||
<option value="Integer" {{selected(opt="Integer",val=old.data_type)}}>Integer</option>
|
||||
<option value="Decimal" {{selected(opt="Decimal",val=old.data_type)}}>Decimal</option>
|
||||
<option value="Boolean" {{selected(opt="Boolean",val=old.data_type)}}>Boolean</option>
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><label for="default">Default:</label></th>
|
||||
<td><input type="text" id="default" name="default" value="{{old.default}}" autocomplete="off"></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<input type="submit" value="Save">
|
||||
{{ form::text(name="default", label="Default", value=old.default) }}
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<script>
|
||||
|
||||
@@ -1,62 +1,42 @@
|
||||
{% extends "_layout" %}
|
||||
{% import "_form_macros" as form %}
|
||||
|
||||
{% block title -%}
|
||||
Edit property
|
||||
{%- endblock %}
|
||||
|
||||
{% block nav -%}
|
||||
<a href="/">Home</a>
|
||||
<a href="/" class="btn btn-link"><i class="icon icon-home"></i>Home</a>
|
||||
{%- endblock %}
|
||||
|
||||
{% block content -%}
|
||||
|
||||
<h1>Edit property {{model.name}}</h1>
|
||||
|
||||
<form action="/model/property/update/{{model.id}}" method="POST">
|
||||
{{ form::header_with_save_button(heading="Edit property "~model.name) }}
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th><label for="name">Name:</label></th>
|
||||
<td><input type="text" id="name" name="name" value="{{model.name}}" autocomplete="off"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><label for="unique">Unique:</label></th>
|
||||
<td>
|
||||
<input type="checkbox" name="unique" id="unique" value="true" {{opt(checked=model.unique)}} autocomplete="off">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><label for="optional">Optional:</label></th>
|
||||
<td>
|
||||
<input type="checkbox" name="optional" id="optional" value="true" {{opt(checked=model.optional)}} autocomplete="off">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><label for="multiple">Multiple:</label></th>
|
||||
<td>
|
||||
<input type="checkbox" name="multiple" id="multiple" value="true" {{opt(checked=model.multiple)}} autocomplete="off">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><label for="data_type">Type:</label></th>
|
||||
<td>
|
||||
<select name="data_type" id="data_type" autocomplete="off">
|
||||
<option value="String" {{selected(val=model.data_type, opt="String")}}>String</option>
|
||||
<option value="Integer" {{selected(val=model.data_type, opt="Integer")}}>Integer</option>
|
||||
<option value="Decimal" {{selected(val=model.data_type, opt="Decimal")}}>Decimal</option>
|
||||
<option value="Boolean" {{selected(val=model.data_type, opt="Boolean")}}>Boolean</option>
|
||||
<div class="form-horizontal container">
|
||||
{{ form::text(name="name", label="Name", value=model.name) }}
|
||||
|
||||
{{ form::checkbox(name="unique", label="Unique", checked=model.unique) }}
|
||||
{{ form::checkbox(name="optional", label="Optional", checked=model.optional) }}
|
||||
{{ form::checkbox(name="multiple", label="Multiple", checked=model.multiple) }}
|
||||
|
||||
<div class="form-group cols">
|
||||
<div class="col-3 pl-2">
|
||||
<label class="form-label" for="data_type">Data type</label>
|
||||
</div>
|
||||
<div class="col-9 pr-2">
|
||||
<select name="data_type" class="form-select input-inline" id="data_type" autocomplete="off">
|
||||
<option value="String" {{selected(opt="String",val=model.data_type)}}>String</option>
|
||||
<option value="Integer" {{selected(opt="Integer",val=model.data_type)}}>Integer</option>
|
||||
<option value="Decimal" {{selected(opt="Decimal",val=model.data_type)}}>Decimal</option>
|
||||
<option value="Boolean" {{selected(opt="Boolean",val=model.data_type)}}>Boolean</option>
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><label for="default">Default:</label></th>
|
||||
<td>
|
||||
<input type="text" id="default" name="default" value="{{model.default | print_typed_value}}" autocomplete="off">
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<input type="submit" value="Save">
|
||||
{{ form::text(name="default", label="Default", value=model.default|print_typed_value) }}
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<script>
|
||||
|
||||
@@ -1,59 +1,40 @@
|
||||
{% extends "_layout" %}
|
||||
{% import "_form_macros" as form %}
|
||||
|
||||
{% block title -%}
|
||||
Define relation
|
||||
{%- endblock %}
|
||||
|
||||
{% block nav -%}
|
||||
<a href="/">Home</a>
|
||||
<a href="/" class="btn btn-link"><i class="icon icon-home"></i>Home</a>
|
||||
{%- endblock %}
|
||||
|
||||
{% block content -%}
|
||||
|
||||
<h1>Define new relation from "{{object.name}}"</h1>
|
||||
|
||||
<form action="/model/relation/create" method="POST">
|
||||
<input type="hidden" name="object" value="{{object.id}}">
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th><label for="name">Name:</label></th>
|
||||
<td>
|
||||
<input type="text" id="name" name="name" value="{{old.name}}" autocomplete="off"><br>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><label for="reciprocal_name">Reciprocal name:</label></th>
|
||||
<td>
|
||||
<input type="text" id="reciprocal_name" name="reciprocal_name" value="{{old.reciprocal_name}}" autocomplete="off">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><label for="optional">Optional:</label></th>
|
||||
<td>
|
||||
<input type="checkbox" name="optional" id="optional" value="true" {{opt(checked=old.optional)}} autocomplete="off">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><label for="multiple">Multiple:</label></th>
|
||||
<td>
|
||||
<input type="checkbox" name="multiple" id="multiple" value="true" {{opt(checked=old.multiple)}} autocomplete="off">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><label for="related">Related object:</label></th>
|
||||
<td>
|
||||
<select name="related" id="related" autocomplete="off">
|
||||
{{ form::header_with_save_button(heading='Define new relation from "'~object.name~'"') }}
|
||||
|
||||
<div class="form-horizontal container">
|
||||
{{ form::text(name="name", label="Name", value=old.name) }}
|
||||
{{ form::text(name="reciprocal_name", label="Reciprocal name", value=old.reciprocal_name) }}
|
||||
{{ form::checkbox(name="optional", label="Optional", checked=old.optional) }}
|
||||
{{ form::checkbox(name="multiple", label="Multiple", checked=old.multiple) }}
|
||||
|
||||
<div class="form-group cols">
|
||||
<div class="col-3 pl-2">
|
||||
<label class="form-label" for="related">Related object</label>
|
||||
</div>
|
||||
<div class="col-9 pr-2">
|
||||
<select name="related" class="form-select input-inline" id="related" autocomplete="off">
|
||||
{% for m in models %}
|
||||
<option value="{{ m.id }}" {{selected(val=old.related, opt=m.id)}}>{{ m.name }}</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<input type="submit" value="Save">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
|
||||
{%- endblock %}
|
||||
|
||||
@@ -1,46 +1,27 @@
|
||||
{% extends "_layout" %}
|
||||
{% import "_form_macros" as form %}
|
||||
|
||||
{% block title -%}
|
||||
Edit relation
|
||||
{%- endblock %}
|
||||
|
||||
{% block nav -%}
|
||||
<a href="/">Home</a>
|
||||
<a href="/" class="btn btn-link"><i class="icon icon-home"></i>Home</a>
|
||||
{%- endblock %}
|
||||
|
||||
{% block content -%}
|
||||
|
||||
<h1>Edit relation model "{{model.name}}"</h1>
|
||||
|
||||
<form action="/model/relation/update/{{model.id}}" method="POST">
|
||||
<table>
|
||||
<tr>
|
||||
<th><label for="name">Name:</label></th>
|
||||
<td><input type="text" id="name" name="name" value="{{model.name}}" autocomplete="off">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><label for="reciprocal_name">Reciprocal name:</label></th>
|
||||
<td><input type="text" id="reciprocal_name" name="reciprocal_name" value="{{model.reciprocal_name}}" autocomplete="off">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><label for="optional">Optional:</label>
|
||||
</th>
|
||||
<td><input type="checkbox" name="optional" id="optional" value="true" {{opt(checked=model.optional)}} autocomplete="off">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><label for="multiple">Multiple:</label></th>
|
||||
<td><input type="checkbox" name="multiple" id="multiple" value="true" {{opt(checked=model.multiple)}} autocomplete="off">
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
{{ form::header_with_save_button(heading='Edit relation model "'~model.name~'"') }}
|
||||
|
||||
<div class="form-horizontal container">
|
||||
{{ form::text(name="name", label="Name", value=model.name) }}
|
||||
{{ form::text(name="reciprocal_name", label="Reciprocal name", value=model.reciprocal_name) }}
|
||||
{{ form::checkbox(name="optional", label="Optional", checked=model.optional) }}
|
||||
{{ form::checkbox(name="multiple", label="Multiple", checked=model.multiple) }}
|
||||
</div>
|
||||
|
||||
<p>The related object cannot be changed. Create a new relation if needed.</p>
|
||||
|
||||
<input type="submit" value="Save">
|
||||
</form>
|
||||
|
||||
|
||||
{%- endblock %}
|
||||
|
||||
@@ -5,8 +5,8 @@ Objects
|
||||
{%- endblock %}
|
||||
|
||||
{% block nav -%}
|
||||
<a href="/models">Edit models</a>
|
||||
<a href="/takeout">JSON</a>
|
||||
<a href="/models" class="btn btn-link"><i class="icon icon-edit"></i>Edit models</a>
|
||||
<a href="/takeout" class="btn btn-link"><i class="icon icon-code"></i>JSON</a>
|
||||
{%- endblock %}
|
||||
|
||||
{% block content -%}
|
||||
@@ -15,8 +15,18 @@ Objects
|
||||
|
||||
{% for table in models %}
|
||||
|
||||
<h2>{{ table.model.name }}</h2>
|
||||
<a href="/object/create/{{table.model.id}}">Add {{ table.model.name }}</a>
|
||||
<div class="container">
|
||||
<div class="cols">
|
||||
<div class="col-9">
|
||||
<h2>{{ table.model.name }}</h2>
|
||||
</div>
|
||||
<div class="col-3 text-right">
|
||||
<a href="/object/create/{{table.model.id}}" class="btn">
|
||||
<i class="icon icon-plus"></i>Add {{ table.model.name }}
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<ul>
|
||||
{% for object in table.objects %}
|
||||
|
||||
@@ -5,7 +5,8 @@ Create {{model.name}}
|
||||
{%- endblock %}
|
||||
|
||||
{% block nav -%}
|
||||
<a href="/">Home</a>
|
||||
<a href="/" class="btn btn-link">
|
||||
<i class="icon icon-home"></i>Home</a>
|
||||
{%- endblock %}
|
||||
|
||||
{% block content -%}
|
||||
|
||||
@@ -5,16 +5,22 @@
|
||||
{%- endblock %}
|
||||
|
||||
{% block nav -%}
|
||||
<a href="/">Home</a>
|
||||
<a href="/object/update/{{object.id}}">Edit</a>
|
||||
<a href="/object/delete/{{object.id}}" onclick="return confirm('Delete object?')">Delete</a>
|
||||
<a href="/" class="btn btn-link">
|
||||
<i class="icon icon-home"></i>Home</a>
|
||||
|
||||
<a href="/object/update/{{object.id}}" class="btn btn-link">
|
||||
<i class="icon icon-edit"></i>Edit</a>
|
||||
|
||||
<a href="/object/delete/{{object.id}}" class="btn btn-link" onclick="return confirm('Delete object?')">
|
||||
<i class="icon icon-delete"></i>Delete</a>
|
||||
{%- endblock %}
|
||||
|
||||
{% block content -%}
|
||||
|
||||
<h1>{{kind}} "{{object.name}}"</h1>
|
||||
|
||||
<table>
|
||||
<table class="table table-striped object-display">
|
||||
<tbody>
|
||||
{% for property in properties %}
|
||||
{% for value in property.values %}
|
||||
<tr>
|
||||
@@ -29,11 +35,11 @@
|
||||
</tr>
|
||||
{% endfor %}
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
{% for relation in relations %}
|
||||
<h3>{{relation.model.name}}</h3>
|
||||
|
||||
<ul>
|
||||
{% for instance in relation.instances %}
|
||||
<li>
|
||||
@@ -60,14 +66,10 @@
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
|
||||
{% endfor %}
|
||||
|
||||
|
||||
|
||||
{% for relation in reciprocal_relations %}
|
||||
<h3>{{relation.model.reciprocal_name}}</h3>
|
||||
|
||||
<ul>
|
||||
{% for instance in relation.instances %}
|
||||
<li>
|
||||
|
||||
@@ -5,7 +5,7 @@ Edit {{object.name}}
|
||||
{%- endblock %}
|
||||
|
||||
{% block nav -%}
|
||||
<a href="/">Home</a>
|
||||
<a href="/" class="btn btn-link"><i class="icon icon-home"></i>Home</a>
|
||||
{%- endblock %}
|
||||
|
||||
{% block content -%}
|
||||
|
||||
Reference in New Issue
Block a user