diff --git a/GestionaleITS/gestionale/templates/gestionale/add/addserial.html b/GestionaleITS/gestionale/templates/gestionale/add/addserial.html index a73b3ab..907312c 100644 --- a/GestionaleITS/gestionale/templates/gestionale/add/addserial.html +++ b/GestionaleITS/gestionale/templates/gestionale/add/addserial.html @@ -15,6 +15,8 @@

Stai aggiungendo un seriale al bundle

+Importa Seriali +Ritorna al Magazzino
{% csrf_token %}
diff --git a/GestionaleITS/gestionale/templates/gestionale/base.html b/GestionaleITS/gestionale/templates/gestionale/base.html index 6337fbd..b7ae1c0 100644 --- a/GestionaleITS/gestionale/templates/gestionale/base.html +++ b/GestionaleITS/gestionale/templates/gestionale/base.html @@ -20,12 +20,12 @@
    -
  • - Magazzino -
  • Fornitori
  • +
  • + Magazzino +
  • Corsi
  • diff --git a/GestionaleITS/gestionale/templates/gestionale/details/detailsbundle.html b/GestionaleITS/gestionale/templates/gestionale/details/detailsbundle.html index f550f88..f761ab7 100644 --- a/GestionaleITS/gestionale/templates/gestionale/details/detailsbundle.html +++ b/GestionaleITS/gestionale/templates/gestionale/details/detailsbundle.html @@ -7,6 +7,7 @@ {% load static %} {% block content %} {% if user.is_authenticated %} +Importa Computer
    @@ -178,4 +179,4 @@ {% endif %} {% endif %} -{% endblock %} \ No newline at end of file +{% endblock %} diff --git a/GestionaleITS/gestionale/templates/gestionale/import/computers.html~ b/GestionaleITS/gestionale/templates/gestionale/import/computers.html~ new file mode 100644 index 0000000..e69de29 diff --git a/GestionaleITS/gestionale/templates/gestionale/import/courses.html b/GestionaleITS/gestionale/templates/gestionale/import/courses.html new file mode 100644 index 0000000..4a0d66a --- /dev/null +++ b/GestionaleITS/gestionale/templates/gestionale/import/courses.html @@ -0,0 +1,28 @@ + + + +{% extends "gestionale/base.html" %} +{% load static %} +{% block content %} +{% if user.is_authenticated %} +{% if err == True %} +
    + {{ e }} +
    +{% endif %} +
    +
    + + {% csrf_token %} +
    + {{ form }} +
    + + + +
    +
    +{% endif %} +{% endblock %} diff --git a/GestionaleITS/gestionale/templates/gestionale/import/courses.html~ b/GestionaleITS/gestionale/templates/gestionale/import/courses.html~ new file mode 100644 index 0000000..e69de29 diff --git a/GestionaleITS/gestionale/templates/gestionale/import/serials.html b/GestionaleITS/gestionale/templates/gestionale/import/serials.html new file mode 100644 index 0000000..c321db0 --- /dev/null +++ b/GestionaleITS/gestionale/templates/gestionale/import/serials.html @@ -0,0 +1,28 @@ + + + +{% extends "gestionale/base.html" %} +{% load static %} +{% block content %} +{% if user.is_authenticated %} +{% if err == True %} +
    + {{ e }} +
    +{% endif %} +
    +
    +
    + {% csrf_token %} +
    + {{ form }} +
    + + + +
    +
    +{% endif %} +{% endblock %} diff --git a/GestionaleITS/gestionale/templates/gestionale/import/serials.html~ b/GestionaleITS/gestionale/templates/gestionale/import/serials.html~ new file mode 100644 index 0000000..e69de29 diff --git a/GestionaleITS/gestionale/templates/gestionale/importstudents.html b/GestionaleITS/gestionale/templates/gestionale/import/students.html similarity index 100% rename from GestionaleITS/gestionale/templates/gestionale/importstudents.html rename to GestionaleITS/gestionale/templates/gestionale/import/students.html diff --git a/GestionaleITS/gestionale/templates/gestionale/list/courses.html b/GestionaleITS/gestionale/templates/gestionale/list/courses.html index 4b533ab..d0d89fd 100644 --- a/GestionaleITS/gestionale/templates/gestionale/list/courses.html +++ b/GestionaleITS/gestionale/templates/gestionale/list/courses.html @@ -9,6 +9,8 @@ {% block content %} {% if user.is_authenticated %} Aggiungi Corso +Importa Corsi +
    diff --git a/GestionaleITS/gestionale/urls.py b/GestionaleITS/gestionale/urls.py index 5ed49a9..0beb6ac 100644 --- a/GestionaleITS/gestionale/urls.py +++ b/GestionaleITS/gestionale/urls.py @@ -27,7 +27,7 @@ urlpatterns = [ path("add/bundle", views_add.add_bundle, name="add_bundle"), path("add/supplier", views_add.add_supplier, name="add_supplier"), - path("add/serial", views_add.add_serial, name="add_serial"), + path("add/serial", views_add.add_serial, name="add_serial"), path("add/accessory", views_add.add_accessory, name="add_accessory"), path("add/course", views_add.add_course, name="add_course"), path("add/ticket", views_add.add_ticket, name="add_ticket"), @@ -57,6 +57,8 @@ urlpatterns = [ path("reset/accessory/", views_reset.reset_accessory, name="reset_accessory"), 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("toggle/course/", views.toggle_course, name="toggle_course"), diff --git a/GestionaleITS/gestionale/views/views.py b/GestionaleITS/gestionale/views/views.py index 3464775..f307283 100644 --- a/GestionaleITS/gestionale/views/views.py +++ b/GestionaleITS/gestionale/views/views.py @@ -43,7 +43,7 @@ def import_students(request): if not csv_file.name.endswith(".csv"): form = CSVUpdateForm() err = True - return render(request, "gestionale/importstudents.html", { + return render(request, "gestionale/import/students.html", { "err": err, "form": form }) try: @@ -82,82 +82,88 @@ def import_students(request): except Exception as e: form = CSVUpdateForm() err = True - return render(request, "gestionale/importstudents.html", { + return render(request, "gestionale/import/students.html", { "err": err, "form": form, "e": e }) return redirect('import_students') else: form = CSVUpdateForm() err = True - return render(request, "gestionale/importstudents.html", { + return render(request, "gestionale/import/students.html", { "err": err, "form": form }) else: form = CSVUpdateForm() - return render(request, "gestionale/importstudents.html", { + return render(request, "gestionale/import/students.html", { "form": form }) -def import_bundle(request): +def import_courses(request): + if request.method == "POST": + form = CSVUpdateForm(request.POST, request.FILES) + if form.is_valid(): + csv_file = request.FILES["file"] + if not csv_file.name.endswith(".csv"): + form = CSVUpdateForm() + err = True + return render(request, "gestionale/import/courses.html",{ + "err": err, "form": form + }) + try: + record = Record() + record.date = datetime.now().date() + record.action = "import" + record.product = "courses" + record.product_detail = csv_file + record.user = request.user + record.save() + + csv_data = csv_file.read().decode("utf-8").splitlines() + reader = csv.DictReader(csv_data) + for row in reader: + course = Course() + course.course_name = row["Nome"] + course.course_name_extended = row["Nome Esteso"] + course.course_code = row["Codice"] + course.course_year = row["Anno"] + course.course_location = row["Posizione"] + course.student_number = row["Numero Studenti"] + if row["Status"] == 0: + course.course_status = False + else: + course.course_status = True + + course.save() + + return redirect("courses") + except Exception as e: + form = CSVUpdateForm() + err = True + return render(request, "gestionale/import/courses.html", { + "err": err, "form": form, "e": e}) + + else: + form = CSVUpdateForm() + err = True + return render(request, "gestionale/import/courses.html", { + "err": err, "form": form + }) + else: + form = CSVUpdateForm() + return render(request, "gestionale/import/courses.html", { + "form": form + }) + + +def import_serials(request): if request.method == "POST": form = CSVUpdateForm(request.POST, request.FILES) if form.is_valid(): csv_file = request.FILES["file"] - if not csv_file.endswith(".csv"): + if not csv_file.name.endswith(".csv"): form = CSVUpdateForm() err = True - return render(request, "gestionale/import/bundle.html",{ - "err": err, "form": form - }) - try: - record = Record() - record.date = datetime.now().date() - record.action = "import" - record.product = "bundle" - record.user = request.user - record.save() - - csv_data = csv_file.read().decode("utf-8").splitlines() - reader = csv.DictReader(csv_data) - for row in reader: - pass - except: - if request.method == "POST": - form = CSVUpdateForm(request.POST, request.FILES) - if form.is_valid(): - csv_file = request.FILES["file"] - if not csv_file.endswith(".csv"): - form = CSVUpdateForm() - err = True - return render(request, "gestionale/import/bundle.html",{ - "err": err, "form": form - }) - try: - record = Record() - record.date = datetime.now().date() - record.action = "import" - record.product = "bundle" - record.user = request.user - record.save() - - csv_data = csv_file.read().decode("utf-8").splitlines() - reader = csv.DictReader(csv_data) - for row in reader: - pass - except: - pass - passpass - pass - -def import_computers(request): - if request.method == "POST": - form = CSVUpdateForm(request.POST, request.FILES) - if form.is_valid(): - csv_file = request.FILES["file"] - if not csv_file.endswith(".csv"): - form = CSVUpdateForm() - err = True - return render(request, "gestionale/import/computers.html",{ + return render(request, "gestionale/import/serials.html",{ "err": err, "form": form }) try: @@ -165,24 +171,42 @@ def import_computers(request): record.date = datetime.now().date() record.action = "import" record.product = "computers" + record.product_detail = csv_file record.user = request.user record.save() csv_data = csv_file.read().decode("utf-8").splitlines() reader = csv.DictReader(csv_data) for row in reader: - bundle= get_object_or_404(Bundle, id = row["Id Bundle"]) - - pass - except: - pass + bundle = get_object_or_404(Bundle, id = row["Id Bundle"]) + computer = Computer() + computer.id_bundle = bundle + computer.status = "in_stock" + computer.serial = row["Seriale"] + computer.is_deleted = False + computer.eol = False + computer.eol_date = None + computer.save() -def import_accessories(request): - pass - -def import_courses(request): - pass + return redirect("storage") + except Exception as e: + form = CSVUpdateForm() + err = True + return render(request, "gestionale/import/serials.html", { + "err": err, "form": form, "e": e}) + else: + form = CSVUpdateForm() + err = True + return render(request, "gestionale/import/serials.html", { + "err": err, "form": form + }) + else: + form = CSVUpdateForm() + return render(request, "gestionale/import/serials.html", { + "form": form + }) + @user_passes_test(lambda u: u.is_superuser or u.is_staff ) def toggle_course(request, id): diff --git a/GestionaleITS/gestionale/views/views_add.py b/GestionaleITS/gestionale/views/views_add.py index 3cbf742..c4ea2e2 100644 --- a/GestionaleITS/gestionale/views/views_add.py +++ b/GestionaleITS/gestionale/views/views_add.py @@ -87,7 +87,7 @@ def add_supplier(request): return render(request, "gestionale/add/addsupplier.html", { "form": form, "err": err }) - return redirect('storage') + return redirect('suppliers') else: form = SupplierForm() return render(request, "gestionale/add/addsupplier.html", { @@ -95,7 +95,7 @@ def add_supplier(request): }) @user_passes_test(lambda u: u.is_superuser or u.is_staff) -def add_serial(request): +def add_serial(request, form_serial=None): bundle = Bundle.objects.last() qt = range(bundle.qt) if request.method == "POST": @@ -122,9 +122,8 @@ def add_serial(request): record.user = request.user record.save() - - return redirect('storage') + except ValidationError: err = True err_str = "L'inserimento é errato o incompleto!" diff --git a/GestionaleITS/gestionale/views/views_delete.py b/GestionaleITS/gestionale/views/views_delete.py index 236e4eb..16b040e 100644 --- a/GestionaleITS/gestionale/views/views_delete.py +++ b/GestionaleITS/gestionale/views/views_delete.py @@ -64,7 +64,7 @@ def delete_supplier(request, id): supplier.is_deleted = True record.date = datetime.now().date() - record.action = "reset" + record.action = "delete" record.product = "supplier" record.user = request.user record.save()