update grappeli templates, fixes 1684
This commit is contained in:
parent
52e1373102
commit
ac854b6949
|
@ -8,6 +8,6 @@
|
|||
|
||||
<!-- CONTENT -->
|
||||
{% block content %}
|
||||
<h2>{% trans "Page not found" %}</h2>
|
||||
<p>{% trans "We're sorry, but the requested page could not be found." %}</p>
|
||||
<h2>{% trans "Page not found" %}</h2>
|
||||
<p>{% trans "We're sorry, but the requested page could not be found." %}</p>
|
||||
{% endblock %}
|
||||
|
|
|
@ -4,13 +4,18 @@
|
|||
{% load i18n %}
|
||||
|
||||
<!-- BREADCRUMBS -->
|
||||
{% block breadcrumbs %}<div id="breadcrumbs"><a href="/">{% trans "Home" %}</a> › {% trans "Server error" %}</div>{% endblock %}
|
||||
{% block breadcrumbs %}
|
||||
<ul class="grp-horizontal-list">
|
||||
<li><a href="/">{% trans "Home" %}</a></li>
|
||||
<li>{% trans "Server error" %}</li>
|
||||
</ul>
|
||||
{% endblock %}
|
||||
|
||||
<!-- TITLE -->
|
||||
{% block title %}{% trans "Server error (500)" %}{% endblock %}
|
||||
|
||||
<!-- CONTENT -->
|
||||
{% block content %}
|
||||
<h1>{% trans "Server Error <em>(500)</em>" %}</h1>
|
||||
<p>{% trans "There's been an error. It's been reported to the site administrators via e-mail and should be fixed shortly. Thanks for your patience." %}</p>
|
||||
<h1>{% trans "Server Error <em>(500)</em>" %}</h1>
|
||||
<p>{% trans "There's been an error. It's been reported to the site administrators via e-mail and should be fixed shortly. Thanks for your patience." %}</p>
|
||||
{% endblock %}
|
||||
|
|
|
@ -1,14 +1,14 @@
|
|||
{% load i18n %}
|
||||
<div class="changelist-actions">
|
||||
<div class="grp-changelist-actions">
|
||||
{% for field in action_form %}{{ field }}{% endfor %}
|
||||
{% if actions_selection_counter %}
|
||||
<script type="text/javascript">var _actions_icnt="{{ cl.result_list|length|default:"0" }}";</script>
|
||||
<ul>
|
||||
<li class="action-counter"><span class="action-counter">{{ selection_note }}</span></li>
|
||||
<ul class="grp-horizontal-list grp-float-left">
|
||||
<li class="grp-action-counter"><span class="grp-button grp-button-state-inactive grp-action-counter">{{ selection_note }}</span></li>
|
||||
{% if cl.result_count != cl.result_list|length %}
|
||||
<li class="all"><span class="all">{{ selection_note_all }}</span></li>
|
||||
<li class="question"><a href="javascript:;" title="{% trans "Click here to select the objects across all pages" %}">{% blocktrans with cl.result_count as total_count %}Select all {{ total_count }} {{ module_name }}{% endblocktrans %}</a></li>
|
||||
<li class="clear-selection"><a href="javascript://" class="clear">{% trans "Clear selection" %}</a></li>
|
||||
<li class="grp-all"><span class="all grp-button grp-button-state-inactive">{{ selection_note_all }}</span></li>
|
||||
<li class="grp-question"><a href="javascript://" class="grp-button" title="{% trans "Click here to select the objects across all pages" %}">{% blocktrans with cl.result_count as total_count %}Select all {{ total_count }} {{ module_name }}{% endblocktrans %}</a></li>
|
||||
<li class="grp-clear-selection"><a href="javascript://" class="grp-button grp-clear">{% trans "Clear selection" %}</a></li>
|
||||
{% endif %}
|
||||
</ul>
|
||||
{% endif %}
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
{% extends "admin/index.html" %}
|
||||
{% load url from future %}
|
||||
{% load i18n grp_tags %}
|
||||
|
||||
{% block javascripts %}
|
||||
|
@ -7,34 +8,36 @@
|
|||
|
||||
{% if not is_popup %}
|
||||
{% block breadcrumbs %}
|
||||
<div id="breadcrumbs">
|
||||
<a href="../">{% trans "Home" %}</a> ›
|
||||
<ul class="grp-horizontal-list">
|
||||
<li><a href="../">{% trans "Home" %}</a></li>
|
||||
{% for app in app_list %}
|
||||
{% trans app.name %}
|
||||
{% blocktrans with app.name as name %}<li>{{ name }}</li>{% endblocktrans %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
</ul>
|
||||
{% endblock %}
|
||||
{% endif %}
|
||||
|
||||
{% block content %}
|
||||
<div class="container-grid">
|
||||
<div class="column span-12" id="apps_init">
|
||||
{% if app_list %}
|
||||
{% for app in app_list %}
|
||||
<div class="module" id="app_{{ app.name|lower }}">
|
||||
<h2>{% trans app.name %}</h2>
|
||||
{% for model in app.models %}
|
||||
<div class="row">
|
||||
{% if model.perms.change %}<a href="{{ model.admin_url }}">{{ model.name }}</a>{% else %}<span>{{ model.name }}</span>{% endif %}
|
||||
<ul class="actions">
|
||||
<li class="add-link">{% if model.perms.add %}<a href="{{ model.admin_url }}add/">{% trans 'Add' %}</a>{% else %} {% endif %}</li>
|
||||
<li class="change-link"> {% if model.perms.change %}<a href="{{ model.admin_url }}">{% trans 'Change' %}</a>{% else %} {% endif %}</li>
|
||||
<div class="g-d-c">
|
||||
<div class="g-d-12" id="apps_init">
|
||||
{% for app in app_list %}
|
||||
<div class="grp-module" id="app_{{ app.name|lower }}">
|
||||
<h2>{% trans app.name %}</h2>
|
||||
{% for model in app.models %}
|
||||
<div class="grp-row">
|
||||
{% if model.perms.change %}<a href="{{ model.admin_url }}"><strong>{{ model.name }}</strong></a>{% else %}<span><strong>{{ model.name }}</strong></span>{% endif %}
|
||||
{% if model.perms.add or model.perms.change %}
|
||||
<ul class="grp-actions">
|
||||
{% if model.perms.add %}<li class="grp-add-link"><a href="{{ model.admin_url }}add/">{% trans 'Add' %}</a></li>{% endif %}
|
||||
{% if model.perms.change %}<li class="grp-change-link"><a href="{{ model.admin_url }}">{% trans 'Change' %}</a></li>{% endif %}
|
||||
</ul>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% empty %}
|
||||
<p>{% trans "You don´t have permission to edit anything." %}</p>
|
||||
{% endfor %}
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
|
|
@ -1,83 +1,123 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="{{ LANGUAGE_CODE }}" xml:lang="{{ LANGUAGE_CODE }}" {% if LANGUAGE_BIDI %}dir="rtl"{% endif %}>
|
||||
{% load adminmedia i18n grp_tags %}
|
||||
{% load admin_static %}{% load url from future %}{% load i18n grp_tags %}
|
||||
<!DOCTYPE html>
|
||||
<html lang="{{ LANGUAGE_CODE|default:"en-us" }}" {% if LANGUAGE_BIDI %}dir="rtl"{% endif %}>
|
||||
<head>
|
||||
<title>{% block title %}{% endblock %}</title>
|
||||
{% block blockbots %}
|
||||
<meta name="robots" content="NONE,NOARCHIVE" />
|
||||
{% endblock %}
|
||||
<meta charset="utf-8" />
|
||||
{% block blockbots %}<meta name="robots" content="NONE,NOARCHIVE" />{% endblock %}
|
||||
<!-- STYLESHEETS -->
|
||||
{% block stylesheets %}
|
||||
<link href="{% admin_media_prefix %}css/base.css" rel="stylesheet" type="text/css" />
|
||||
{% if LANGUAGE_BIDI %}<link href="{% block stylesheet_rtl %}{% admin_media_prefix %}css/rtl.css{% endblock %}" rel="stylesheet" type="text/css" />{% endif %}
|
||||
<link href="{% admin_media_prefix %}jquery/ui/css/custom-theme/jquery-ui-1.8.custom.css" rel="stylesheet" type="text/css" media="screen" title="no title" charset="utf-8">
|
||||
<link href="{% admin_media_prefix %}css/jquery-ui-grappelli-extensions.css" rel="stylesheet" type="text/css" />
|
||||
<link href="{% static "grappelli/jquery/ui/css/custom-theme/jquery-ui-1.8.18.custom.css" %}" rel="stylesheet" type="text/css" media="screen" />
|
||||
<link href="{% static "grappelli/stylesheets/screen.css" %}" rel="stylesheet" type="text/css" media="screen" />
|
||||
{% if LANGUAGE_BIDI %}
|
||||
<link href="{% static "grappelli/stylesheets/mueller/grid/output-rtl.css" %}" rel="stylesheet" type="text/css" media="screen" />
|
||||
<link href="{% block stylesheet_rtl %}{% static "grappelli/stylesheets/rtl.css" %}{% endblock %}" rel="stylesheet" type="text/css" media="screen" />
|
||||
{% else %}
|
||||
<link href="{% static "grappelli/stylesheets/mueller/grid/output.css" %}" rel="stylesheet" type="text/css" media="screen" />
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
<!-- EXTRASTYLES -->
|
||||
{% block extrastyle %}{% endblock %}
|
||||
<!-- JAVASCRIPTS -->
|
||||
{% block javascripts %}
|
||||
<script type="text/javascript">
|
||||
<script type="text/javascript">window.__admin_media_prefix__ = "{% filter escapejs %}{% static "grappelli/" %}{% endfilter %}";</script>
|
||||
<script type="text/javascript" charset="utf-8">
|
||||
// GLOBALS
|
||||
var grappelli = {},
|
||||
// TODO: klemens: drop ADMIN_URL
|
||||
ADMIN_URL = "{% url admin:index %}",
|
||||
ADMIN_URL = "{% url 'admin:index' %}",
|
||||
MODEL_URL_ARRAY = {% get_content_types %},
|
||||
DATE_FORMAT = "{% get_date_format %}",
|
||||
TIME_FORMAT = "{% get_time_format %}",
|
||||
DATETIME_FORMAT = "{% get_datetime_format %}";
|
||||
</script>
|
||||
|
||||
<!-- NOTE klemens: put this in admin/includes_grappelli/header_js.html -->
|
||||
|
||||
<!-- jQuery, jQuery-UI -->
|
||||
<script src="{% admin_media_prefix %}jquery/jquery-1.4.2.min.js" type="text/javascript"></script>
|
||||
<script src="{% admin_media_prefix %}jquery/ui/js/jquery-ui-1.8.5.custom.min.js" type="text/javascript"></script>
|
||||
<!-- Grappelli Main JS -->
|
||||
<script src="{% admin_media_prefix %}js/grappelli/grappelli.js" type="text/javascript"></script>
|
||||
<!-- Grappelli jQuery Plugins, Widgets -->
|
||||
<script src="{% admin_media_prefix %}js/grappelli/jquery.grp_collapsible.js"type="text/javascript" ></script>
|
||||
<script src="{% admin_media_prefix %}js/grappelli/jquery.grp_collapsible_group.js" type="text/javascript"></script>
|
||||
<script src="{% admin_media_prefix %}js/grappelli/jquery.grp_timepicker.js" type="text/javascript"></script>
|
||||
<script src="{% admin_media_prefix %}js/grappelli/jquery.grp_related_fk.js" type="text/javascript"></script>
|
||||
<script src="{% admin_media_prefix %}js/grappelli/jquery.grp_related_m2m.js" type="text/javascript"></script>
|
||||
<script src="{% admin_media_prefix %}js/grappelli/jquery.grp_related_generic.js" type="text/javascript"></script>
|
||||
|
||||
<script src="{% static "grappelli/jquery/jquery-1.7.2.min.js" %}" type="text/javascript"></script>
|
||||
<script src="{% static "grappelli/jquery/ui/js/jquery-ui-1.8.18.custom.min.js" %}" type="text/javascript"></script>
|
||||
{% if debug %}
|
||||
<!-- Grappelli Main JS -->
|
||||
<script src="{% static "grappelli/js/grappelli.js" %}" type="text/javascript"></script>
|
||||
<!-- Grappelli jQuery Plugins, Widgets -->
|
||||
<script src="{% static "grappelli/js/jquery.grp_collapsible.js" %}" type="text/javascript"></script>
|
||||
<script src="{% static "grappelli/js/jquery.grp_collapsible_group.js" %}" type="text/javascript"></script>
|
||||
<script src="{% static "grappelli/js/jquery.grp_timepicker.js" %}" type="text/javascript"></script>
|
||||
<script src="{% static "grappelli/js/jquery.grp_related_fk.js" %}" type="text/javascript"></script>
|
||||
<script src="{% static "grappelli/js/jquery.grp_related_m2m.js" %}" type="text/javascript"></script>
|
||||
<script src="{% static "grappelli/js/jquery.grp_related_generic.js" %}" type="text/javascript"></script>
|
||||
<script src="{% static "grappelli/js/jquery.grp_autocomplete_fk.js" %}" type="text/javascript"></script>
|
||||
<script src="{% static "grappelli/js/jquery.grp_autocomplete_m2m.js" %}" type="text/javascript"></script>
|
||||
<script src="{% static "grappelli/js/jquery.grp_autocomplete_generic.js" %}" type="text/javascript"></script>
|
||||
<script src="{% static "grappelli/js/jquery.grp_inline.js" %}" type="text/javascript"></script>
|
||||
{% else %}
|
||||
<!-- Grappelli Minified -->
|
||||
<script src="{% static "grappelli/js/grappelli.min.js" %}" type="text/javascript"></script>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
<!-- EXTRAHEAD -->
|
||||
{% block extrahead %}{% endblock %}
|
||||
</head>
|
||||
<body class="{% if is_popup %}popup {% endif %}{% block bodyclass %}{% endblock %}">
|
||||
<div id="container">
|
||||
<body class="{% if is_popup %}grp-popup {% endif %}{% block bodyclass %}{% endblock %}{% if LANGUAGE_BIDI %} rtl{% endif %}">
|
||||
<div id="grp-container">
|
||||
|
||||
<!-- HEADER -->
|
||||
{% if not is_popup %}
|
||||
{% include "admin/includes_grappelli/header.html" %}
|
||||
<!-- BREADCRUMBS -->
|
||||
{% block breadcrumbs %}
|
||||
<div id="breadcrumbs"><a href="/">{% trans 'Home' %}</a>{% if title %} › {{ title }}{% endif %}</div>
|
||||
{% endblock %}
|
||||
{% endif %}
|
||||
<!-- MESSAGES -->
|
||||
{% if messages %}
|
||||
<ul class="messagelist">
|
||||
{% for message in messages %}
|
||||
<li{% if message.tags %} class="{{ message.tags }}"{% endif %}>{{ message }}</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% endif %}
|
||||
<header id="grp-header" class="{% block header-class %}{% endblock %}">
|
||||
{% if not is_popup %}
|
||||
|
||||
<!-- NAVIGATION -->
|
||||
{% include "admin/includes_grappelli/header.html" %}
|
||||
|
||||
<!-- CONTEXT NAVIGATION -->
|
||||
<div id="grp-context-navigation">
|
||||
<nav id="grp-breadcrumbs" class="{% block breadcrumbs-class %}{% endblock %}">
|
||||
<header style="display:none"><h1>Breadcrumbs</h1></header>
|
||||
{% block breadcrumbs %}
|
||||
<ul>
|
||||
<li><a href="/">{% trans 'Home' %}</a></li>
|
||||
{% if title %}
|
||||
<li> › {{ title }}</li>
|
||||
{% endif %}
|
||||
</ul>
|
||||
{% endblock %}
|
||||
</nav>
|
||||
<nav id="grp-page-tools">
|
||||
<header style="display:none"><h1>Page Tools</h1></header>
|
||||
{% block page-tools %}{% endblock %}
|
||||
</nav>
|
||||
</div>
|
||||
{% endif %}
|
||||
</header>
|
||||
|
||||
<!-- CONTENT -->
|
||||
<div id="content" class="{% block content-class %}{% endblock %}">
|
||||
{% block pretitle %}{% endblock %}
|
||||
{% block content_title %}{% if title %}<h1>{% trans title %}</h1>{% endif %}{% endblock %}
|
||||
{% block object-tools %}{% endblock %}
|
||||
{% block content %}
|
||||
{{ content }}
|
||||
{% block filters %}{% endblock %}
|
||||
{% endblock %}
|
||||
<br class="clear" />
|
||||
</div>
|
||||
<article id="grp-content" class="{% block content-class %}{% endblock %}">
|
||||
|
||||
<!-- MESSAGES -->
|
||||
{% if messages %}
|
||||
<ul class="grp-messagelist">
|
||||
{% for message in messages %}
|
||||
<li{% if message.tags %} class="grp-{{ message.tags }}"{% endif %}>{{ message }}</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% endif %}
|
||||
|
||||
<!-- CONTENT TITLE -->
|
||||
<header id="grp-content-title">
|
||||
{% block pretitle %}{% endblock %}
|
||||
{% block content_title %}{% if title %}<h1>{{ title }}</h1>{% endif %}{% endblock %}
|
||||
{% block object-tools %}{% endblock %}
|
||||
</header>
|
||||
|
||||
<!-- CONTENT-CONTAINER -->
|
||||
<div id="grp-content-container">
|
||||
{% block content %}
|
||||
{{ content }}
|
||||
{% block filters %}{% endblock %}
|
||||
{% endblock %}
|
||||
</div>
|
||||
|
||||
</article>
|
||||
|
||||
<!-- FOOTER -->
|
||||
{% block footer %}<div id="footer"></div>{% endblock %}
|
||||
{% block footer %}{% endblock %}
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
</html>
|
|
@ -1,7 +1,8 @@
|
|||
{% extends "admin/base_site.html" %}
|
||||
|
||||
<!-- LOADING -->
|
||||
{% load i18n admin_modify adminmedia grp_tags %}
|
||||
{% load url from future %}
|
||||
{% load admin_static i18n admin_modify grp_tags %}
|
||||
|
||||
<!-- STYLESHEETS -->
|
||||
{% block stylesheets %}
|
||||
|
@ -11,59 +12,104 @@
|
|||
<!-- JAVASCRIPTS -->
|
||||
{% block javascripts %}
|
||||
{{ block.super }}
|
||||
{% url admin:jsi18n as jsi18nurl %}
|
||||
{% url 'admin:jsi18n' as jsi18nurl %}
|
||||
<script type="text/javascript" src="{{ jsi18nurl|default:'../../../jsi18n/' }}"></script>
|
||||
<script src="{% admin_media_prefix %}js/grappelli/jquery.grp_inline.js" type="text/javascript"></script>
|
||||
<script type="text/javascript" charset="utf-8">
|
||||
(function($) {
|
||||
$(document).ready(function() {
|
||||
grappelli.initDateAndTimePicker();
|
||||
$("div.container-flexible div.group").grp_collapsible_group();
|
||||
$("div#content .collapse").grp_collapsible({
|
||||
$("#grp-content-container .grp-group").grp_collapsible_group();
|
||||
$("#grp-content-container .grp-collapse").grp_collapsible({
|
||||
on_init: function(elem, options) {
|
||||
// open collapse (and all collapse parents) in case of errors
|
||||
if (elem.find("ul.errorlist").length > 0) {
|
||||
elem.removeClass("closed")
|
||||
.addClass("open");
|
||||
elem.parents(".collapse")
|
||||
.removeClass("closed")
|
||||
.addClass("open");
|
||||
elem.removeClass("grp-closed")
|
||||
.addClass("grp-open");
|
||||
elem.parents(".grp-collapse")
|
||||
.removeClass("grp-closed")
|
||||
.addClass("grp-open");
|
||||
}
|
||||
}
|
||||
});
|
||||
var related_lookup_fields_fk = {% get_related_lookup_fields_fk adminform.model_admin %};
|
||||
var related_lookup_fields_m2m = {% get_related_lookup_fields_m2m adminform.model_admin %};
|
||||
var related_lookup_fields_generic = {% get_related_lookup_fields_generic adminform.model_admin %};
|
||||
var autocomplete_fields_fk = {% get_autocomplete_lookup_fields_fk adminform.model_admin %};
|
||||
var autocomplete_fields_m2m = {% get_autocomplete_lookup_fields_m2m adminform.model_admin %};
|
||||
var autocomplete_fields_generic = {% get_autocomplete_lookup_fields_generic adminform.model_admin %};
|
||||
$.each(related_lookup_fields_fk, function() {
|
||||
$("#id_" + this).grp_related_fk({lookup_url:"{% url grp_related_lookup %}"});
|
||||
$("#id_" + this).grp_related_fk({lookup_url:"{% url 'grp_related_lookup' %}"});
|
||||
});
|
||||
$.each(related_lookup_fields_m2m, function() {
|
||||
$("#id_" + this).grp_related_m2m({lookup_url:"{% url grp_m2m_lookup %}"});
|
||||
$("#id_" + this).grp_related_m2m({lookup_url:"{% url 'grp_m2m_lookup' %}"});
|
||||
});
|
||||
$.each(related_lookup_fields_generic, function() {
|
||||
var content_type = "#id_" + this[0],
|
||||
object_id = "#id_" + this[1];
|
||||
$(object_id).grp_related_generic({content_type:content_type, object_id:object_id, lookup_url:"{% url grp_related_lookup %}"});
|
||||
$(object_id).grp_related_generic({content_type:content_type, object_id:object_id, lookup_url:"{% url 'grp_related_lookup' %}"});
|
||||
});
|
||||
$.each(autocomplete_fields_fk, function() {
|
||||
$("#id_" + this).grp_autocomplete_fk({
|
||||
lookup_url:"{% url 'grp_related_lookup' %}",
|
||||
autocomplete_lookup_url:"{% url 'grp_autocomplete_lookup' %}"
|
||||
});
|
||||
});
|
||||
$.each(autocomplete_fields_m2m, function() {
|
||||
$("#id_" + this).grp_autocomplete_m2m({
|
||||
lookup_url:"{% url 'grp_m2m_lookup' %}",
|
||||
autocomplete_lookup_url:"{% url 'grp_autocomplete_lookup' %}"
|
||||
});
|
||||
});
|
||||
$.each(autocomplete_fields_generic, function() {
|
||||
var content_type = "#id_" + this[0],
|
||||
object_id = "#id_" + this[1];
|
||||
$(object_id).grp_autocomplete_generic({
|
||||
content_type:content_type,
|
||||
object_id:object_id,
|
||||
lookup_url:"{% url 'grp_related_lookup' %}",
|
||||
autocomplete_lookup_url:"{% url 'grp_autocomplete_lookup' %}"
|
||||
});
|
||||
});
|
||||
$("a#grp-open-all").bind("click", function(){
|
||||
$("#grp-content .grp-collapse-handler").each(function() {
|
||||
$(this).parent(".grp-collapse").removeClass("grp-closed").addClass("grp-open");
|
||||
});
|
||||
});
|
||||
$("a#grp-close-all").bind("click", function(){
|
||||
$("#grp-content .grp-collapse-handler").each(function() {
|
||||
$(this).parent(".grp-collapse").removeClass("grp-open").addClass("grp-closed");
|
||||
});
|
||||
});
|
||||
});
|
||||
})(django.jQuery);
|
||||
})(grp.jQuery);
|
||||
</script>
|
||||
{{ media }}
|
||||
{% endblock %}
|
||||
|
||||
<!-- COLTYPE/BODYCLASS -->
|
||||
{% block bodyclass %}{{ opts.app_label }}-{{ opts.object_name.lower }} change-form{% endblock %}
|
||||
{% block content-class %}content-flexible{% endblock %}
|
||||
{% block bodyclass %}{{ opts.app_label }}-{{ opts.object_name.lower }} grp-change-form{% endblock %}
|
||||
{% block content-class %}{% endblock %}
|
||||
|
||||
|
||||
<!-- PAGE-TOOLS -->
|
||||
{% block page-tools %}
|
||||
{% if not is_popup %}
|
||||
<ul>
|
||||
<li><a href="javascript://" class="grp-tool" id="grp-open-all" title="{% trans 'Open All Items' %}"> </a></li>
|
||||
<li><a href="javascript://" class="grp-tool" id="grp-close-all" title="{% trans 'Close All Items' %}"> </a></li>
|
||||
</ul>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
||||
<!-- BREADCRUMBS -->
|
||||
{% block breadcrumbs %}
|
||||
{% if not is_popup %}
|
||||
<div id="breadcrumbs">
|
||||
<a href="../../../">{% trans "Home" %}</a> ›
|
||||
<a href="../../">{% trans app_label %}</a> ›
|
||||
{% if has_change_permission %}<a href="../">{{ opts.verbose_name_plural|capfirst }}</a>{% else %}{{ opts.verbose_name_plural|capfirst }}{% endif %} ›
|
||||
{% if add %}{% trans "Add" %} {{ opts.verbose_name }}{% else %}{{ original|truncatewords:"18" }}{% endif %}
|
||||
</div>
|
||||
<ul>
|
||||
<li><a href="../../../">{% trans "Home" %}</a></li>
|
||||
<li><a href="../../">{% trans app_label|capfirst|escape %}</a></li>
|
||||
<li>{% if has_change_permission %}<a href="../">{{ opts.verbose_name_plural|capfirst }}</a>{% else %}{{ opts.verbose_name_plural|capfirst }}{% endif %}</li>
|
||||
<li>{% if add %}{% trans "Add" %} {{ opts.verbose_name }}{% else %}{{ original|truncatewords:"18" }}{% endif %}</li>
|
||||
</ul>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
||||
|
@ -71,9 +117,11 @@
|
|||
{% block object-tools %}
|
||||
{% if change %}
|
||||
{% if not is_popup %}
|
||||
<ul class="tools">
|
||||
<li><a href="history/">{% trans "History" %}</a></li>
|
||||
{% if has_absolute_url %}<li><a href="../../../r/{{ content_type_id }}/{{ object_id }}/" class="focus" target="_blank">{% trans "View on site" %}</a></li>{% endif%}
|
||||
<ul class="grp-object-tools">
|
||||
{% block object-tools-items %}
|
||||
<li><a href="history/">{% trans "History" %}</a></li>
|
||||
{% if has_absolute_url %}<li><a href="../../../r/{{ content_type_id }}/{{ object_id }}/" class="grp-state-focus" target="_blank">{% trans "View on site" %}</a></li>{% endif%}
|
||||
{% endblock %}
|
||||
</ul>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
@ -81,60 +129,60 @@
|
|||
|
||||
<!-- CONTENT -->
|
||||
{% block content %}
|
||||
<div class="container-flexible">
|
||||
<div class="form-container">
|
||||
<form {% if has_file_field %}enctype="multipart/form-data" {% endif %}action="{{ form_url }}" method="post" id="{{ opts.module_name }}_form">{% csrf_token %}{% block form_top %}{% endblock %}
|
||||
<div>
|
||||
<!-- Popup Hidden Field -->
|
||||
{% if is_popup %}<input type="hidden" name="_popup" value="1" />{% endif %}
|
||||
|
||||
<!-- Submit-Row -->
|
||||
{% if save_on_top %}{% submit_row %}{% endif %}
|
||||
|
||||
<!-- Errors -->
|
||||
{% if errors %}
|
||||
<p class="errornote">{% blocktrans count errors|length as counter %}Please correct the error below.{% plural %}Please correct the errors below.{% endblocktrans %}</p>
|
||||
<ul class="errorlist">{% for error in adminform.form.non_field_errors %}<li>{{ error }}</li>{% endfor %}</ul>
|
||||
{% endif %}
|
||||
|
||||
<!-- Fieldsets -->
|
||||
{% for fieldset in adminform %}
|
||||
{% include "admin/includes/fieldset.html" %}
|
||||
{% endfor %}
|
||||
|
||||
{% block after_field_sets %}{% endblock %}
|
||||
|
||||
<!-- Inlines -->
|
||||
{% for inline_admin_formset in inline_admin_formsets %}
|
||||
{% include inline_admin_formset.opts.template %}
|
||||
{% endfor %}
|
||||
|
||||
{% block after_related_objects %}{% endblock %}
|
||||
|
||||
<!-- Submit-Row -->
|
||||
{% submit_row %}
|
||||
|
||||
{% if adminform and add %}
|
||||
{% block extrahead %}
|
||||
<script type="text/javascript">
|
||||
(function($){
|
||||
$(function(){
|
||||
try {
|
||||
// focus on first form-field
|
||||
$("#{{ adminform.first_field.auto_id }}, #{{ adminform.first_field.auto_id }}_0")
|
||||
.eq(0).focus();
|
||||
} catch(e) {}
|
||||
});
|
||||
}(django.jQuery));
|
||||
</script>
|
||||
{% endblock %}
|
||||
{% endif %}
|
||||
|
||||
<!-- JS for prepopulated fields -->
|
||||
{% prepopulated_fields_js %}
|
||||
|
||||
</div>
|
||||
</form>
|
||||
<form {% if has_file_field %}enctype="multipart/form-data" {% endif %}action="{{ form_url }}" method="post" id="{{ opts.module_name }}_form">{% csrf_token %}{% block form_top %}{% endblock %}
|
||||
<div>
|
||||
<!-- Popup Hidden Field -->
|
||||
{% if is_popup %}<input type="hidden" name="_popup" value="1" />{% endif %}
|
||||
|
||||
<!-- No Submit-Row on Top -->
|
||||
|
||||
<!-- Errors -->
|
||||
{% if errors %}
|
||||
<p class="errornote">{% blocktrans count errors|length as counter %}Please correct the error below.{% plural %}Please correct the errors below.{% endblocktrans %}</p>
|
||||
<ul class="errorlist">{% for error in adminform.form.non_field_errors %}<li>{{ error }}</li>{% endfor %}</ul>
|
||||
{% endif %}
|
||||
|
||||
<!-- Fieldsets -->
|
||||
{% block field_sets %}
|
||||
{% for fieldset in adminform %}
|
||||
{% include "admin/includes/fieldset.html" %}
|
||||
{% endfor %}
|
||||
{% endblock %}
|
||||
|
||||
{% block after_field_sets %}{% endblock %}
|
||||
|
||||
<!-- Inlines -->
|
||||
{% block inline_field_sets %}
|
||||
{% for inline_admin_formset in inline_admin_formsets %}
|
||||
{% include inline_admin_formset.opts.template %}
|
||||
{% endfor %}
|
||||
{% endblock %}
|
||||
|
||||
{% block after_related_objects %}{% endblock %}
|
||||
|
||||
<!-- Submit-Row -->
|
||||
{% block submit_buttons_bottom %}{% submit_row %}{% endblock %}
|
||||
|
||||
{% if adminform and add %}
|
||||
{% block extrahead %}
|
||||
{{ block.super }}
|
||||
<script type="text/javascript">
|
||||
(function($){
|
||||
$(function(){
|
||||
try {
|
||||
// focus on first form-field
|
||||
$("#{{ adminform.first_field.auto_id }}, #{{ adminform.first_field.auto_id }}_0")
|
||||
.eq(0).focus();
|
||||
} catch(e) {}
|
||||
});
|
||||
}(grp.jQuery));
|
||||
</script>
|
||||
{% endblock %}
|
||||
{% endif %}
|
||||
|
||||
<!-- JS for prepopulated fields -->
|
||||
{% prepopulated_fields_js %}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
{% endblock %}
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
{% extends "admin/base_site.html" %}
|
||||
|
||||
<!-- LOADING -->
|
||||
{% load adminmedia admin_list i18n grp_tags %}
|
||||
{% load url from future %}
|
||||
{% load admin_list i18n grp_tags %}
|
||||
|
||||
<!-- STYLESHEETS -->
|
||||
{% block stylesheets %}
|
||||
|
@ -12,6 +13,7 @@
|
|||
<!-- JAVASCRIPTS -->
|
||||
{% block javascripts %}
|
||||
{{ block.super }}
|
||||
{{ media.js }}
|
||||
{% if cl.formset or action_form %}
|
||||
{% url 'admin:jsi18n' as jsi18nurl %}
|
||||
<script type="text/javascript" src="{{ jsi18nurl|default:'../../jsi18n/'}}"></script>
|
||||
|
@ -22,7 +24,7 @@
|
|||
$(document).ready(function() {
|
||||
$("tr input.action-select").actions();
|
||||
});
|
||||
})(django.jQuery);
|
||||
})(grp.jQuery);
|
||||
</script>
|
||||
{% endif %}
|
||||
{% if cl.formset %}
|
||||
|
@ -34,29 +36,73 @@
|
|||
var related_lookup_fields_fk = {% get_related_lookup_fields_fk cl.model_admin %};
|
||||
var related_lookup_fields_m2m = {% get_related_lookup_fields_m2m cl.model_admin %};
|
||||
var related_lookup_fields_generic = {% get_related_lookup_fields_generic cl.model_admin %};
|
||||
var autocomplete_fields_fk = {% get_autocomplete_lookup_fields_fk cl.model_admin %};
|
||||
var autocomplete_fields_m2m = {% get_autocomplete_lookup_fields_m2m cl.model_admin %};
|
||||
var autocomplete_fields_generic = {% get_autocomplete_lookup_fields_generic cl.model_admin %};
|
||||
$.each(related_lookup_fields_fk, function() {
|
||||
$("div.changelist-results")
|
||||
$("div.grp-changelist-results")
|
||||
.find("input[name^='" + prefix + "'][name$='" + this + "']")
|
||||
.grp_related_fk({lookup_url:"{% url grp_related_lookup %}"});
|
||||
.grp_related_fk({lookup_url:"{% url 'grp_related_lookup' %}"});
|
||||
});
|
||||
$.each(related_lookup_fields_m2m, function() {
|
||||
$("div.changelist-results")
|
||||
$("div.grp-changelist-results")
|
||||
.find("input[name^='" + prefix + "'][name$='" + this + "']")
|
||||
.grp_related_m2m({lookup_url:"{% url grp_m2m_lookup %}"});
|
||||
.grp_related_m2m({lookup_url:"{% url 'grp_m2m_lookup' %}"});
|
||||
});
|
||||
$.each(related_lookup_fields_generic, function() {
|
||||
var content_type = this[0],
|
||||
object_id = this[1];
|
||||
$("div.changelist-results")
|
||||
$("div.grp-changelist-results")
|
||||
.find("input[name^='" + prefix + "'][name$='" + this[1] + "']")
|
||||
.each(function() {
|
||||
var ct_id = "#id_" + prefix + "-" + $(this).attr("id").split("-")[1] + "-" + content_type,
|
||||
obj_id = "#id_" + prefix + "-" + $(this).attr("id").split("-")[1] + "-" + object_id;
|
||||
$(this).grp_related_generic({content_type:ct_id, object_id:obj_id, lookup_url:"{% url grp_related_lookup %}"});
|
||||
$(this).grp_related_generic({content_type:ct_id, object_id:obj_id, lookup_url:"{% url 'grp_related_lookup' %}"});
|
||||
});
|
||||
});
|
||||
$.each(autocomplete_fields_fk, function() {
|
||||
$("div.grp-changelist-results")
|
||||
.find("input[name^='" + prefix + "'][name$='" + this + "']")
|
||||
.each(function() {
|
||||
$(this).grp_autocomplete_fk({
|
||||
lookup_url:"{% url 'grp_related_lookup' %}",
|
||||
autocomplete_lookup_url:"{% url 'grp_autocomplete_lookup' %}"
|
||||
});
|
||||
});
|
||||
});
|
||||
$.each(autocomplete_fields_m2m, function() {
|
||||
$("div.grp-changelist-results")
|
||||
.find("input[name^='" + prefix + "'][name$='" + this + "']")
|
||||
.each(function() {
|
||||
$(this).grp_autocomplete_m2m({
|
||||
lookup_url:"{% url 'grp_m2m_lookup' %}",
|
||||
autocomplete_lookup_url:"{% url 'grp_autocomplete_lookup' %}"
|
||||
});
|
||||
});
|
||||
});
|
||||
$.each(autocomplete_fields_generic, function() {
|
||||
var content_type = this[0],
|
||||
object_id = this[1];
|
||||
$("div.grp-changelist-results")
|
||||
.find("input[name^='" + prefix + "'][name$='" + this[1] + "']")
|
||||
.each(function() {
|
||||
var i = $(this).attr("id").match(/-\d+-/);
|
||||
if (i) {
|
||||
var ct_id = "#id_" + prefix + i[0] + content_type,
|
||||
obj_id = "#id_" + prefix + i[0] + object_id;
|
||||
$(this).grp_autocomplete_generic({
|
||||
content_type:ct_id,
|
||||
object_id:obj_id,
|
||||
lookup_url:"{% url 'grp_related_lookup' %}",
|
||||
autocomplete_lookup_url:"{% url 'grp_autocomplete_lookup' %}"
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
// reset actions select box
|
||||
$('.grp-changelist-actions select').val(-1);
|
||||
});
|
||||
})(django.jQuery);
|
||||
})(grp.jQuery);
|
||||
</script>
|
||||
{% endif %}
|
||||
<script type="text/javascript" charset="utf-8">
|
||||
|
@ -64,25 +110,23 @@
|
|||
$(document).ready(function() {
|
||||
grappelli.initSearchbar();
|
||||
grappelli.initFilter();
|
||||
grappelli.initTableElements(); // HACK: add no-wrap to table-elements.
|
||||
});
|
||||
})(django.jQuery);
|
||||
})(grp.jQuery);
|
||||
</script>
|
||||
{{ media.js }}
|
||||
{% endblock %}
|
||||
|
||||
<!-- COLTYPE/BODYCLASS-- >
|
||||
{% block bodyclass %}change-list{% endblock %}
|
||||
{% block content-class %}content-flexible{% endblock %}
|
||||
{% block bodyclass %}grp-change-list{% endblock %}
|
||||
{% block content-class %}{% endblock %}
|
||||
|
||||
<!-- BREADCRUMBS -- >
|
||||
{% block breadcrumbs %}
|
||||
{% if not is_popup %}
|
||||
<div id="breadcrumbs">
|
||||
<a href="../../">{% trans "Home" %}</a> ›
|
||||
<a href="../">{% trans app_label %}</a> ›
|
||||
{% trans cl.opts.verbose_name_plural|capfirst %}
|
||||
</div>
|
||||
<ul class="grp-horizontal-list">
|
||||
<li><a href="../../">{% trans "Home" %}</a></li>
|
||||
<li><a href="../">{% trans app_label|capfirst|escape %}</a></li>
|
||||
<li>{{ cl.opts.verbose_name_plural|capfirst }}</li>
|
||||
</ul>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
||||
|
@ -94,12 +138,10 @@
|
|||
<!-- OBJECT-TOOLS -->
|
||||
{% block object-tools %}
|
||||
{% if has_add_permission %}
|
||||
<ul class="tools">
|
||||
<li>
|
||||
<a href="add/{% if is_popup %}?_popup=1{% endif %}" class="add-handler focus">
|
||||
{% blocktrans with cl.opts.verbose_name as name %}Add {{ name }}{% endblocktrans %}
|
||||
</a>
|
||||
</li>
|
||||
<ul class="grp-object-tools">
|
||||
{% block object-tools-items %}
|
||||
<li><a href="add/{% if is_popup %}?_popup=1{% endif %}" class="grp-add-link grp-state-focus">{% blocktrans with cl.opts.verbose_name as name %}Add {{ name }}{% endblocktrans %}</a></li>
|
||||
{% endblock %}
|
||||
</ul>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
@ -107,37 +149,57 @@
|
|||
<!-- CONTENT -->
|
||||
{% block content %}
|
||||
{% if cl.search_fields or cl.has_filters or cl.date_hierarchy %}
|
||||
<div class="module changelist-filters">
|
||||
<!-- PAGINATION TOP -->
|
||||
{% pagination cl %}
|
||||
{% if cl.has_filters or cl.search_fields %}
|
||||
<!-- FILTERS -->
|
||||
{% if cl.has_filters %}
|
||||
<div id="filters" class="module filter span-6">
|
||||
<div class="pulldown-container">
|
||||
<a href="javascript://" class="button toggle-filters">{% trans 'Filter' %}</a>
|
||||
<div class="filter-pulldown">
|
||||
{% for spec in cl.filter_specs %}{% admin_list_filter cl spec %}{% endfor %}
|
||||
</div>
|
||||
<div class="grp-module">
|
||||
<div class="grp-row">
|
||||
<div class="l-2cr-fluid {% if cl.has_filters and cl.search_fields %}l-d-12{% else %}{% if cl.has_filters or cl.search_fields %}l-d-6{% endif %}{% endif %}">
|
||||
{% if cl.has_filters or cl.search_fields %}
|
||||
{% block aside %}
|
||||
<aside class="c-1">
|
||||
<header style="display:none"><h1>{% if cl.search_fields %}Search{% if cl.has_filters %} & {% endif %}{% endif %}{% if cl.has_filters %}Filters{% endif %}</h1></header>
|
||||
<!-- SEARCH -->
|
||||
{% if cl.search_fields %}
|
||||
{% block search %}
|
||||
<div id="search" class="g-d-6 g-d-f">
|
||||
{% search_form cl %}
|
||||
</div>
|
||||
{% endblock %}
|
||||
{% endif %}
|
||||
<!-- FILTERS -->
|
||||
{% if cl.has_filters %}
|
||||
{% block filters %}
|
||||
<div id="grp-filters" class="g-d-6 g-d-l">
|
||||
<div class="grp-filter">
|
||||
<div class="grp-pulldown-container">
|
||||
<a href="javascript://" class="grp-button grp-pulldown-handler">{% trans 'Filter' %}</a>
|
||||
<div class="grp-pulldown-content" style="display: none;">
|
||||
{% for spec in cl.filter_specs %}{% admin_list_filter cl spec %}{% endfor %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
{% endif %}
|
||||
</aside>
|
||||
{% endblock %}
|
||||
{% endif %}
|
||||
{% block pagination_top %}
|
||||
<div class="c-2">
|
||||
<!-- PAGINATION TOP -->
|
||||
{% pagination cl %}
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
<!-- SEARCH -->
|
||||
{% if cl.search_fields %}
|
||||
<div id="search" class="module search span-6">
|
||||
{% block search %}{% search_form cl %}{% endblock %}
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
<br clear="all" />
|
||||
{% endblock %}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<!-- DATE HIERARCHY -->
|
||||
{% block date_hierarchy %}
|
||||
{% if cl.date_hierarchy %}{% date_hierarchy cl %}{% endif %}
|
||||
{% endblock %}
|
||||
</div>
|
||||
<!-- DATE HIERARCHY -->
|
||||
{% if cl.date_hierarchy %}
|
||||
{% date_hierarchy cl %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
<form id="changelist-form" action="" method="post"{% if cl.formset.is_multipart %} enctype="multipart/form-data"{% endif %}>{% csrf_token %}
|
||||
<div id="changelist" class="container-full{% if cl.list_editable %} editable{% endif %}" style="">
|
||||
<form id="grp-changelist-form" action="" method="post"{% if cl.formset.is_multipart %} enctype="multipart/form-data"{% endif %}>{% csrf_token %}
|
||||
<section id="grp-changelist" class="{% if cl.list_editable %} grp-editable{% endif %}">
|
||||
<header style="display:none"><h1>Results</h1></header>
|
||||
<!-- POPUP -->
|
||||
{% if is_popup %}<input type="hidden" name="_popup" value="1" />{% endif %}
|
||||
<!-- ERRORS -->
|
||||
|
@ -155,19 +217,24 @@
|
|||
{% block result_list %}
|
||||
{% result_list cl %}
|
||||
{% endblock %}
|
||||
<!-- PAGINATION BOTTOM -->
|
||||
{% pagination cl %}
|
||||
</div><br clear="all" />
|
||||
</section>
|
||||
<!-- PAGINATION BOTTOM -->
|
||||
{% if not cl.result_count == 0 %}
|
||||
{% block pagination_bottom %}
|
||||
<div class="grp-module">
|
||||
<div class="grp-row">{% pagination cl %}</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
{% endif %}
|
||||
<!-- SUBMIT ROW -->
|
||||
{% if cl.formset or action_form %}
|
||||
<div id="submit" class="module footer">
|
||||
{% if action_form %}{% admin_actions %}{% endif %}
|
||||
{% if cl.formset %}
|
||||
<ul class="submit-row">
|
||||
<li class="submit-button-container"><input type="submit" class="default" name="_save" value="Save"/></li>
|
||||
<footer id="submit" class="grp-module grp-submit-row grp-fixed-footer">
|
||||
<header style="display:none"><h1>Submit Options</h1></header>
|
||||
<ul>
|
||||
{% if action_form %}<li class="grp-float-left grp-changelist-actions">{% admin_actions %}</li>{% endif %}
|
||||
{% if cl.formset %}<li><input type="submit" class="grp-button grp-default" name="_save" value="Save"/></li>{% endif %}
|
||||
</ul>
|
||||
{% endif %}
|
||||
</div>
|
||||
</footer>
|
||||
{% endif %}
|
||||
</form>
|
||||
{% endblock %}
|
||||
|
|
|
@ -1,29 +1,40 @@
|
|||
{% load i18n admin_static %}
|
||||
{% if result_hidden_fields %}
|
||||
<div class="hiddenfields"> {# DIV for HTML validation #}
|
||||
{% for item in result_hidden_fields %}{{ item }}{% endfor %}
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if results %}
|
||||
|
||||
{% if result_hidden_fields %}
|
||||
<div class="hiddenfields"> {# DIV for HTML validation #}
|
||||
{% for item in result_hidden_fields %}{{ item }}{% endfor %}
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<div class="module changelist-results">
|
||||
<table cellspacing="0">
|
||||
<div class="grp-module grp-changelist-results">
|
||||
<table id="result_list" cellspacing="0" class="grp-sortable">
|
||||
<thead>
|
||||
<tr>
|
||||
{% for header in result_headers %}
|
||||
<th class="{{ header.class_attrib|cut:'class='|cut:'"' }}{% if header.sortable %} sortable{% endif %}">
|
||||
{% if header.sortable %}<a href="{{ header.url }}">{% endif %}
|
||||
{{ header.text|capfirst }}
|
||||
{% if header.sortable %}</a>{% endif %}
|
||||
<th scope="col" {{ header.class_attrib }}>
|
||||
{% if header.sortable %}
|
||||
{% if header.sort_priority > 0 %}
|
||||
<div class="grp-sortoptions">
|
||||
<a class="grp-sortremove" href="{{ header.url_remove }}" title="{% trans "Remove from sorting" %}"></a>
|
||||
{% if num_sorted_fields > 1 %}<span class="grp-sortpriority" title="{% blocktrans with priority_number=header.sort_priority %}Sorting priority: {{ priority_number }}{% endblocktrans %}">{{ header.sort_priority }}</span>{% endif %}
|
||||
<a href="{{ header.url_toggle }}" class="grp-toggle {% if header.ascending %}grp-ascending{% else %}grp-descending{% endif %}" title="{% trans "Toggle sorting" %}"></a>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
<div class="grp-text">{% if header.sortable %}<a href="{{ header.url_primary }}">{{ header.text|capfirst }}</a>{% else %}<span>{{ header.text|capfirst }}</span>{% endif %}</div>
|
||||
</th>
|
||||
{% endfor %}
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for result in results %}
|
||||
<tr class="{% cycle 'row1' 'row2' %}">{% for item in result %}{{ item }}{% endfor %}</tr>
|
||||
{% if result.form.non_field_errors %}
|
||||
<tr class="grp-errors"><td colspan="{{ result|length }}">{{ result.form.non_field_errors }}</td></tr>
|
||||
{% endif %}
|
||||
<tr class="grp-row {% cycle 'grp-row-even' 'grp-row-odd' %}">{% for item in result %}{{ item }}{% endfor %}</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
|
|
|
@ -5,12 +5,12 @@
|
|||
|
||||
<!-- BREADCRUMBS -->
|
||||
{% block breadcrumbs %}
|
||||
<div id="breadcrumbs">
|
||||
<a href="../../">{% trans "Home" %}</a> ›
|
||||
<a href="../">{{ app_label|capfirst }}</a> ›
|
||||
<a href="./">{{ opts.verbose_name_plural|capfirst }}</a> ›
|
||||
{% trans 'Export selection as CSV' %}
|
||||
</div>
|
||||
<ul class="grp-horizontal-list">
|
||||
<li><a href="../../">{% trans "Home" %}</a></li>
|
||||
<li><a href="../">{% trans app_label|capfirst|escape %}</a></li>
|
||||
<li><a href="./">{{ opts.verbose_name_plural|capfirst }}</a></li>
|
||||
<li>{% trans 'Export selection as CSV' %}</li>
|
||||
</ul>
|
||||
{% endblock %}
|
||||
|
||||
<!-- CONTENT -->
|
||||
|
@ -23,18 +23,18 @@
|
|||
$("._fields").attr('checked', $(this).attr('checked'));
|
||||
});
|
||||
});
|
||||
})(django.jQuery);
|
||||
})(grp.jQuery);
|
||||
</script>
|
||||
<div class="container-grid csv-export-confirmation">
|
||||
<div class="g-d-c csv-export-confirmation">
|
||||
<form action="" method="post">{% csrf_token %}
|
||||
<fieldset class="module">
|
||||
<fieldset class="grp-module">
|
||||
<h2>{% blocktrans %}Export following fields:{% endblocktrans %}</h2>
|
||||
<div class="row">
|
||||
<div class="grp-row">
|
||||
<ul class="checkboxlist">
|
||||
<li><label for="select_all"><input type="checkbox" name="select_all" value="" id="select_all" /> {% blocktrans %}Select all{% endblocktrans %}</label></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="grp-row">
|
||||
<ul class="checkboxlist">
|
||||
{% for item in fields %}
|
||||
<li>
|
||||
|
@ -44,15 +44,15 @@
|
|||
</ul>
|
||||
</div>
|
||||
</fieldset>
|
||||
<div class="module footer">
|
||||
<div class="grp-module grp-footer">
|
||||
{% for obj in queryset %}
|
||||
<input type="hidden" name="{{ action_checkbox_name }}" value="{{ obj.pk }}" />
|
||||
{% endfor %}
|
||||
<input type="hidden" name="action" value="csv_export_selected" />
|
||||
<input type="hidden" name="post" value="yes" />
|
||||
<ul class="submit-row" {% if is_popup %}style="overflow: auto;"{% endif %}>
|
||||
<li class="left cancel-button-container"><a href="../" class="cancel-link">{% trans "Back" %}</a></li>
|
||||
<li class="submit-button-container"><input type="submit" value="{% trans "Export" %}" class="default" /></li>
|
||||
<ul class="grp-horizontal-list-right grp-submit-row">
|
||||
<li class="grp-float-left grp-submit-button-container"><a href="../" class="grp-cancel-link">{% trans "Back" %}</a></li>
|
||||
<li class="grp-submit-button-container"><input type="submit" value="{% trans "Export" %}" class="grp-default" /></li>
|
||||
</ul>
|
||||
</div>
|
||||
</form>
|
||||
|
|
|
@ -1,13 +1,15 @@
|
|||
{% load i18n %}
|
||||
{% if show and choices %}
|
||||
<div id="date-hierarchy" class="module date-hierarchy">
|
||||
<div class="row">
|
||||
<ul>
|
||||
{% if back %}<li><a href="{{ back.link }}" class="date-hierarchy-back">{{ back.title }}</a></li>{% endif %}
|
||||
{% for choice in choices %}
|
||||
<li>{% if choice.link %}<a href="{{ choice.link }}">{{ choice.title }}</a>{% else %}<span>{{ choice.title }}</span>{% endif %}</li>
|
||||
{% endfor %}
|
||||
</ul><br clear="all" />
|
||||
</div>
|
||||
</div>
|
||||
{% if show and choices|length %}
|
||||
<div class="grp-row">
|
||||
<nav id="date-hierarchy" class="grp-date-hierarchy" style="position: relative; z-index: 1 !important">
|
||||
<header style="display:none"><h1>Date Hierarchy</h1></header>
|
||||
<ul>
|
||||
{% if back %}<li><a href="{{ back.link }}" class="grp-date-hierarchy-back">{{ back.title }}</a></li>{% endif %}
|
||||
{% for choice in choices %}
|
||||
<li>{% if choice.link %}<a href="{{ choice.link }}">{{ choice.title }}</a>{% else %}<span>{{ choice.title }}</span>{% endif %}</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
|
|
|
@ -1,46 +1,58 @@
|
|||
{% extends "admin/base_site.html" %}
|
||||
|
||||
<!-- LOADING -->
|
||||
{% load i18n %}
|
||||
{% load url from future %}
|
||||
{% load i18n admin_urls %}
|
||||
|
||||
<!-- COLTYPE/BODYCLASS-- >
|
||||
{% block bodyclass %}grp-delete-confirmation{% endblock %}
|
||||
{% block content-class %}{% endblock %}
|
||||
|
||||
<!-- BREADCRUMBS -->
|
||||
{% block breadcrumbs %}
|
||||
<div id="breadcrumbs">
|
||||
<a href="../../../../">{% trans "Home" %}</a> ›
|
||||
<a href="../../../">{{ app_label|capfirst }}</a> ›
|
||||
<a href="../../">{{ opts.verbose_name_plural|capfirst }}</a> ›
|
||||
<a href="../">{{ object|truncatewords:"18" }}</a> ›
|
||||
{% trans 'Delete' %}
|
||||
</div>
|
||||
<ul class="grp-horizontal-list">
|
||||
<li><a href="../../../">{% trans "Home" %}</a></li>
|
||||
<li><a href="../../">{% trans app_label|capfirst|escape %}</a></li>
|
||||
<li><a href="{% url opts|admin_urlname:'changelist' %}">{{ opts.verbose_name_plural|capfirst|escape }}</a></li>
|
||||
<li><a href="{% url opts|admin_urlname:'changelist' %}{{ object.pk }}">{{ object|truncatewords:"18" }}</a></lI>
|
||||
<li>{% trans 'Delete' %}</li>
|
||||
</ul>
|
||||
{% endblock %}
|
||||
|
||||
<!-- CONTENT -->
|
||||
{% block content %}
|
||||
<div class="container-grid delete-confirmation">
|
||||
{% if perms_lacking %}
|
||||
<div class="module">
|
||||
<h2>{% blocktrans with object as escaped_object %}Deleting the {{ object_name }} '{{ escaped_object }}' would result in deleting related objects, but your account doesn't have permission to delete the following types of objects:{% endblocktrans %}</h2>
|
||||
<div class="row">
|
||||
<ul class="rte">
|
||||
<div class="g-d-c">
|
||||
{% if perms_lacking or protected %}
|
||||
<div class="grp-group">
|
||||
{% if perms_lacking %}
|
||||
<h2>{% blocktrans with object as escaped_object %}Deleting the {{ object_name }} '{{ escaped_object }}' would result in deleting related objects, but your account doesn't have permission to delete the following types of objects:{% endblocktrans %}</h2>
|
||||
<ul class="grp-nested-list">
|
||||
{% for obj in perms_lacking %}
|
||||
<li>{{ obj }}</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% if protected %}
|
||||
<h2>{% blocktrans with object as escaped_object %}Deleting the {{ object_name }} '{{ escaped_object }}' would require deleting the following protected related objects:{% endblocktrans %}</h2>
|
||||
<ul class="grp-nested-list">
|
||||
{% for obj in protected %}
|
||||
<li>{{ obj }}</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% else %}
|
||||
<div class="module">
|
||||
<div class="grp-group">
|
||||
<h2>{% blocktrans with object as escaped_object %}Are you sure you want to delete the {{ object_name }} "{{ escaped_object }}"? All of the following related items will be deleted:{% endblocktrans %}</h2>
|
||||
<div class="row">
|
||||
<ul class="rte">{{ deleted_objects|unordered_list }}</ul>
|
||||
</div>
|
||||
<ul class="grp-nested-list">{{ deleted_objects|unordered_list }}</ul>
|
||||
</div>
|
||||
<form action="" method="post">{% csrf_token %}
|
||||
<div class="module footer">
|
||||
<ul class="submit-row" {% if is_popup %}style="overflow: auto;"{% endif %}>
|
||||
<li class="left cancel-button-container"><a href="../" class="cancel-link">{% trans "Cancel" %}</a></li>
|
||||
<li class="submit-button-container"><input type="submit" value="{% trans "Yes, I'm sure" %}" class="default" /></li>
|
||||
</ul><input type="hidden" name="post" value="yes" />
|
||||
<div class="grp-module grp-submit-row grp-fixed-footer">
|
||||
<ul>
|
||||
<li class="grp-float-left"><a href="../" class="grp-button grp-cancel-link">{% trans "Cancel" %}</a></li>
|
||||
<li><input type="submit" value="{% trans "Yes, I'm sure" %}" class="grp-button grp-default" /></li>
|
||||
</ul>
|
||||
<input type="hidden" name="post" value="yes" />
|
||||
</div>
|
||||
</form>
|
||||
{% endif %}
|
||||
|
|
|
@ -1,52 +1,64 @@
|
|||
{% extends "admin/base_site.html" %}
|
||||
|
||||
<!-- LOADING -->
|
||||
{% load i18n %}
|
||||
{% load url from future %}
|
||||
{% load i18n l10n admin_urls %}
|
||||
|
||||
<!-- COLTYPE/BODYCLASS-- >
|
||||
{% block bodyclass %}grp-delete-confirmation{% endblock %}
|
||||
{% block content-class %}{% endblock %}
|
||||
|
||||
<!-- BREADCRUMBS -->
|
||||
{% block breadcrumbs %}
|
||||
<div id="breadcrumbs">
|
||||
<a href="../../">{% trans "Home" %}</a> ›
|
||||
<a href="../">{{ app_label|capfirst }}</a> ›
|
||||
<a href="./">{{ opts.verbose_name_plural|capfirst }}</a> ›
|
||||
{% trans 'Delete multiple objects' %}
|
||||
</div>
|
||||
<ul class="grp-horizontal-list">
|
||||
<li><a href="../../">{% trans "Home" %}</a></li>
|
||||
<li><a href="../">{% trans app_label|capfirst|escape %}</a></li>
|
||||
<li><a href="{% url opts|admin_urlname:'changelist' %}">{{ opts.verbose_name_plural|capfirst|escape }}</a></li>
|
||||
<li>{% trans 'Delete multiple objects' %}</li>
|
||||
</ul>
|
||||
{% endblock %}
|
||||
|
||||
<!-- CONTENT -->
|
||||
{% block content %}
|
||||
<div class="container-grid delete-confirmation">
|
||||
{% if perms_lacking %}
|
||||
<div class="module">
|
||||
<h2>{% blocktrans %}Deleting the {{ objects_name }} would result in deleting related objects, but your account doesn't have permission to delete the following types of objects:{% endblocktrans %}</h2>
|
||||
<div class="row">
|
||||
<ul class="rte">
|
||||
<div class="g-d-c">
|
||||
{% if perms_lacking or protected %}
|
||||
<div class="grp-group">
|
||||
{% if perms_lacking %}
|
||||
<h2>{% blocktrans %}Deleting the selected {{ objects_name }} would result in deleting related objects, but your account doesn't have permission to delete the following types of objects:{% endblocktrans %}</h2>
|
||||
<ul class="grp-nested-list">
|
||||
{% for obj in perms_lacking %}
|
||||
<li>{{ obj }}</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% if protected %}
|
||||
<h2>{% blocktrans %}Deleting the selected {{ objects_name }} would require deleting the following protected related objects:{% endblocktrans %}</h2>
|
||||
<ul class="grp-nested-list">
|
||||
{% for obj in protected %}
|
||||
<li>{{ obj }}</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% else %}
|
||||
<div class="module">
|
||||
<h2>{% blocktrans %}Are you sure you want to delete the selected {{ objects_name }} objects? All of the following objects and their related items will be deleted:{% endblocktrans %}</h2>
|
||||
<div class="grp-group">
|
||||
<h2>{% blocktrans %}Are you sure you want to delete the selected {{ objects_name }}? All of the following objects and their related items will be deleted:{% endblocktrans %}</h2>
|
||||
{% for deleteable_object in deletable_objects %}
|
||||
<div class="row">
|
||||
<ul class="rte">{{ deleteable_object|unordered_list }}</ul>
|
||||
</div>
|
||||
<ul class="grp-nested-list">{{ deleteable_object|unordered_list }}</ul>
|
||||
{% endfor %}
|
||||
</div>
|
||||
<form action="" method="post">{% csrf_token %}
|
||||
<div class="module footer">
|
||||
<div id="submit" class="grp-module grp-submit-row grp-fixed-footer">
|
||||
{% for obj in queryset %}
|
||||
<input type="hidden" name="{{ action_checkbox_name }}" value="{{ obj.pk }}" />
|
||||
<input type="hidden" name="{{ action_checkbox_name }}" value="{{ obj.pk|unlocalize }}" />
|
||||
{% endfor %}
|
||||
<input type="hidden" name="action" value="delete_selected" />
|
||||
<input type="hidden" name="post" value="yes" />
|
||||
<ul class="submit-row" {% if is_popup %}style="overflow: auto;"{% endif %}>
|
||||
<li class="left cancel-button-container"><a href="." class="cancel-link">{% trans "Cancel" %}</a></li>
|
||||
<li class="submit-button-container"><input type="submit" value="{% trans "Yes, I'm sure" %}" class="default" /></li>
|
||||
</ul><input type="hidden" name="post" value="yes" />
|
||||
<ul>
|
||||
<li class="grp-float-left"><a href="." class="grp-button grp-cancel-link">{% trans "Cancel" %}</a></li>
|
||||
<li><input type="submit" value="{% trans "Yes, I'm sure" %}" class="grp-button grp-default" /></li>
|
||||
</ul>
|
||||
<input type="hidden" name="post" value="yes" />
|
||||
</div>
|
||||
</form>
|
||||
{% endif %}
|
||||
|
|
|
@ -1,7 +1,9 @@
|
|||
{% load i18n %}
|
||||
<div class="filter">
|
||||
<label>{% blocktrans with title as filter_title %}{{ filter_title }}{% endblocktrans %}</label>
|
||||
<select class="filter_choice">
|
||||
{% for choice in choices %}<option value="{{ choice.query_string|iriencode }}"{% if choice.selected %} selected='selected'{% endif %}>{{ choice.display|safe }}</option>{% endfor %}
|
||||
</select>
|
||||
<div class="grp-module">
|
||||
<div class="grp-row">
|
||||
<label>{% blocktrans with title|capfirst as filter_title %}{{ filter_title }}{% endblocktrans %}</label>
|
||||
<select class="grp-filter-choice">
|
||||
{% for choice in choices %}<option value="{{ choice.query_string|iriencode }}"{% if choice.selected %} selected='selected'{% endif %}>{{ choice.display|safe }}</option>{% endfor %}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
|
@ -1,7 +1,7 @@
|
|||
{% extends "admin/base_site.html" %}
|
||||
|
||||
<!-- LOADING -->
|
||||
{% load i18n adminmedia grp_tags log %}
|
||||
{% load i18n grp_tags log %}
|
||||
|
||||
<!-- JAVASCRIPTS -->
|
||||
{% block javascripts %}
|
||||
|
@ -13,49 +13,77 @@
|
|||
{% block content-class %}content-grid{% endblock %}
|
||||
|
||||
<!-- BREADCRUMBS -->
|
||||
{% block breadcrumbs %}<div id="breadcrumbs">{% trans "Home" %}</div>{% endblock %}
|
||||
{% block content_title %}{% if title %}<h1>{{ title }}</h1>{% endif %}{% endblock %}
|
||||
{% block breadcrumbs %}
|
||||
<ul class="grp-horizontal-list">
|
||||
<li>{% trans "Home" %}</li>
|
||||
</ul>
|
||||
{% endblock %}
|
||||
{% block content_title %}
|
||||
{% if title %}
|
||||
<header><h1>{{ title }}</h1></header>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
||||
<!-- CONTENT -->
|
||||
{% block content %}
|
||||
<div class="container-grid">
|
||||
<div class="column span-12">
|
||||
{% if app_list %}
|
||||
<div class="g-d-c">
|
||||
<div class="g-d-12 g-d-f">
|
||||
{% for app in app_list %}
|
||||
<div class="module" id="app_{{ app.name|lower }}">
|
||||
<h2><a href="{{ app.app_url }}" class="section">{% trans app.name %}</a></h2>
|
||||
<div class="grp-module" id="app_{{ app.name|lower }}">
|
||||
<h2><a href="{{ app.app_url }}" class="grp-section">{% trans app.name %}</a></h2>
|
||||
{% for model in app.models %}
|
||||
<div class="row">
|
||||
{% if model.perms.change %}<a href="{{ model.admin_url }}">{{ model.name }}</a>{% else %}<span>{{ model.name }}</span>{% endif %}
|
||||
<ul class="actions">
|
||||
<li class="add-link">{% if model.perms.add %}<a href="{{ model.admin_url }}add/">{% trans 'Add' %}</a>{% else %} {% endif %}</li>
|
||||
<li class="change-link"> {% if model.perms.change %}<a href="{{ model.admin_url }}">{% trans 'Change' %}</a>{% else %} {% endif %}</li>
|
||||
</ul>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% endfor %}
|
||||
{% else %}
|
||||
<p>{% trans "You don´t have permission to edit anything." %}</p>
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="column span-6 last">
|
||||
<div class="module actions" id="recent-actions-module">
|
||||
<h2>{% trans 'Recent Actions' %}</h2>
|
||||
<div class="module">
|
||||
<h3>{% trans 'My Actions' %}</h3>
|
||||
{% get_admin_log 10 as admin_log for_user user %}
|
||||
{% if not admin_log %}
|
||||
<p>{% trans 'None available' %}</p>
|
||||
{% else %}
|
||||
<ul>
|
||||
{% for entry in admin_log %}
|
||||
<li class="{% if entry.is_addition %}add-link{% endif %}{% if entry.is_change %}change-link{% endif %}{% if entry.is_deletion %}delete-link{% endif %}">{% if not entry.is_deletion %}<a href="{{ entry.get_admin_url }}">{% endif %}{{ entry.object_repr }}{% if not entry.is_deletion %}</a>{% endif %}<br /><span class="mini quiet">{% filter capfirst %}{% trans entry.content_type.name %}{% endfilter %}</span></li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% endif %}
|
||||
<div class="grp-row">
|
||||
{% if model.admin_url %}
|
||||
<a href="{{ model.admin_url }}"><strong>{{ model.name }}</strong></a>
|
||||
{% else %}
|
||||
<strong>{{ model.name }}</strong>
|
||||
{% endif %}
|
||||
{% if model.add_url or model.admin_url %}
|
||||
<ul class="grp-actions">
|
||||
{% if model.add_url %}
|
||||
<li class="grp-add-link">
|
||||
<a href="{{ model.add_url }}">{% trans "Add" %}</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
{% if model.admin_url %}
|
||||
<li class="grp-change-link">
|
||||
<a href="{{ model.admin_url }}">{% trans "Change" %}</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
</ul>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% empty %}
|
||||
<p>{% trans "You don´t have permission to edit anything." %}</p>
|
||||
{% endfor %}
|
||||
</div>
|
||||
<div class="g-d-6 g-d-l">
|
||||
<div class="grp-module" id="grp-recent-actions-module">
|
||||
<h2>{% trans 'Recent Actions' %}</h2>
|
||||
<div class="grp-module">
|
||||
<h3>{% trans 'My Actions' %}</h3>
|
||||
{% get_admin_log 10 as admin_log for_user user %}
|
||||
{% if not admin_log %}
|
||||
<div class="grp-row"><p>{% trans 'None available' %}</p></div>
|
||||
{% else %}
|
||||
<ul class="grp-listing-small">
|
||||
{% for entry in admin_log %}
|
||||
<li class="grp-row{% if entry.is_addition %} grp-add-link{% endif %}{% if entry.is_change %} grp-change-link{% endif %}{% if entry.is_deletion %} grp-delete-link{% endif %}">
|
||||
{% if entry.is_deletion %}
|
||||
<span>{{ entry.object_repr }}</span>
|
||||
{% else %}
|
||||
<a href="{{ entry.get_admin_url }}">{{ entry.object_repr }}</a>
|
||||
{% endif %}
|
||||
<span class="grp-font-color-quiet">{% filter capfirst %}{% trans entry.content_type.name %}{% endfilter %}</span>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
||||
|
|
|
@ -1,10 +1,16 @@
|
|||
{% extends "admin/base_site.html" %}
|
||||
|
||||
<!-- LOADING -->
|
||||
{% load url from future %}
|
||||
{% load i18n %}
|
||||
|
||||
<!-- BREADCRUMBS -->
|
||||
{% block breadcrumbs %}<div id="breadcrumbs"><a href="../../">{% trans 'Home' %}</a> › {{ title }}</div>{% endblock %}
|
||||
{% block breadcrumbs %}
|
||||
<ul class="grp-horizontal-list">
|
||||
<li><a href="{% url 'admin:index' %}">{% trans "Home" %}</a></li>
|
||||
<li>{{ title }}</li>
|
||||
</ul>
|
||||
{% endblock %}
|
||||
|
||||
<!-- CONTENT -->
|
||||
{% block content %}
|
||||
|
|
|
@ -1,19 +1,21 @@
|
|||
{% extends "admin/base_site.html" %}
|
||||
|
||||
<!-- LOADING -->
|
||||
{% load i18n %} {# grp_csrf #}
|
||||
{% load url from future %}
|
||||
{% load i18n %}
|
||||
|
||||
<!-- BODYCLASS -->
|
||||
{% block bodyclass %}login{% endblock %}
|
||||
{% block content-class %}content-flexible{% endblock %}
|
||||
{% block bodyclass %}grp-login{% endblock %}
|
||||
{% block content-class %}{% endblock %}
|
||||
{% block content_title %}{% endblock %}
|
||||
|
||||
<!-- EXTRAHEAD-->
|
||||
{% block extrahead %}
|
||||
{{ block.super }}
|
||||
<script type="text/javascript">
|
||||
(function($) {
|
||||
$(window).load(function(){ $('#id_username').focus(); });
|
||||
})(django.jQuery);
|
||||
})(grp.jQuery);
|
||||
</script>
|
||||
{% endblock %}
|
||||
|
||||
|
@ -22,27 +24,45 @@
|
|||
|
||||
<!-- CONTENT -->
|
||||
{% block content %}
|
||||
<div class="container-flexible login">
|
||||
<div class="column span-10 centered">
|
||||
{% if error_message %}<p class="errornote login-errors">{{ error_message }}</p>{% endif %}
|
||||
<form action="{{ app_path }}" method="post" id="login-form">{% csrf_token %}
|
||||
<fieldset class="module">
|
||||
<div class="row">
|
||||
<div class="column span-4"><label for="id_username" class="required">{% trans 'Username:' %}</label></div>
|
||||
<div class="column span-6 last"><input type="text" name="username" id="id_username" /></div>
|
||||
<div class="g-d-c g-d-12 g-centered">
|
||||
<div class="grp-login">
|
||||
{% if form.errors and not form.non_field_errors and not form.this_is_the_login_form.errors %}
|
||||
<p class="errornote">
|
||||
{% blocktrans count form.errors.items|length as counter %}Please correct the error below.{% plural %}Please correct the errors below.{% endblocktrans %}
|
||||
</p>
|
||||
{% endif %}
|
||||
{% if form.non_field_errors or form.this_is_the_login_form.errors %}
|
||||
{% for error in form.non_field_errors|add:form.this_is_the_login_form.errors %}
|
||||
<p class="errornote">{{ error }}</p>
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% if error_message %}<p class="errornote grp-login-errors">{{ error_message }}</p>{% endif %}
|
||||
<form action="{{ app_path }}" method="post" id="grp-login-form">{% csrf_token %}
|
||||
<fieldset class="grp-module">
|
||||
<div class="grp-row">
|
||||
<div class="l-2c-fluid l-d-4">
|
||||
<div class="c-1"><label for="id_username" class="required">{% trans 'Username:' %}</label></div>
|
||||
<div class="c-2">
|
||||
<input type="text" name="username" id="id_username" />
|
||||
{% if not form.this_is_the_login_form.errors %}{{ form.username.errors }}{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="column span-4"><label for="id_password" class="required">{% trans 'Password:' %}</label></div>
|
||||
<div class="column span-6 last">
|
||||
<div class="grp-row">
|
||||
<div class="l-2c-fluid l-d-4">
|
||||
<div class="c-1"><label for="id_password" class="required">{% trans 'Password:' %}</label></div>
|
||||
<div class="c-2">
|
||||
<input type="password" name="password" id="id_password" />
|
||||
<input type="hidden" name="this_is_the_login_form" value="1" />
|
||||
<input type="hidden" name="next" value="{{ next }}" />
|
||||
{% if not form.this_is_the_login_form.errors %}{{ form.password.errors }}{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
<div class="module submit-row">
|
||||
<ul class="submit-row">
|
||||
<li class="submit-button-container"><input type="submit" class="default" value="{% trans 'Log in' %}" /></li>
|
||||
<div class="grp-module grp-submit-row">
|
||||
<ul>
|
||||
<li><input type="submit" class="grp-button" value="{% trans 'Log in' %}" /></li>
|
||||
</ul>
|
||||
</div>
|
||||
</form>
|
||||
|
|
|
@ -1,47 +1,46 @@
|
|||
{% extends "admin/base_site.html" %}
|
||||
|
||||
<!-- LOADING -->
|
||||
{% load i18n %}
|
||||
{% load url from future %}
|
||||
{% load i18n admin_urls %}
|
||||
|
||||
<!-- BREADCRUMBS -->
|
||||
{% block breadcrumbs %}
|
||||
<div id="breadcrumbs">
|
||||
<a href="../../../../">{% trans 'Home' %}</a> ›
|
||||
<a href="../../../">{{ app_label|capfirst }}</a> ›
|
||||
<a href="../../">{{ module_name }}</a> ›
|
||||
<a href="../">{{ object|truncatewords:"18" }}</a> ›
|
||||
{% trans 'History' %}
|
||||
</div>
|
||||
<ul class="grp-horizontal-list">
|
||||
<li><a href="{% url 'admin:index' %}">{% trans 'Home' %}</a></li>
|
||||
<li><a href="{% url 'admin:app_list' app_label=app_label %}">{{ app_label|capfirst|escape }}</a></li>
|
||||
<li><a href="{% url opts|admin_urlname:'changelist' %}">{{ module_name }}</a></li>
|
||||
<li><a href="{% url opts|admin_urlname:'changelist' %}{{ object.pk }}">{{ object|truncatewords:"18" }}</a></li>
|
||||
<li>{% trans 'History' %}</li>
|
||||
</ul>
|
||||
{% endblock %}
|
||||
|
||||
<!-- CONTENT -->
|
||||
{% block content %}
|
||||
<div class="container-grid object-history">
|
||||
<div class="module">
|
||||
{% if action_list %}
|
||||
<table id="change-history">
|
||||
<thead>
|
||||
<div class="g-d-c grp-object-history">
|
||||
{% if action_list %}
|
||||
<table id="grp-change-history">
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col">{% trans 'Date/time' %}</th>
|
||||
<th scope="col">{% trans 'User' %}</th>
|
||||
<th scope="col">{% trans 'Action' %}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for action in action_list %}
|
||||
<tr>
|
||||
<th scope="col">{% trans 'Date/time' %}</th>
|
||||
<th scope="col">{% trans 'User' %}</th>
|
||||
<th scope="col">{% trans 'Action' %}</th>
|
||||
<th scope="grp-row">{{ action.action_time|date:_("DATETIME_FORMAT") }}</th>
|
||||
<td>{{ action.user.username }}{% if action.user.get_full_name %} ({{ action.user.get_full_name }}){% endif %}</td>
|
||||
<td>
|
||||
{{ action.change_message }}
|
||||
</td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for action in action_list %}
|
||||
<tr>
|
||||
<th scope="row">{{ action.action_time|date:_("DATETIME_FORMAT") }}</th>
|
||||
<td>{{ action.user.username }}{% if action.user.get_full_name %} ({{ action.user.get_full_name }}){% endif %}</td>
|
||||
<td>
|
||||
{{ action.change_message }}
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
{% else %}
|
||||
<p>{% trans "This object doesn't have a change history. It probably wasn't added via this admin site." %}</p>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
{% else %}
|
||||
<p>{% trans "This object doesn't have a change history. It probably wasn't added via this admin site." %}</p>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
|
|
@ -1,30 +1,30 @@
|
|||
{% load admin_list i18n %}
|
||||
|
||||
{% spaceless %}
|
||||
<div class="module pagination">
|
||||
<ul class="pagination">
|
||||
{% if cl.result_count != cl.full_result_count %}
|
||||
<li class="results"><span>
|
||||
{% blocktrans count cl.result_count as counter %}1 result{% plural %}{{ counter }} results{% endblocktrans %}
|
||||
</span></li>
|
||||
<nav class="grp-pagination">
|
||||
<header style="display:none"><h1>Pagination</h1></header>
|
||||
<ul>
|
||||
{% if cl.result_count != cl.full_result_count %}
|
||||
<li class="grp-results"><span>
|
||||
{% blocktrans count cl.result_count as counter %}{{ counter }} result{% plural %}{{ counter }} results{% endblocktrans %}
|
||||
</span></li>
|
||||
{% endif %}
|
||||
<li class="grp-results">
|
||||
{% if cl.result_count != cl.full_result_count or cl.show_all %}
|
||||
<a href="?{% if cl.is_popup %}pop=1{% endif %}" class="total">{% blocktrans with cl.full_result_count as full_result_count %}{{ full_result_count }} total{% endblocktrans %}</a>
|
||||
{% else %}
|
||||
<span>{% blocktrans with cl.full_result_count as full_result_count %}{{ full_result_count }} total{% endblocktrans %}</span>
|
||||
{% endif %}
|
||||
<li class="results">
|
||||
{% if cl.result_count != cl.full_result_count or cl.show_all %}
|
||||
<a href="?{% if cl.is_popup %}pop=1{% endif %}" class="total">{% blocktrans with cl.full_result_count as full_result_count %}{{ full_result_count }} total{% endblocktrans %}</a>
|
||||
</li>
|
||||
{% if pagination_required %}
|
||||
{% for i in page_range %}
|
||||
{% ifequal i "." %}
|
||||
<li class="grp-separator"><span>...</span></li>
|
||||
{% else %}
|
||||
<span>{% blocktrans with cl.full_result_count as full_result_count %}{{ full_result_count }} total{% endblocktrans %}</span>
|
||||
{% endif %}
|
||||
</li>
|
||||
{% if pagination_required %}
|
||||
{% for i in page_range %}
|
||||
{% ifequal i "." %}
|
||||
<li class="separator"><span>...</span></li>
|
||||
{% else %}
|
||||
<li>{% paginator_number cl i %}</li>
|
||||
{% endifequal %}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% if show_all_url %}<li class="showall"><a href="{{ show_all_url }}">{% trans 'Show all' %}</a></li>{% endif %}
|
||||
</ul><br clear="all" />
|
||||
</div>
|
||||
<li>{% paginator_number cl i %}</li>
|
||||
{% endifequal %}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% if show_all_url %}<li class="grp-showall"><a href="{{ show_all_url }}">{% trans 'Show all' %}</a></li>{% endif %}
|
||||
</ul>
|
||||
</nav>
|
||||
{% endspaceless %}
|
|
@ -1,17 +1,28 @@
|
|||
{% load l10n %}
|
||||
|
||||
<script type="text/javascript">
|
||||
(function( $ ) {
|
||||
{% for field in prepopulated_fields %}
|
||||
$("#{{ field.field.auto_id }}").bind('change.grappelli', function() {
|
||||
$(this).data('changed', true);
|
||||
});
|
||||
{% for dependency in field.dependencies %}
|
||||
$("#{{ dependency.auto_id }}").bind('keyup.grappelli', function() {
|
||||
var e = $("#{{ field.field.auto_id }}");
|
||||
if (!e.data('changed')) {
|
||||
e.val(URLify({% for innerdep in field.dependencies %}$("#{{ innerdep.auto_id }}").val(){% if not forloop.last %} + ' ' + {% endif %}{% endfor %}, {{ field.field.field.max_length|default_if_none:"50" }}));
|
||||
}
|
||||
});
|
||||
{% endfor %}
|
||||
{% endfor %}
|
||||
})(django.jQuery);
|
||||
(function($) {
|
||||
var field;
|
||||
|
||||
{% for field in prepopulated_fields %}
|
||||
field = {
|
||||
id: '#{{ field.field.auto_id }}',
|
||||
dependency_ids: [],
|
||||
dependency_list: [],
|
||||
maxLength: {{ field.field.field.max_length|default_if_none:"50"|unlocalize }}
|
||||
};
|
||||
|
||||
{% for dependency in field.dependencies %}
|
||||
field['dependency_ids'].push('#{{ dependency.auto_id }}');
|
||||
field['dependency_list'].push('{{ dependency.name }}');
|
||||
{% endfor %}
|
||||
|
||||
{% comment %}
|
||||
Mark prepopulated fields in the main form and stacked inlines (.empty-form .form-row) and in tabular inlines (.empty-form.form-row)
|
||||
{% endcomment %}
|
||||
$('.empty-form .form-row .field-{{ field.field.name }}, .empty-form.form-row .field-{{ field.field.name }}').addClass('prepopulated_field');
|
||||
$(field.id).data('dependency_list', field['dependency_list'])
|
||||
.prepopulate(field['dependency_ids'], field.maxLength);
|
||||
{% endfor %}
|
||||
})(grp.jQuery);
|
||||
</script>
|
||||
|
|
|
@ -1,20 +1,11 @@
|
|||
{% load adminmedia i18n grp_tags %}
|
||||
{% load i18n grp_tags %}
|
||||
{% if cl.search_fields %}
|
||||
{% comment %}{% get_search_fields_verbose cl.opts as search_fields_verbose %}{% endcomment %}
|
||||
<!-- Search Form -->
|
||||
<form id="changelist-search" action="" method="get">
|
||||
<input type="text" name="{{ search_var }}" id="searchbar" value="{{ cl.query }}" />
|
||||
<button type="submit" value="" class="search"> </button>
|
||||
<form id="grp-changelist-search" action="" method="get">
|
||||
<input type="text" name="{{ search_var }}" id="grp-changelist-search" class="grp-search-field" value="{{ cl.query }}" />
|
||||
<button type="submit" value="" class="grp-search-button"></button>
|
||||
{% for pair in cl.params.items %}
|
||||
{% ifnotequal pair.0 search_var %}<input type="hidden" name="{{ pair.0 }}" value="{{ pair.1 }}"/>{% endifnotequal %}
|
||||
{% endfor %}
|
||||
{% comment %}
|
||||
{% if search_fields_verbose and not cl.query %}
|
||||
<div id="searchbar_tooltip" class="tooltip search-fields" style="display: none;">
|
||||
<div class="tooltip-pointer"> </div>
|
||||
<div class="tooltip-content"><strong>{% trans 'Search' %}:</strong> {{ search_fields_verbose }}</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endcomment %}
|
||||
</form>
|
||||
{% endif %}
|
|
@ -1,12 +1,21 @@
|
|||
{% load i18n %}
|
||||
<div class="module footer">
|
||||
<ul class="submit-row">
|
||||
{% if show_delete_link %}<li class="left delete-link-container"><a href="delete/" class="delete-link">Delete</a></li>{% endif %}
|
||||
{% comment %}<li class="left cancel-link-container"><a href="#" class="cancel-link">Cancel</a></li>{% endcomment %}
|
||||
{% if show_save %}<li class="submit-button-container"><input type="submit" value="{% trans 'Save' %}" class="default" name="_save" {{ onclick_attrib }}/></li>{% endif %}
|
||||
{% if show_save_as_new %}<li class="submit-button-container"><input type="submit" value="{% trans 'Save as new' %}" name="_saveasnew" {{ onclick_attrib }}/></li>{% endif %}
|
||||
{% if show_save_and_add_another %}<li class="submit-button-container"><input type="submit" value="{% trans 'Save and add another' %}" name="_addanother" {{ onclick_attrib }} /></li>{% endif %}
|
||||
{% if show_save_and_continue %}<li class="submit-button-container"><input type="submit" value="{% trans 'Save and continue editing' %}" name="_continue" {{ onclick_attrib }}/></li>{% endif %}
|
||||
{% comment %}<li><input type="reset" value="Reset" /></li>{% endcomment %}
|
||||
</ul><br clear="all" />
|
||||
</div>
|
||||
<footer class="grp-module grp-submit-row grp-fixed-footer">
|
||||
<header style="display:none"><h1>Submit Options</h1></header>
|
||||
<ul>
|
||||
{% if show_delete_link %}
|
||||
<li class="grp-float-left"><a href="delete/" class="grp-button grp-delete-link">{% trans "Delete" %}</a></li>
|
||||
{% endif %}
|
||||
{% if show_save %}
|
||||
<li><input type="submit" value="{% trans 'Save' %}" class="grp-button grp-default" name="_save" {{ onclick_attrib }}/></li>
|
||||
{% endif %}
|
||||
{% if show_save_as_new %}
|
||||
<li><input type="submit" value="{% trans 'Save as new' %}" class="grp-button" name="_saveasnew" {{ onclick_attrib }}/></li>
|
||||
{% endif %}
|
||||
{% if show_save_and_add_another %}
|
||||
<li><input type="submit" value="{% trans 'Save and add another' %}" class="grp-button" name="_addanother" {{ onclick_attrib }} /></li>
|
||||
{% endif %}
|
||||
{% if show_save_and_continue %}
|
||||
<li><input type="submit" value="{% trans 'Save and continue editing' %}" class="grp-button" name="_continue" {{ onclick_attrib }}/></li>
|
||||
{% endif %}
|
||||
</ul>
|
||||
</footer>
|
||||
|
|
|
@ -8,15 +8,15 @@
|
|||
{% if form.error_dict %}
|
||||
<p class="errornote">Your template had {{ form.error_dict.items|length }} error{{ form.error_dict.items|pluralize }}:</p>
|
||||
{% endif %}
|
||||
<fieldset class="module aligned">
|
||||
<div class="row{% if form.site.errors %} error{% endif %} required">
|
||||
<fieldset class="grp-module aligned">
|
||||
<div class="grp-row{% if form.site.errors %} error{% endif %} required">
|
||||
<div class="column span-4"><h4><label for="id_site" class="required">Site:</label></h4></div>
|
||||
<div class="column span-flexible">
|
||||
{{ form.site }}
|
||||
{% if form.site.errors %}{{ form.site.html_error_list }}{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
<div class="row{% if form.template.errors %} error{% endif %} required">
|
||||
<div class="grp-row{% if form.template.errors %} error{% endif %} required">
|
||||
<div class="column span-4"><h4><label for="id_template" class="required">Template:</label></h4></div>
|
||||
<div class="column span-flexible">
|
||||
{{ form.template }}
|
||||
|
@ -24,9 +24,9 @@
|
|||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
<div class="submit-row">
|
||||
<ul class="submit-row">
|
||||
<li class="submit-button-container"><input type="submit" value="Check for errors" class="default" /></li>
|
||||
<div class="grp-submit-row">
|
||||
<ul class="grp-submit-row">
|
||||
<li class="grp-submit-button-container"><input type="submit" value="Check for errors" class="grp-default" /></li>
|
||||
</ul>
|
||||
</div>
|
||||
</form>
|
||||
|
|
Loading…
Reference in New Issue