From 7e6a0ac7668024541c4ee1e3ba832b1f1b50bfc8 Mon Sep 17 00:00:00 2001 From: yomguy Date: Fri, 27 Apr 2012 22:44:55 +0200 Subject: [PATCH] user filter by course --- teleforma/templates/telemeta/users.html | 18 +++++++++++++++--- teleforma/urls.py | 1 + teleforma/views.py | 16 ++++++++++++++++ 3 files changed, 32 insertions(+), 3 deletions(-) diff --git a/teleforma/templates/telemeta/users.html b/teleforma/templates/telemeta/users.html index b0583b5c..7b0c10a3 100644 --- a/teleforma/templates/telemeta/users.html +++ b/teleforma/templates/telemeta/users.html @@ -16,11 +16,11 @@

playlists{% trans "Trainings" %}

@@ -38,6 +38,18 @@ +
+

playlists{% trans "Courses" %}

+
+
    +{% block courses %} +{% for course in courses %} +
  • {{ course }}
  • +{% endfor %} +{% endblock courses %} +
+
+
{% if all_users %}
@@ -55,7 +67,7 @@
{% endif %} -
{% trans "Users" %}{% if training %} - {{ training }}{% elif iej %} - {{ iej }}{% endif %}
+
{% trans "Users" %}{% if training %} - {{ training }}{% elif iej %} - {{ iej }}{% elif course %} - {{ course }}{% endif %}

{% if users %} {% include "telemeta/inc/user_list.html" %} diff --git a/teleforma/urls.py b/teleforma/urls.py index c05fcbae..0b9c9b18 100644 --- a/teleforma/urls.py +++ b/teleforma/urls.py @@ -63,6 +63,7 @@ urlpatterns = patterns('', url(r'^users/$', UsersView.as_view(), name="teleforma-users"), url(r'^users/by_training/(\w+)/$', UsersTrainingView.as_view(), name="teleforma-training-users"), url(r'^users/by_iej/(\w+)/$', UsersIejView.as_view(), name="teleforma-iej-users"), + url(r'^users/by_course/(\w+)/$', UsersCourseView.as_view(), name="teleforma-course-users"), url(r'^users/all/export/$', user_export.all, name="teleforma-users-xls-export"), url(r'^users/by_training/(?P.*)/export/$', user_export.by_training, name="teleforma-training-users-export"), url(r'^users/(?P.*)/login/$', UserLoginView.as_view(), name="teleforma-user-login"), diff --git a/teleforma/views.py b/teleforma/views.py index d879a98e..a9d2c5ff 100755 --- a/teleforma/views.py +++ b/teleforma/views.py @@ -213,6 +213,7 @@ class UsersView(ListView): context['trainings'] = Training.objects.all() context['all_users'] = User.objects.all() context['iejs'] = IEJ.objects.all() + context['courses'] = Course.objects.all() paginator = NamePaginator(self.object_list, on="last_name", per_page=12) try: page = int(self.request.GET.get('page', '1')) @@ -277,6 +278,21 @@ class UsersIejView(UsersView): def dispatch(self, *args, **kwargs): return super(UsersIejView, self).dispatch(*args, **kwargs) +class UsersCourseView(UsersView): + + def get_queryset(self): + self.course = Course.objects.filter(id=self.args[0]) + return User.objects.filter(student__training__courses__in=self.course) + + def get_context_data(self, **kwargs): + context = super(UsersCourseView, self).get_context_data(**kwargs) + context['course'] = Course.objects.get(id=self.args[0]) + context['all_users'] = User.objects.filter(student__training__courses__in=self.course).all() + return context + + @method_decorator(login_required) + def dispatch(self, *args, **kwargs): + return super(UsersCourseView, self).dispatch(*args, **kwargs) class UsersXLSExport(object): -- 2.39.5