Compare commits

...

2 Commits

7 changed files with 40 additions and 31 deletions

View File

@ -119,7 +119,17 @@ ul.actions li {
.form-control { .form-control {
border: 1px solid #ccc; border: 1px solid #ccc;
box-shadow: inset 0 1px 1px rgba(0,0,0,.075); box-shadow: inset 0 1px 1px rgba(0,0,0,.075);
} width: 100%;
}
.checkbox .form-control {
min-width: auto;
width: auto;
}
.checkbox label {
padding-right: 1em;
}
.errorlist { .errorlist {
display: block;; display: block;;
@ -151,7 +161,7 @@ textarea {
} }
.form-inline .form-group { .form-inline .form-group {
vertical-align: middle; vertical-align: top;
display: inline-block; display: inline-block;
margin-bottom: 0; margin-bottom: 0;
} }
@ -160,14 +170,6 @@ textarea {
min-width: 15em; min-width: 15em;
} }
.form-inline .checkbox .form-control {
min-width: auto;
}
.form-inline .checkbox label {
padding-right: 1em;
}
.form-inline .form-control.select2 { .form-inline .form-control.select2 {
display: inline-block; display: inline-block;
} }

View File

@ -74,6 +74,20 @@
{% endif %} {% endif %}
{% endblock %} {% endblock %}
{% block actions %}
{% if actions %}
<ul class="actions">
{% for target_url, icon, label in actions %}
{% if icon %}
<li><a href="{{ target_url }}"><i class="fas {{ icon }}" title="{{ label }}"></i></a></li>
{% else %}
<li><a href="{{ target_url }}">{{ label }}</a></li>
{% endif %}
{% endfor %}
</ul>
{% endif %}
{% endblock %}
{% block content %} {% block content %}
{% endblock %} {% endblock %}
</div> </div>

View File

@ -15,8 +15,10 @@
{% endfor %} {% endfor %}
{% endblock %} {% endblock %}
{% block extra_form %}{% endblock %}
<ul class="actions"> <ul class="actions">
{% block actions %} {% block form_actions %}
{% if not is_popup %} {% if not is_popup %}
<li><a href="{{ view.get_success_url }}">{% trans "Cancel" %}</a></li> <li><a href="{{ view.get_success_url }}">{% trans "Cancel" %}</a></li>
{% endif %} {% endif %}
@ -26,8 +28,8 @@
{% if not is_popup %} {% if not is_popup %}
<li><button name="save_and_continue" type="submit">{% trans "Save and continue" %}</button> <li><button name="save_and_continue" type="submit">{% trans "Save and continue" %}</button>
{% endif %} {% endif %}
{% block extra_actions %}{% endblock %} {% block extra_form_actions %}{% endblock %}
{% endblock actions %} {% endblock form_actions %}
</ul> </ul>
</form> </form>
{% endblock %} {% endblock %}

View File

@ -4,16 +4,6 @@
{% load form_tags %} {% load form_tags %}
{% block content %} {% block content %}
{% block actions %}
{% if actions %}
<ul class="actions">
{% for target_url, icon, label in actions %}
<li><a href="{{ target_url }}"><i class="fas {{ icon }}" title="{{ label }}"></i></a></li>
{% endfor %}
</ul>
{% endif %}
{% endblock %}
{% block filter_form %} {% block filter_form %}
{% if filter_form %} {% if filter_form %}
<form class="filter-form form-inline" action="." method="GET"> <form class="filter-form form-inline" action="." method="GET">

View File

@ -4,7 +4,7 @@
{% if field.field.required %} required{% endif %} {% if field.field.required %} required{% endif %}
{% if field.errors %} has-error{% endif %} {% if field.errors %} has-error{% endif %}
"> ">
<label>{{ field.label }}</label> <label for="{{ field.id_for_label }}">{{ field.label }}</label>
{% add_widget_attrs field placeholder=field.label %} {% add_widget_attrs field placeholder=field.label %}
{{ field }} {{ field }}

View File

@ -7,14 +7,15 @@ from django.urls import reverse
register = template.Library() register = template.Library()
def base_form_field(field, css='form-control', container_class='', add_another_url=None, field_template=None): def base_form_field(field, css=None, container_class='', add_another_url=None, field_template=None):
if field.is_hidden: if field.is_hidden:
return str(field) return str(field)
classes = field.field.widget.attrs.get('class', '').split(' ') classes = field.field.widget.attrs.get('class', '').split(' ')
classes.append('form-control')
if css: if css:
classes.append(css) classes.append(css)
if isinstance(field.field.widget, forms.Select): if isinstance(field.field.widget, forms.Select):
classes.append('select2') classes.append('select2')

View File

@ -44,6 +44,7 @@ class GASMixin:
help_text = '' help_text = ''
success_message = _("Operation successful.") success_message = _("Operation successful.")
breadcrumbs = [] breadcrumbs = []
actions = None
def dispatch(self, *args, **kwargs): def dispatch(self, *args, **kwargs):
user = self.request.user user = self.request.user
@ -93,6 +94,9 @@ class GASMixin:
" Returns a list of (url, label) tuples for the breadcrumbs " " Returns a list of (url, label) tuples for the breadcrumbs "
return self.breadcrumbs return self.breadcrumbs
def get_actions(self):
return self.actions or []
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
ctx = super().get_context_data(**kwargs) ctx = super().get_context_data(**kwargs)
ctx.update({ ctx.update({
@ -101,6 +105,7 @@ class GASMixin:
'title': self.get_title(), 'title': self.get_title(),
'help_text': self.get_help_text(), 'help_text': self.get_help_text(),
'breadcrumbs': self.get_breadcrumbs(), 'breadcrumbs': self.get_breadcrumbs(),
'actions': self.get_actions(),
'gas_title': gas_settings.TITLE, 'gas_title': gas_settings.TITLE,
'logo_static_url': gas_settings.LOGO, 'logo_static_url': gas_settings.LOGO,
'css': gas_settings.MEDIA['css'], 'css': gas_settings.MEDIA['css'],
@ -112,7 +117,6 @@ class GASMixin:
class GASListView(GASMixin, ListView): class GASListView(GASMixin, ListView):
""" ListView, permite indicar un formulario para filtrar contenido. """ """ ListView, permite indicar un formulario para filtrar contenido. """
filter_form_class = None filter_form_class = None
actions = None
def get_filter_form(self): def get_filter_form(self):
if self.filter_form_class is None: if self.filter_form_class is None:
@ -131,14 +135,10 @@ class GASListView(GASMixin, ListView):
qs = super().get_queryset() qs = super().get_queryset()
return self.filter_queryset(qs) return self.filter_queryset(qs)
def get_actions(self):
return self.actions or []
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
ctx = super().get_context_data(**kwargs) ctx = super().get_context_data(**kwargs)
ctx.update({ ctx.update({
'filter_form': self.filter_form, 'filter_form': self.filter_form,
'actions': self.get_actions(),
}) })
return ctx return ctx