]> git.parisson.com Git - teleforma.git/commitdiff
user filter by course
authoryomguy <yomguy@parisson.com>
Fri, 27 Apr 2012 20:44:55 +0000 (22:44 +0200)
committeryomguy <yomguy@parisson.com>
Fri, 27 Apr 2012 20:44:55 +0000 (22:44 +0200)
teleforma/templates/telemeta/users.html
teleforma/urls.py
teleforma/views.py

index b0583b5c27dfa4640b6ece681204c9ca155bb0d2..7b0c10a31a54d5e051a44f1a4d5629051a23eced 100644 (file)
 <h3><img src="{% url telemeta-images "module_playlist.png" %}" alt="playlists" style="vertical-align:middle" />{% trans "Trainings" %}</h3>
 <div style="background: white;">
 <ul>
-{% block courses %}
+{% block trainings %}
 {% for training in trainings %}
 <li><a href="{% url teleforma-training-users training.id %}">{{ training.code|lower|capfirst }}</a></li>
 {% endfor %}
-{% endblock courses %}
+{% endblock trainings %}
 </ul>
 </div>
 </div>
 </div>
 </div>
 
+<div class="module">
+<h3><img src="{% url telemeta-images "module_playlist.png" %}" alt="playlists" style="vertical-align:middle" />{% trans "Courses" %}</h3>
+<div style="background: white;">
+<ul>
+{% block courses %}
+{% for course in courses %}
+<li><a href="{% url teleforma-course-users course.id %}">{{ course }}</a></li>
+{% endfor %}
+{% endblock courses %}
+</ul>
+</div>
+</div>
 
 {% if all_users %}
 <div class="module_action">
@@ -55,7 +67,7 @@
 </div>
 {% endif %}
 
-<div class="course_title">{% trans "Users" %}{% if training %} - {{ training }}{% elif iej %} - {{ iej }}{% endif %}</div>
+<div class="course_title">{% trans "Users" %}{% if training %} - {{ training }}{% elif iej %} - {{ iej }}{% elif course %} - {{ course }}{% endif %}</div>
 <br />
  {% if users %}
   {% include "telemeta/inc/user_list.html" %}
index c05fcbaef17b9ad85e1d65f9a7a74eb25713ffe4..0b9c9b18878d4affa25c4d90f96916e5fa1bfe03 100644 (file)
@@ -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<id>.*)/export/$', user_export.by_training, name="teleforma-training-users-export"),
     url(r'^users/(?P<id>.*)/login/$', UserLoginView.as_view(), name="teleforma-user-login"),
index d879a98ec92a3cac599e37e414befcba02a649f4..a9d2c5ffb1ea1d89e441ab5b86fb55f86383dce3 100755 (executable)
@@ -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):