feature completed export computers based on bundle
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -10,7 +10,8 @@
|
||||
|
||||
<div class="detail-content">
|
||||
{% 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 %}
|
||||
<table class="pure-table pure-table-horizontal width-100">
|
||||
<thead>
|
||||
|
||||
@@ -60,6 +60,8 @@ urlpatterns = [
|
||||
path("import/serials", views.import_serials, name="import_serials"),
|
||||
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("take/ticket/<int:id>", views.take_ticket, name="take_ticket"),
|
||||
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user