final final version
This commit is contained in:
@@ -15,6 +15,8 @@
|
||||
<div class="benvenuto">
|
||||
<h3>Stai aggiungendo un seriale al bundle</h3>
|
||||
</div>
|
||||
<a href="/import/serials" class="pure-button pure-button-primary add-button">Importa Seriali</a>
|
||||
<a href="/storage" class="pure-button pure-button-primary add-button">Ritorna al Magazzino</a>
|
||||
<form action="/add/serial" method="post" class="pure-form pure-form-2 pure-form-stacked">
|
||||
{% csrf_token %}
|
||||
<div class="form-content width-100">
|
||||
|
||||
@@ -21,10 +21,10 @@
|
||||
<a href="/" class="pure-menu-heading pure-menu-link"><img src="{% static 'images/xlogo-itsaltoadriatico.svg' %}" width="150px"></a>
|
||||
<ul class="pure-menu-list">
|
||||
<li class="pure-menu-item">
|
||||
<a href="/storage" class="pure-menu-link">Magazzino</a>
|
||||
<a href="/suppliers" class="pure-menu-link">Fornitori</a>
|
||||
</li>
|
||||
<li class="pure-menu-item">
|
||||
<a href="/suppliers" class="pure-menu-link">Fornitori</a>
|
||||
<a href="/storage" class="pure-menu-link">Magazzino</a>
|
||||
</li>
|
||||
<li class="pure-menu-item">
|
||||
<a href="/courses" class="pure-menu-link">Corsi</a>
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
{% load static %}
|
||||
{% block content %}
|
||||
{% if user.is_authenticated %}
|
||||
<a href="/import/serials" class="pure-button pure-button-primary add-button">Importa Computer</a>
|
||||
<div class="detail-content">
|
||||
<table class="pure-table pure-table-horizontal width-100">
|
||||
<thead>
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
<!-- Copyright (C) 2024 Nastro_ -->
|
||||
<!-- This Source Code Form is subject to the terms of the Mozilla Public
|
||||
- License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
- file, You can obtain one at https://mozilla.org/MPL/2.0/. -->
|
||||
|
||||
{% extends "gestionale/base.html" %}
|
||||
{% load static %}
|
||||
{% block content %}
|
||||
{% if user.is_authenticated %}
|
||||
{% if err == True %}
|
||||
<div>
|
||||
{{ e }}
|
||||
</div>
|
||||
{% endif %}
|
||||
<div class="import-card">
|
||||
<div>
|
||||
<form action="/import/courses" method="post" enctype="multipart/form-data" class="pure-form pure-form-stacked">
|
||||
{% csrf_token %}
|
||||
<div class="form-content">
|
||||
{{ form }}
|
||||
</div>
|
||||
<button type="submit" class="pure-button pure-button-primary">Carica</button>
|
||||
<button type="reset" class="pure-button button-warning">Reset</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
@@ -0,0 +1,28 @@
|
||||
<!-- Copyright (C) 2024 Nastro_ -->
|
||||
<!-- This Source Code Form is subject to the terms of the Mozilla Public
|
||||
- License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
- file, You can obtain one at https://mozilla.org/MPL/2.0/. -->
|
||||
|
||||
{% extends "gestionale/base.html" %}
|
||||
{% load static %}
|
||||
{% block content %}
|
||||
{% if user.is_authenticated %}
|
||||
{% if err == True %}
|
||||
<div>
|
||||
{{ e }}
|
||||
</div>
|
||||
{% endif %}
|
||||
<div class="import-card">
|
||||
<div>
|
||||
<form action="/import/serials" method="post" enctype="multipart/form-data" class="pure-form pure-form-stacked">
|
||||
{% csrf_token %}
|
||||
<div class="form-content">
|
||||
{{ form }}
|
||||
</div>
|
||||
<button type="submit" class="pure-button pure-button-primary">Carica</button>
|
||||
<button type="reset" class="pure-button button-warning">Reset</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
@@ -9,6 +9,8 @@
|
||||
{% block content %}
|
||||
{% if user.is_authenticated %}
|
||||
<a href="/add/course" class="pure-button pure-button-primary add-button">Aggiungi Corso</a>
|
||||
<a href="/import/courses" class="pure-button pure-button-primary add-button">Importa Corsi</a>
|
||||
|
||||
<table class="pure-table pure-table-horizontal width-100">
|
||||
<thead>
|
||||
<tr>
|
||||
|
||||
@@ -57,6 +57,8 @@ urlpatterns = [
|
||||
path("reset/accessory/<int:id>", 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/<int:id>", views.toggle_course, name="toggle_course"),
|
||||
|
||||
|
||||
@@ -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.endswith(".csv"):
|
||||
if not csv_file.name.endswith(".csv"):
|
||||
form = CSVUpdateForm()
|
||||
err = True
|
||||
return render(request, "gestionale/import/bundle.html",{
|
||||
return render(request, "gestionale/import/courses.html",{
|
||||
"err": err, "form": form
|
||||
})
|
||||
try:
|
||||
record = Record()
|
||||
record.date = datetime.now().date()
|
||||
record.action = "import"
|
||||
record.product = "bundle"
|
||||
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:
|
||||
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"):
|
||||
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/bundle.html",{
|
||||
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
|
||||
})
|
||||
try:
|
||||
record = Record()
|
||||
record.date = datetime.now().date()
|
||||
record.action = "import"
|
||||
record.product = "bundle"
|
||||
record.user = request.user
|
||||
record.save()
|
||||
else:
|
||||
form = CSVUpdateForm()
|
||||
return render(request, "gestionale/import/courses.html", {
|
||||
"form": form
|
||||
})
|
||||
|
||||
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):
|
||||
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/computers.html",{
|
||||
return render(request, "gestionale/import/serials.html",{
|
||||
"err": err, "form": form
|
||||
})
|
||||
try:
|
||||
@@ -165,6 +171,7 @@ 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()
|
||||
|
||||
@@ -172,16 +179,33 @@ def import_computers(request):
|
||||
reader = csv.DictReader(csv_data)
|
||||
for row in reader:
|
||||
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()
|
||||
|
||||
pass
|
||||
except:
|
||||
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})
|
||||
|
||||
def import_accessories(request):
|
||||
pass
|
||||
|
||||
def import_courses(request):
|
||||
pass
|
||||
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 )
|
||||
|
||||
@@ -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!"
|
||||
|
||||
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user