Ajout impression
This commit is contained in:
@@ -1,4 +1,5 @@
|
|||||||
from django.contrib import admin
|
from django.contrib import admin
|
||||||
|
from django_summernote.admin import SummernoteModelAdmin
|
||||||
from studenteval.models import cl_Student_eval
|
from studenteval.models import cl_Student_eval
|
||||||
from django.db.models import Q
|
from django.db.models import Q
|
||||||
from django.urls import reverse
|
from django.urls import reverse
|
||||||
@@ -8,10 +9,18 @@ from django.contrib.auth.models import User
|
|||||||
from rangefilter.filters import *
|
from rangefilter.filters import *
|
||||||
from django.core.exceptions import PermissionDenied
|
from django.core.exceptions import PermissionDenied
|
||||||
|
|
||||||
|
from rangefilter.filters import (
|
||||||
|
DateRangeFilterBuilder,
|
||||||
|
DateTimeRangeFilterBuilder,
|
||||||
|
NumericRangeFilterBuilder,
|
||||||
|
DateRangeQuickSelectListFilterBuilder,
|
||||||
|
)
|
||||||
|
|
||||||
def is_member(user, group):
|
def is_member(user, group):
|
||||||
return user.groups.filter(name=group).exists()
|
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
|
request = None
|
||||||
always_show_username = True
|
always_show_username = True
|
||||||
|
|
||||||
@@ -43,7 +52,10 @@ class _cl_Student_eval_admin(admin.ModelAdmin):
|
|||||||
|
|
||||||
|
|
||||||
search_fields = ['sStudent', 'sRef']
|
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):
|
def get_form(self, request, obj=None, **kwargs):
|
||||||
user_obj = request.user
|
user_obj = request.user
|
||||||
|
15
studenteval/list_pdf_export.py
Normal file
15
studenteval/list_pdf_export.py
Normal file
@@ -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 <pre>' + html + '</pre>')
|
||||||
|
|
||||||
|
return response
|
@@ -5,7 +5,7 @@
|
|||||||
<a href="{% url 'studenteval:student_eval_list' object.Student.id %}?dtDate__range__gte={{ dtDate__range__gte }}&dtDate__range__lte={{ dtDate__range__lte }}" class="nav-link" target="_blank">Voir toutes les évaluations</a>
|
<a href="{% url 'studenteval:student_eval_list' object.Student.id %}?dtDate__range__gte={{ dtDate__range__gte }}&dtDate__range__lte={{ dtDate__range__lte }}" class="nav-link" target="_blank">Voir toutes les évaluations</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a href="{% url 'studenteval:Export_pdf' object.uuid %}?dtDate__range__gte={{ dtDate__range__gte }}&dtDate__range__lte={{ dtDate__range__lte }}" class="nav-link" target="_blank">Imprimer liste PDF</a>
|
<a href="{% url 'studenteval:export_pdf' object.uuid %}?dtDate__range__gte={{ dtDate__range__gte }}&dtDate__range__lte={{ dtDate__range__lte }}" class="nav-link" target="_blank">Imprimer liste PDF</a>
|
||||||
</li>
|
</li>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
{% block cl_content %}
|
{% block cl_content %}
|
||||||
|
@@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
{% block url_nav %}
|
{% block url_nav %}
|
||||||
<li>
|
<li>
|
||||||
<a href="{% url 'studenteval:Export_pdf_all' student_id %}?dtDate__range__gte={{ dtDate__range__gte }}&dtDate__range__lte={{ dtDate__range__lte }}" class="nav-link" target="_blank">Imprimer liste PDF</a>
|
<a href="{% url 'studenteval:export_pdf_all' student_id %}?dtDate__range__gte={{ dtDate__range__gte }}&dtDate__range__lte={{ dtDate__range__lte }}" class="nav-link" target="_blank">Imprimer liste PDF</a>
|
||||||
</li>
|
</li>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
{% block cl_content %}
|
{% block cl_content %}
|
||||||
|
@@ -10,9 +10,9 @@ app_name = "studenteval"
|
|||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
path('show_pdf/<uuid:pk>/', views.student_eval_detail.as_view(), name='student_eval_detail'),
|
path('show_pdf/<uuid:pk>/', views.student_eval_detail.as_view(), name='student_eval_detail'),
|
||||||
path('show_pdf_all/<int:Student>/', views.student_eval_list.as_view(), name='student_eval_list'),
|
path('show_pdf_all/<int:Student>/', views.student_eval_list.as_view(), name='student_eval_list'),
|
||||||
|
path('export_pdf_all/<int:student_id>/', views.export_pdf_all, name='export_pdf_all'),
|
||||||
|
path('export_pdf/<uuid:pk>/', views.export_pdf, name='export_pdf'),
|
||||||
#path('peremptions', views.view_peremptions, name='view_peremptions'),
|
#path('peremptions', views.view_peremptions, name='view_peremptions'),
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@@ -4,7 +4,7 @@ from django.http import HttpResponse, Http404
|
|||||||
from django.shortcuts import render
|
from django.shortcuts import render
|
||||||
from django.views.generic import ListView, UpdateView, DetailView, FormView, CreateView
|
from django.views.generic import ListView, UpdateView, DetailView, FormView, CreateView
|
||||||
from django.core.exceptions import PermissionDenied
|
from django.core.exceptions import PermissionDenied
|
||||||
|
from studenteval.list_pdf_export import render_to_pdf
|
||||||
|
|
||||||
from studenteval.models import cl_Student_eval
|
from studenteval.models import cl_Student_eval
|
||||||
from studenteval.filters import cl_Student_eval_Filter
|
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_all_evals_for_student()
|
||||||
object.get_mirror_eval(object.a_evals)
|
object.get_mirror_eval(object.a_evals)
|
||||||
context['my_objects'].append(object)
|
context['my_objects'].append(object)
|
||||||
|
context["student_id"] = object.Student.id
|
||||||
|
|
||||||
|
|
||||||
return context
|
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, })
|
Reference in New Issue
Block a user