From: yomguy Date: Fri, 27 Apr 2012 20:44:55 +0000 (+0200) Subject: user filter by course X-Git-Tag: 0.3~4 X-Git-Url: https://git.parisson.com/?a=commitdiff_plain;h=7e6a0ac7668024541c4ee1e3ba832b1f1b50bfc8;p=teleforma.git user filter by course --- 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):