diff --git a/chrono/manager/templates/chrono/manager_agenda_settings.html b/chrono/manager/templates/chrono/manager_agenda_settings.html index c4435c1a..56aa3e96 100644 --- a/chrono/manager/templates/chrono/manager_agenda_settings.html +++ b/chrono/manager/templates/chrono/manager_agenda_settings.html @@ -3,7 +3,11 @@ {% block breadcrumb %} {{ block.super }} +{% if desk %} +{% trans "Settings" %} +{% else %} {% trans "Settings" %} +{% endif %} {% endblock %} {% block appbar %} @@ -144,7 +148,7 @@ {% if user_can_manage %}{% trans "remove" %}{% endif %} {% endfor %} {% if not desk.are_all_exceptions_displayed %} -
  • ({% trans 'see all exceptions' %})
  • +
  • ({% trans 'see all exceptions' %})
  • {% endif %}
  • {% trans 'Add a time period exception' %}
  • {% endif %} diff --git a/chrono/manager/templates/chrono/manager_time_period_exception_list.html b/chrono/manager/templates/chrono/manager_time_period_exception_list.html index d77e0824..1c934f72 100644 --- a/chrono/manager/templates/chrono/manager_time_period_exception_list.html +++ b/chrono/manager/templates/chrono/manager_time_period_exception_list.html @@ -1,4 +1,4 @@ -{% extends "chrono/manager_desk_form.html" %} +{% extends "chrono/manager_agenda_settings.html" %} {% load i18n %} {% block extrascripts %} @@ -8,9 +8,7 @@ {% block breadcrumb %} {{ block.super }} -{% if desk %} -{{desk.label}} -{% endif %} +{% trans "All exceptions" %} {% endblock %} {% block appbar %} @@ -26,5 +24,11 @@ {% endfor %} + + {% if not page_obj %} +

    {% trans "Show more..." %}

    + {% endif %} + + {% include "gadjo/pagination.html" %} {% endblock %} diff --git a/chrono/manager/urls.py b/chrono/manager/urls.py index 367278a7..eba7a170 100644 --- a/chrono/manager/urls.py +++ b/chrono/manager/urls.py @@ -76,6 +76,8 @@ urlpatterns = [ name='chrono-manager-time-period-exception-edit'), url(r'^time-period-exceptions/(?P\d+)/delete$', views.time_period_exception_delete, name='chrono-manager-time-period-exception-delete'), + url(r'^time-period-exceptions/(?P\d+)/exception-extract-list$', views.time_period_exception_extract_list, + name='chrono-manager-time-period-exception-extract-list'), url(r'^time-period-exceptions/(?P\d+)/exception-list$', views.time_period_exception_list, name='chrono-manager-time-period-exception-list'), diff --git a/chrono/manager/views.py b/chrono/manager/views.py index 5962bcd5..53059fb8 100644 --- a/chrono/manager/views.py +++ b/chrono/manager/views.py @@ -747,6 +747,7 @@ time_period_exception_edit = TimePeriodExceptionEditView.as_view() class TimePeriodExceptionListView(ManagedDeskMixin, ListView): template_name = 'chrono/manager_time_period_exception_list.html' model = TimePeriodException + paginate_by = 20 def get_queryset(self): return self.model.objects.filter(desk=self.desk, end_datetime__gte=now()) @@ -760,6 +761,17 @@ class TimePeriodExceptionListView(ManagedDeskMixin, ListView): time_period_exception_list = TimePeriodExceptionListView.as_view() +class TimePeriodExceptionExtractListView(TimePeriodExceptionListView): + paginate_by = None # no pagination + + def get_queryset(self): + # but limit queryset + return super(TimePeriodExceptionExtractListView, self).get_queryset()[:10] + + +time_period_exception_extract_list = TimePeriodExceptionExtractListView.as_view() + + class TimePeriodExceptionDeleteView(ManagedDeskSubobjectMixin, DeleteView): template_name = 'chrono/manager_confirm_delete.html' model = TimePeriodException diff --git a/tests/test_manager.py b/tests/test_manager.py index 86498107..e0333f6f 100644 --- a/tests/test_manager.py +++ b/tests/test_manager.py @@ -926,7 +926,7 @@ def test_meetings_agenda_add_time_period_exception(app, admin_user): assert TimePeriodException.objects.count() == 2 assert 'Exception 1' in resp.text assert 'Exception 2' not in resp.text - resp = resp.click(href="/manage/time-period-exceptions/%d/exception-list" % agenda.desk_set.first().pk) + resp = resp.click(href="/manage/time-period-exceptions/%d/exception-extract-list" % agenda.desk_set.first().pk) assert 'Exception 1' in resp.text assert 'Exception 2' in resp.text @@ -1057,6 +1057,11 @@ def test_exception_list(app, admin_user): assert '/manage/time-period-exceptions/%d/edit' % current_exception.pk in resp.text assert '/manage/time-period-exceptions/%d/edit' % future_exception.pk in resp.text + resp = resp.click(href="/manage/time-period-exceptions/%d/exception-extract-list" % desk.pk) + assert '/manage/time-period-exceptions/%d/edit' % past_exception.pk not in resp.text + assert '/manage/time-period-exceptions/%d/edit' % current_exception.pk in resp.text + assert '/manage/time-period-exceptions/%d/edit' % future_exception.pk in resp.text + resp = resp.click(href="/manage/time-period-exceptions/%d/exception-list" % desk.pk) assert '/manage/time-period-exceptions/%d/edit' % past_exception.pk not in resp.text assert '/manage/time-period-exceptions/%d/edit' % current_exception.pk in resp.text