From a24f5d10265b42cb05a193dde731806a272b0e78 Mon Sep 17 00:00:00 2001 From: Nastro_ Date: Fri, 25 Oct 2024 20:25:53 +0200 Subject: [PATCH] feature completed export computers based on bundle --- GestionaleITS/Readme.md | 3 --- .../gestionale/details/detailsbundle.html | 3 ++- GestionaleITS/gestionale/urls.py | 4 +++- GestionaleITS/gestionale/views/views.py | 22 +++++++++++++++++++ 4 files changed, 27 insertions(+), 5 deletions(-) diff --git a/GestionaleITS/Readme.md b/GestionaleITS/Readme.md index d414fc5..a931e9b 100644 --- a/GestionaleITS/Readme.md +++ b/GestionaleITS/Readme.md @@ -77,9 +77,6 @@ networks: # TODO -- Creare un export dei pc in csv con Nome Cognome Codice fiscale cespite seriale data di consegna -- Default value of association "Pagamento effettuato" -- import of storage, computers, courses. - Tables Sorting with filters # Licence diff --git a/GestionaleITS/gestionale/templates/gestionale/details/detailsbundle.html b/GestionaleITS/gestionale/templates/gestionale/details/detailsbundle.html index f109d2d..fbe93d4 100644 --- a/GestionaleITS/gestionale/templates/gestionale/details/detailsbundle.html +++ b/GestionaleITS/gestionale/templates/gestionale/details/detailsbundle.html @@ -10,7 +10,8 @@
{% if bundle.product_type == "Computer" %} - Importa Computer + Importa Computer + Esporta Computer Assegnati {% endif %} diff --git a/GestionaleITS/gestionale/urls.py b/GestionaleITS/gestionale/urls.py index 42b827e..7fc5065 100644 --- a/GestionaleITS/gestionale/urls.py +++ b/GestionaleITS/gestionale/urls.py @@ -59,7 +59,9 @@ urlpatterns = [ path("import/students", views.import_students, name="import_students"), path("import/serials", views.import_serials, name="import_serials"), path("import/courses", views.import_courses, name="import_courses"), - + + path("export/computers/", views.export_computers, name="export_computers"), + path("toggle/course/", views.toggle_course, name="toggle_course"), path("take/ticket/", views.take_ticket, name="take_ticket"), diff --git a/GestionaleITS/gestionale/views/views.py b/GestionaleITS/gestionale/views/views.py index 3902416..6f56d5e 100644 --- a/GestionaleITS/gestionale/views/views.py +++ b/GestionaleITS/gestionale/views/views.py @@ -8,6 +8,7 @@ import copy import csv from datetime import datetime +from django.http import HttpResponse from django.shortcuts import render, get_object_or_404, redirect from django.views.defaults import bad_request @@ -242,3 +243,24 @@ def take_ticket(request, id): return redirect("tickets") else: return bad_request + +@user_passes_test(lambda u: u.is_superuser or u.is_staff ) +def export_computers(request, id_b): + response = HttpResponse( + content_type="text/csv", + headers={"Content-Disposition": "attachment; filename=export_computers.csv"} + ) + writer = csv.writer(response) + writer.writerow(["Nome", "Cognome", "Corso", "CodiceFiscale", "Cespite", "Seriale", "DataConsegna"]) + computers = Computer.objects.filter(status="assigned", id_bundle = id_b).order_by("id") + for computer in computers: + writer.writerow([ + computer.id_student.first_name, + computer.id_student.last_name, + computer.id_student.course_id.course_name, + computer.id_student.codice_fiscale, + computer.cespite, + computer.serial, + computer.assignment_date + ]) + return response \ No newline at end of file