diff --git a/crud.py b/crud.py index 1b4194739..41548d106 100644 --- a/crud.py +++ b/crud.py @@ -88,10 +88,6 @@ class CrudListMixin(): paginate_by = 10 no_entries_msg = _('Nenhum registro encontrado.') - @property - def title(self): - return self.verbose_name_plural - def _as_row(self, obj): return [ (get_field_display(obj, name)[1], obj.pk if i == 0 else None) @@ -99,6 +95,7 @@ class CrudListMixin(): def get_context_data(self, **kwargs): context = super(CrudListMixin, self).get_context_data(**kwargs) + context.setdefault('title', self.verbose_name_plural) # pagination page_obj = context['page_obj'] @@ -128,11 +125,6 @@ class CrudCreateMixin(FormMessagesMixin): form_invalid_message = make_form_invalid_message( _('O registro não foi criado.')) - @property - def title(self): - return _('Adicionar %(verbose_name)s') % { - 'verbose_name': self.verbose_name} - @property def cancel_url(self): return self.list_url @@ -140,13 +132,14 @@ class CrudCreateMixin(FormMessagesMixin): def get_success_url(self): return self.detail_url + def get_context_data(self, **kwargs): + kwargs.setdefault('title', _('Adicionar %(verbose_name)s') % { + 'verbose_name': self.verbose_name}) + return super(CrudCreateMixin, self).get_context_data(**kwargs) -class CrudDetailMixin(): - @property - def title(self): - # TODO: can we just use view.object in the templates???? - return str(self.object) +class CrudDetailMixin(): + pass class CrudUpdateMixin(FormMessagesMixin): @@ -155,10 +148,6 @@ class CrudUpdateMixin(FormMessagesMixin): form_invalid_message = make_form_invalid_message( _('Suas alterações não foram salvas.')) - @property - def title(self): - return str(self.object) - @property def cancel_url(self): return self.detail_url @@ -173,6 +162,10 @@ class CrudDeleteMixin(FormMessagesMixin): form_invalid_message = make_form_invalid_message( _('O registro não foi excluído.')) + @property + def cancel_url(self): + return self.detail_url + def get_success_url(self): return self.list_url diff --git a/crud_tests/templates/base.html b/crud_tests/templates/base.html index 75b4487c2..8a9dc002b 100644 --- a/crud_tests/templates/base.html +++ b/crud_tests/templates/base.html @@ -24,11 +24,15 @@ {% block base_header %}
- {% block title %} - {% if view.title %} -

{{ view.title|linebreaksbr }}

+ {% block title %} +

+ {% if title %} + {{ title|safe|linebreaksbr }} + {% elif object %} + {{ object|safe|linebreaksbr }} {% endif %} - {% endblock %} +

+ {% endblock %}
{% endblock base_header %} diff --git a/crud_tests/test_flux.py b/crud_tests/test_flux.py index 16a63948a..f60b2e6a0 100644 --- a/crud_tests/test_flux.py +++ b/crud_tests/test_flux.py @@ -148,7 +148,7 @@ def test_reverse(): def assert_h1(res, title): - assert res.html.find('main').find('h1').text == title + assert res.html.find('main').find('h1').text.strip() == title NO_ENTRIES_MSG = str(CrudListMixin.no_entries_msg) # "unlazy" @@ -178,8 +178,8 @@ def assert_on_detail_page(res, stub_name): @pytest.mark.parametrize("num_entries, page_size, ranges, page_list", [ (0, 6, [], []), (5, 5, [(0, 5)], []), - (10, 5, [(0, 5), (5, 10)], ['«', '1', '2', '»']), - (9, 4, [(0, 4), (4, 8), (8, 9)], ['«', '1', '2', '3', '»']), + (10, 5, [(0, 5), (5, 10)], ['Anterior', '1', '2', 'Próxima']), + (9, 4, [(0, 4), (4, 8), (8, 9)], ['Anterior', '1', '2', '3', 'Próxima']), ]) def test_flux_list_paginate_detail( app, monkeypatch, num_entries, page_size, ranges, page_list): diff --git a/templates/base.html b/templates/base.html index 94a6b4357..1e619c84c 100644 --- a/templates/base.html +++ b/templates/base.html @@ -111,17 +111,17 @@ {% block main_header %}
- + {% block sections_nav %} {% subnav %} {% endblock sections_nav %}
@@ -155,12 +155,12 @@ {% block title %}

- {% if view.title %} - {{ view.title|safe|linebreaksbr }} - {% else %} + {% if title %} {{ title|safe|linebreaksbr }} + {% elif object %} + {{ object|safe|linebreaksbr }} {% endif %} -

+ {% endblock %} diff --git a/templates/crud/confirm_delete.html b/templates/crud/confirm_delete.html index 703afe2a2..685c0d4ac 100644 --- a/templates/crud/confirm_delete.html +++ b/templates/crud/confirm_delete.html @@ -1,12 +1,6 @@ {% extends "base.html" %} {% load i18n %} -{% block title %} - {% with object as title %} - {{ block.super }} - {% endwith %} -{% endblock %} - {% block base_content %}
{% csrf_token %}
@@ -16,7 +10,7 @@ {% endblocktrans %}
- {% trans 'Cancelar' %} + {% trans 'Cancelar' %}
diff --git a/templates/crud/detail.html b/templates/crud/detail.html index f35d0d469..5eb502d19 100644 --- a/templates/crud/detail.html +++ b/templates/crud/detail.html @@ -3,7 +3,6 @@ {% block base_content %} - {# FIXME is this the best markup to use? #}
{% block actions %}
diff --git a/templates/crud/list.html b/templates/crud/list.html index cfa20b5aa..297be1c3d 100644 --- a/templates/crud/list.html +++ b/templates/crud/list.html @@ -3,15 +3,11 @@ {% block base_content %} -{# FIXME is this the best markup to use? #}
{% blocktrans with verbose_name=view.verbose_name %} Adicionar {{ verbose_name }} {% endblocktrans %} - - {% block more_buttons %} - {% endblock more_buttons %} - + {% block more_buttons %}{% endblock more_buttons %}
{% if not rows %} @@ -43,40 +39,6 @@ {% endif %} +{% include "paginacao.html" %} -{% if is_paginated %} -
- -
-{% endif %} {% endblock %}