]> git.parisson.com Git - teleforma.git/commitdiff
Add function to export seminars / conferences
authorYoan Le Clanche <yoanl@pilotsystems.net>
Tue, 2 Mar 2021 15:07:19 +0000 (16:07 +0100)
committerYoan Le Clanche <yoanl@pilotsystems.net>
Tue, 2 Mar 2021 15:07:19 +0000 (16:07 +0100)
teleforma/admin.py

index 20daea7f9329b9c4d4f724661a7eabf93e23b8be..ae981e96d5ec5c6b1f65d0c5fa91461097b25d87 100644 (file)
@@ -149,6 +149,24 @@ class ConferenceAdmin(admin.ModelAdmin):
     search_fields = ['public_id', 'id']
     filter_vertical = ['docs_description',
                        'suggested_seminars', 'suggested_conferences']
+    actions = ['export_conference']
+
+    def export_conference(self, request, queryset):
+        response = HttpResponse(content_type='text/csv')
+        filename = "conferences"
+        response['Content-Disposition'] = 'attachment; filename="%s.csv"' % filename
+
+        data = {}
+        writer = UnicodeWriter(response, delimiter=";")
+        writer.writerow(("id", "nom", "prix", "code produit"))
+
+        for conference in queryset.order_by('-publish_date'):
+            row = (conference.id, conference.title, conference.price, conference.product_code)
+            writer.writerow(row)
+        return response
+
+    export_conference.short_description = "Exporter les conferences"
+
 
 class SeminarQuestionInline(admin.StackedInline):
     model = Question
@@ -162,7 +180,11 @@ class SeminarAdmin(admin.ModelAdmin):
     ordering = ['course', 'rank']
     search_fields = ['course__title', 'title', 'sub_title']
     list_filter = ('period', 'publish_date', 'expiry_date')
-    actions = ['clone_seminars']
+    actions = ['clone_seminars', 'export_seminar']
+    # raw_id_fields = ['docs_description', 'docs_1',
+    #                    'docs_2', 'docs_correct', 'medias', 'media_preview',
+    #                    'suggested_seminars', 'suggested_conferences', 'quiz', 'conference']
+
 
     def clone_seminars(self, request, queryset):
         log = ""
@@ -173,6 +195,23 @@ class SeminarAdmin(admin.ModelAdmin):
             
     clone_seminars.short_description = "Dupliquer les séminaires"
 
+
+    def export_seminar(self, request, queryset):
+        response = HttpResponse(content_type='text/csv')
+        filename = "seminaires"
+        response['Content-Disposition'] = 'attachment; filename="%s.csv"' % filename
+
+        data = {}
+        writer = UnicodeWriter(response, delimiter=";")
+        writer.writerow(("id", "nom", "prix", "code produit"))
+
+        for seminar in queryset.order_by('-publish_date'):
+            row = (seminar.id, seminar.title, seminar.price, seminar.product_code)
+            writer.writerow(row)
+        return response
+
+    export_seminar.short_description = "Exporter les séminaires"
+
     class Media:
         css = { 'all': ('admin/extra.css',) }