feature completed export computers based on bundle

This commit is contained in:
2024-10-25 20:25:53 +02:00
parent 77350f2136
commit a24f5d1026
4 changed files with 27 additions and 5 deletions

View File

@@ -77,9 +77,6 @@ networks:
# TODO # 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 - Tables Sorting with filters
# Licence # Licence

View File

@@ -10,7 +10,8 @@
<div class="detail-content"> <div class="detail-content">
{% if bundle.product_type == "Computer" %} {% if bundle.product_type == "Computer" %}
<a href="/import/serials" class="pure-button pure-button-primary add-button">Importa Computer</a> <a href="/import/serials" class="pure-button pure-button-primary add-button">Importa Computer</a>
<a href="/export/computers/{{ bundle.id }}" class="pure-button pure-button-primary add-button">Esporta Computer Assegnati</a>
{% endif %} {% endif %}
<table class="pure-table pure-table-horizontal width-100"> <table class="pure-table pure-table-horizontal width-100">
<thead> <thead>

View File

@@ -59,7 +59,9 @@ urlpatterns = [
path("import/students", views.import_students, name="import_students"), path("import/students", views.import_students, name="import_students"),
path("import/serials", views.import_serials, name="import_serials"), path("import/serials", views.import_serials, name="import_serials"),
path("import/courses", views.import_courses, name="import_courses"), path("import/courses", views.import_courses, name="import_courses"),
path("export/computers/<int:id_b>", views.export_computers, name="export_computers"),
path("toggle/course/<int:id>", views.toggle_course, name="toggle_course"), path("toggle/course/<int:id>", views.toggle_course, name="toggle_course"),
path("take/ticket/<int:id>", views.take_ticket, name="take_ticket"), path("take/ticket/<int:id>", views.take_ticket, name="take_ticket"),

View File

@@ -8,6 +8,7 @@ import copy
import csv import csv
from datetime import datetime from datetime import datetime
from django.http import HttpResponse
from django.shortcuts import render, get_object_or_404, redirect from django.shortcuts import render, get_object_or_404, redirect
from django.views.defaults import bad_request from django.views.defaults import bad_request
@@ -242,3 +243,24 @@ def take_ticket(request, id):
return redirect("tickets") return redirect("tickets")
else: else:
return bad_request 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