Files
Reskreen/studenteval/views.py
Ambulance Clerc 47fbbd207d Ajout impression
2023-09-12 15:19:17 +02:00

124 lines
4.2 KiB
Python

import requests
from django.contrib.auth.mixins import LoginRequiredMixin
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
def show_pdf(request, uuid):
# Votre logique pour l'action 1 ici
return HttpResponse("Action 1 a été effectuée pour l'objet avec l'ID : {}".format(uuid))
def is_member(user, group):
return user.groups.filter(name=group).exists()
class student_eval_detail(LoginRequiredMixin,DetailView):
model =cl_Student_eval
login_url = ""
def dispatch(self, request, *args, **kwargs):
user_obj = self.request.user
author_id = self.get_object().Author.id if self.get_object().Author is not None else 0
student_id = self.get_object().Student.id if self.get_object().Student is not None else 0
if not user_obj.id == author_id and not user_obj.id == student_id and not is_member(user_obj,"FI-Encadrants"):
raise PermissionDenied
return super().dispatch(request, *args, **kwargs)
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context["dtDate__range__gte"] = self.request.GET.get('dtDate__range__gte')
context["dtDate__range__lte"] = self.request.GET.get('dtDate__range__lte')
self.object.get_all_evals_for_student()
self.object.get_mirror_eval(self.object.a_evals)
return context
class student_eval_list(LoginRequiredMixin,ListView):
model = cl_Student_eval
login_url = ""
def get_queryset(self):
nStudent_id = self.kwargs['Student']
return cl_Student_eval.objects.filter(Student=nStudent_id)
def dispatch(self, request, *args, **kwargs):
user_obj = self.request.user
#self.object_list.filter(Student=requests.GET['Student'])
'''
author_id = self.get_object().Author.id if self.get_object().Author is not None else 0
student_id = self.get_object().Student.id if self.get_object().Student is not None else 0
if not user_obj.id == author_id and not user_obj.id == student_id and not is_member(user_obj,"FI-Encadrants"):
raise PermissionDenied
'''
return super().dispatch(request, *args, **kwargs)
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context['my_objects'] =[]
print(self.get_queryset())
for object in self.get_queryset():
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, })