]> git.parisson.com Git - teleforma.git/commitdiff
add context exports, fix various User queries
authoryomguy <yomguy@parisson.com>
Fri, 27 Apr 2012 23:25:02 +0000 (01:25 +0200)
committeryomguy <yomguy@parisson.com>
Fri, 27 Apr 2012 23:25:02 +0000 (01:25 +0200)
teleforma/templates/telemeta/users.html
teleforma/urls.py
teleforma/views.py

index f07710a85562b68e7670ac3923732dce4be0ed08..fc0e9f6e0dbba94e850b711db6edff0c8517e1f0 100644 (file)
@@ -63,7 +63,7 @@
 
 {% if user.is_staff %}
 <div style="float:right;">
-<a href="{% if training %}{% url teleforma-training-users-export training.id %}{% else %}{% url teleforma-users-xls-export %}{% endif %}" class="component_icon button icon_csv">XLS Export</a>
+<a href="{% if training %}{% url teleforma-training-users-export training.id %}{% elif iej %}{% url teleforma-iej-users-export iej.id %}{% elif course %}{% url teleforma-course-users-export course.id %}{% else %}{% url teleforma-users-xls-export %}{% endif %}" class="component_icon button icon_csv">XLS Export</a>
 </div>
 {% endif %}
 
index 0b9c9b18878d4affa25c4d90f96916e5fa1bfe03..9b2c3f1454b405b72db985d2bfcfe7caa1ac6e58 100644 (file)
@@ -61,12 +61,18 @@ urlpatterns = patterns('',
 
     # Users
     url(r'^users/$', UsersView.as_view(), name="teleforma-users"),
+    url(r'^users/(?P<id>.*)/login/$', UserLoginView.as_view(), name="teleforma-user-login"),
+    url(r'^users/all/export/$', user_export.all, name="teleforma-users-xls-export"),
+
     url(r'^users/by_training/(\w+)/$', UsersTrainingView.as_view(), name="teleforma-training-users"),
+    url(r'^users/by_training/(?P<id>.*)/export/$', user_export.by_training, name="teleforma-training-users-export"),
+
     url(r'^users/by_iej/(\w+)/$', UsersIejView.as_view(), name="teleforma-iej-users"),
+    url(r'^users/by_iej/(?P<id>.*)/export/$', user_export.by_iej, name="teleforma-iej-users-export"),
+
     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"),
+    url(r'^users/by_course/(?P<id>.*)/export/$', user_export.by_course, name="teleforma-course-users-export"),
+
 
 # CSS+Images (FIXME: for developement only)
     url(r'^teleforma/css/(?P<path>.*)$', 'django.views.static.serve',
index f1e156ad23e25566cb61bd88c7ee33ac599a4623..dc2ff91462be7be85a2a656cd6bea0d2ec8c122d 100755 (executable)
@@ -329,6 +329,7 @@ class UsersXLSExport(object):
 
     @method_decorator(permission_required('is_superuser'))
     def export(self, request):
+        self.users = self.users.order_by('last_name')
         self.book = Workbook()
         self.sheet = self.book.add_sheet('Etudiants')
         row = self.sheet.row(0)
@@ -362,6 +363,18 @@ class UsersXLSExport(object):
 
     @method_decorator(permission_required('is_superuser'))
     def by_training(self, request, id):
-        trainings = Training.objects.filter(id=id)
-        self.users = User.objects.all().select_related(depth=2).filter(student__training__in=trainings)
+        training = Training.objects.filter(id=id)
+        self.users = User.objects.filter(student__training__in=training)
+        return self.export(request)
+
+    @method_decorator(permission_required('is_superuser'))
+    def by_iej(self, request, id):
+        iej = IEJ.objects.filter(id=id)
+        self.users = User.objects.filter(student__iej__in=iej)
+        return self.export(request)
+
+    @method_decorator(permission_required('is_superuser'))
+    def by_course(self, request, id):
+        course = Course.objects.filter(id=id)
+        self.users = User.objects.filter(student__training__courses__in=course)
         return self.export(request)