{% extends "admin/base_site.html" %}
{% load i18n %}
{% block extrahead %}
{{ block.super }}
<style type="text/css">
.module table { width:100%; }
.module table p { padding: 0; margin: 0; }
</style>
{% endblock %}

{% block breadcrumbs %}<div class="breadcrumbs"><a href="../../../">Home</a> &rsaquo; <a href="../../">Documentation</a> &rsaquo; <a href="../">Models</a> &rsaquo; {{ name }}</div>{% endblock %}

{% block title %}Model: {{ name }}{% endblock %}

{% block content %}
<div id="content-main">
<h1>{{ summary }}</h1>

{% if description %}
  <p>{% filter linebreaksbr %}{% trans description %}{% endfilter %}</p>
{% endif %}

<div class="module">
<table class="model">
<thead>
<tr>
    <th>Field</th>
    <th>Type</th>
    <th>Description</th>
</tr>
</thead>
<tbody>
{% for field in fields|dictsort:"name" %}
<tr>
    <td>{{ field.name }}</td>
    <td>{{ field.data_type }}</td>
    <td>{% if field.verbose %}{{ field.verbose }}{% endif %}{% if field.help_text %} - {{ field.help_text|safe }}{% endif %}</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>

<p class="small"><a href="../">&lsaquo; Back to Models Documentation</a></p>
</div>
{% endblock %}
