diff --git a/studenteval/admin.py b/studenteval/admin.py
index 63959b5..f60f89c 100644
--- a/studenteval/admin.py
+++ b/studenteval/admin.py
@@ -1,4 +1,5 @@
from django.contrib import admin
+from django_summernote.admin import SummernoteModelAdmin
from studenteval.models import cl_Student_eval
from django.db.models import Q
from django.urls import reverse
@@ -8,10 +9,18 @@ from django.contrib.auth.models import User
from rangefilter.filters import *
from django.core.exceptions import PermissionDenied
+from rangefilter.filters import (
+ DateRangeFilterBuilder,
+ DateTimeRangeFilterBuilder,
+ NumericRangeFilterBuilder,
+ DateRangeQuickSelectListFilterBuilder,
+)
+
def is_member(user, group):
return user.groups.filter(name=group).exists()
-class _cl_Student_eval_admin(admin.ModelAdmin):
+class _cl_Student_eval_admin(SummernoteModelAdmin):
+ summernote_fields = ('sDesc_neg','sDesc_pos','sDesc_global')
request = None
always_show_username = True
@@ -43,7 +52,10 @@ class _cl_Student_eval_admin(admin.ModelAdmin):
search_fields = ['sStudent', 'sRef']
- list_filter = ['sStudent',"sAuthor", "nEval_Type", "nEval_Mode"]
+ list_filter = ['sStudent',"sAuthor", "nEval_Type", "nEval_Mode",]
+ #list_filter = ('sStudent', "sAuthor", "nEval_Type", "nEval_Mode", ("dtDate", DateRangeFilterBuilder()),)
+
+
def get_form(self, request, obj=None, **kwargs):
user_obj = request.user
diff --git a/studenteval/list_pdf_export.py b/studenteval/list_pdf_export.py
new file mode 100644
index 0000000..fba4a89
--- /dev/null
+++ b/studenteval/list_pdf_export.py
@@ -0,0 +1,15 @@
+from django.http import HttpResponse
+from django.template.loader import get_template
+from xhtml2pdf import pisa
+
+
+def render_to_pdf(template_src, context_dict={}):
+ template = get_template(template_src)
+ html = template.render(context_dict)
+ response = HttpResponse(content_type='application/pdf')
+ pdf_status = pisa.CreatePDF(html, dest=response)
+
+ if pdf_status.err:
+ return HttpResponse('Some errors were encountered
' + html + '
')
+
+ return response
\ No newline at end of file
diff --git a/studenteval/templates/studenteval/cl_student_eval_detail.html b/studenteval/templates/studenteval/cl_student_eval_detail.html
index f9ec85e..e17b90f 100644
--- a/studenteval/templates/studenteval/cl_student_eval_detail.html
+++ b/studenteval/templates/studenteval/cl_student_eval_detail.html
@@ -5,7 +5,7 @@
Voir toutes les évaluations
- Imprimer liste PDF
+ Imprimer liste PDF
{% endblock %}
{% block cl_content %}
diff --git a/studenteval/templates/studenteval/cl_student_eval_list.html b/studenteval/templates/studenteval/cl_student_eval_list.html
index 3496002..fbe8e9d 100644
--- a/studenteval/templates/studenteval/cl_student_eval_list.html
+++ b/studenteval/templates/studenteval/cl_student_eval_list.html
@@ -4,7 +4,7 @@
{% block url_nav %}
- Imprimer liste PDF
+ Imprimer liste PDF
{% endblock %}
{% block cl_content %}
diff --git a/studenteval/urls.py b/studenteval/urls.py
index 09d7658..7c70eac 100644
--- a/studenteval/urls.py
+++ b/studenteval/urls.py
@@ -10,9 +10,9 @@ app_name = "studenteval"
urlpatterns = [
path('show_pdf//', views.student_eval_detail.as_view(), name='student_eval_detail'),
path('show_pdf_all//', views.student_eval_list.as_view(), name='student_eval_list'),
+ path('export_pdf_all//', views.export_pdf_all, name='export_pdf_all'),
+ path('export_pdf//', views.export_pdf, name='export_pdf'),
#path('peremptions', views.view_peremptions, name='view_peremptions'),
-
-
]
diff --git a/studenteval/views.py b/studenteval/views.py
index 0cc6ef2..ad34c64 100644
--- a/studenteval/views.py
+++ b/studenteval/views.py
@@ -4,7 +4,7 @@ from django.http import HttpResponse, Http404
from django.shortcuts import render
from django.views.generic import ListView, UpdateView, DetailView, FormView, CreateView
from django.core.exceptions import PermissionDenied
-
+from studenteval.list_pdf_export import render_to_pdf
from studenteval.models import cl_Student_eval
from studenteval.filters import cl_Student_eval_Filter
@@ -78,6 +78,47 @@ class student_eval_list(LoginRequiredMixin,ListView):
object.get_all_evals_for_student()
object.get_mirror_eval(object.a_evals)
context['my_objects'].append(object)
+ context["student_id"] = object.Student.id
return context
+
+def export_pdf_all(request,student_id):
+ '''
+ if not "dtDate__range__gte" in request.GET.keys():
+ start = datetime.today().replace(day=1,hour=0, minute=0)
+ else:
+ start = request.GET['dtDate__range__gte']
+ if not "dtDate__range__lte" in request.GET.keys():
+ end = datetime.now()
+ else:
+ end = request.GET['dtDate__range__lte']
+ '''
+ template_name = "studenteval/all_pdf_template.html"
+ records = cl_Student_eval.objects.filter(Student=student_id)
+ objects=[]
+ for record in records:
+ record.get_all_evals_for_student()
+ record.get_mirror_eval(record.a_evals)
+ objects.append(record)
+ return render_to_pdf(template_name,{"objects": objects, })
+
+def export_pdf(request,pk):
+ '''
+ if not "dtDate__range__gte" in request.GET.keys():
+ start = datetime.today().replace(day=1,hour=0, minute=0)
+ else:
+ start = request.GET['dtDate__range__gte']
+ if not "dtDate__range__lte" in request.GET.keys():
+ end = datetime.now()
+ else:
+ end = request.GET['dtDate__range__lte']
+ '''
+ template_name = "studenteval/all_pdf_template.html"
+ objects = []
+ record = cl_Student_eval.objects.get(pk=pk)
+ record.get_all_evals_for_student()
+ record.get_mirror_eval(record.a_evals)
+ objects.append(record)
+
+ return render_to_pdf(template_name,{"objects": objects, })
\ No newline at end of file