Version 1.0

This commit is contained in:
2024-10-09 21:10:49 +02:00
commit 03efc31923
620 changed files with 67495 additions and 0 deletions

View File

@@ -0,0 +1,301 @@
# 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/.
from datetime import datetime, timedelta
from django import forms
from django.forms import SelectDateWidget, ModelForm, formset_factory, BaseFormSet
from .models import Supplier, Bundle, Computer, Accessory, Course, Student, Record, validate_image, StudentViewEditModel, Ticket
class BundleForm(forms.ModelForm):
type_choices = (
("", "Selezionare il tipo di prodotto"),
("Accessory", "Accessorio"),
("Computer", "Computer")
)
product_type = forms.ChoiceField(choices=type_choices, initial="")
delivery_date = forms.DateField(widget=SelectDateWidget(), initial=datetime.now().date() )
class Meta:
model = Bundle
fields = "__all__"
labels = {
"product_type": "Tipo Prodotto",
"product_name": "Nome Prodotto",
"qt": "Qt",
"qt_available": "Qt. Disponibile",
"notes": "Note",
"brand": "Brand",
"line": "Linea",
"cpu": "Cpu",
"ram": "Ram",
"storage_size": "Dimensione Storage",
"price": "Prezzo",
"delivery_date": "Data di consegna",
"supplier_id": "Fornitore",
"is_deleted": "È cancellato?"
}
widgets = {
"delivery_date": forms.SelectDateWidget()
}
class BaseSerialFormSet(BaseFormSet):
def clean(self):
super().clean()
values = []
for form in self.forms:
if form.is_valid():
form_value = form.cleaned_data.get("serial")
if form_value:
values.append(form_value)
if len(values) != len(set(values)):
raise forms.ValidationError("I valori devono essere univoci")
else:
return True
class SerialForm(forms.ModelForm):
serial = forms.CharField(max_length=255)
class Meta:
model = Computer
fields = ["serial"]
labels = {
"serial": "Seriale"
}
SerialFormSet = formset_factory(SerialForm, formset=BaseSerialFormSet, extra=0)
class SupplierForm(forms.ModelForm):
class Meta:
model = Supplier
fields = "__all__"
labels = {
"supplier_name": "Nome",
"supplier_address": "Indirizzo",
"supplier_phone": "Telefono",
"supplier_email": "Email",
"partita_iva": "Partita IVA",
"codice_societa": "Codice Società"
}
class ComputerForm(forms.ModelForm):
class Meta:
model = Computer
fields = "__all__"
labels = {
"id_student": "Studente",
"id_bundle": "Bundle",
"status": "Status",
"assignment_date": "Data di assegnazione",
"assignment_motivation": "Motivazione di assegnazione",
"return_date": "Data di restituzione",
"return_motivation": "Motivazione di restituzione",
"eol": "Eol",
"eol_date": "Data di eol",
"notes": "Note",
"cespite": "Cespite",
"serial": "Seriale"
}
class AccessoryForm(forms.ModelForm):
class Meta:
model = Accessory
fields = ["name", "description", "notes"]
labels = {
"name": "Nome Prodotto",
"description": "Descrizione",
"notes": "Note"
}
class EditAccessoryForm(forms.ModelForm):
class Meta:
model = Accessory
fields = "__all__"
labels = {
"name": "Nome Prodotto",
"description": "Descrizione",
"id_student": "Studente",
"id_bundle": "Bundle",
"status": "Status",
"assignment_date": "Data di assegnazione",
"assignment_motivation": "Motivazione di assegnazione",
"return_date": "Data di restituzione",
"return_motivation": "Motivazione di restituzione",
"notes": "Note",
}
exclude = [
"assignment_date",
"assignment_motivation",
"return_date",
"return_motivation"
]
class CSVUpdateForm(forms.Form):
file = forms.FileField(label="Seleziona un file CSV")
class CourseForm(forms.ModelForm):
class Meta:
model = Course
fields = "__all__"
labels = {
"course_name": "Nome Corso",
"course_name_extended": "Nome Corso esteso",
"course_code": "Codice Corso",
"course_year": "Anno Corso",
"student_number": "Numero Studenti",
"course_location": "Posizione Corso",
"course_status": "Status Corso"
}
class ResignationForm(forms.ModelForm):
resignation_date = forms.DateField(widget=SelectDateWidget(), label="Data di Dimissioni:", initial=datetime.now().date())
class Meta:
model = Student
fields = ["resignation_date"]
class StudentForm(forms.ModelForm):
class Meta:
model = Student
fields= "__all__"
labels= {
"first_name": "Nome",
"last_name": "Cognome",
"course_name": "Nome Corso",
"gender": "Sesso",
"profile_image": "Immagine Profilo",
"id_student_course": "Id Studente Corso",
"codice_fiscale": "Codice Fiscale",
"course_acronym": "Sigla Corso",
"course_code": "Codice Corso",
"email_user": "Email Studente",
"phone_number": "Numero di Telefono",
"municipality_residence": "Comune di Residenza",
"province_residence": "Provincia di Residenza",
"student_status": "Status Studente",
"course_status": "Status Corso",
"course_year": "Anno Corso",
"birth_date": "Data di Nascita",
"municipality_birth": "Comune di Nascita",
"province_birth": "Provincia di Nascita",
"resignation_date": "Data di Dimissioni",
"nation_birth": "Nazione di Nascita",
"course_id": "Corso"
}
exclude = ["course_acronym", "course_code", "course_status", "course_year", "course_name"]
class AssignmentComputerForm(forms.Form):
choice= (
("", "Seleziona il motivo"),
("deposit_paid", "Pagamento Effettuato"),
("replacement", "Sostitutivo"),
("temporary", "Temporaneo")
)
course_code = forms.CharField(label="Codice Corso", max_length=255)
codice_fiscale = forms.CharField(label="Codice Fiscale", max_length=255)
cespite = forms.CharField(label="Cespite", max_length=255)
serial = forms.CharField(label="Seriale", max_length=255)
assignment_date = forms.DateField(widget=SelectDateWidget(), label="Data di assegnazione", initial=datetime.now().date)
assignment_motivation = forms.ChoiceField(choices=choice)
class AssignmentAccessoryForm(forms.Form):
choice= (
("", "Seleziona il motivo"),
("needed", "Necessario"),
("replacement", "Sostitutivo"),
("temporary", "Temporaneo")
)
course_code = forms.CharField(label="Codice Corso", max_length=255)
codice_fiscale = forms.CharField(label="Codice Fiscale", max_length=255)
id = forms.IntegerField()
assignment_date = forms.DateField(widget=SelectDateWidget(), label="Data di assegnazione", initial=datetime.now().date)
assignment_motivation = forms.ChoiceField(choices=choice)
class ReturnComputerDateForm(forms.Form):
choice = (
("", "Seleziona il motivo"),
("student_resigned", "Studente Dimesso"),
("damaged", "Danneggiato"),
("not_necessary", "Non più necessario")
)
return_date = forms.DateField(widget=SelectDateWidget(), label="Data di ritorno", initial=datetime.now().date)
return_motivation = forms.ChoiceField(choices=choice)
class ReturnAccessoryDateForm(forms.Form):
choice = (
("", "Seleziona il motivo"),
("not_necessary", "Non più necessario"),
("damaged", "Danneggiato"),
)
return_date = forms.DateField(widget=SelectDateWidget(), label="Data di ritorno", initial=datetime.now().date)
return_motivation = forms.ChoiceField(choices=choice)
class StudentViewEditForm(forms.ModelForm):
class Meta:
model = StudentViewEditModel
fields = "__all__"
labels = {
"profile_image": "Immagine Profilo"
}
class TicketForm(forms.ModelForm):
submit_date = forms.DateField(widget=SelectDateWidget(), initial=datetime.now().date(), label="Data del Ticket")
id_student = forms.ModelChoiceField(Student.objects.order_by("course_id_id"))
class Meta:
model = Ticket
fields = "__all__"
labels = {
"title": "Titolo del Ticket",
"content": "Contenuto del Ticket",
"id_student": "Studente",
"submit_date": "Data del Ticket",
"id_user_in_charge" : "Utente Staff assegnato"
}
exclude = ["is_closed", "closing_date"]
class TicketCompleteForm(forms.ModelForm):
submit_date = forms.DateField(widget=SelectDateWidget(), initial=datetime.now().date(), label="Data del Ticket")
closing_date = forms.DateField(widget=SelectDateWidget(), initial=datetime.now().date(), label="Data di Chiusura")
id_student = forms.ModelChoiceField(Student.objects.order_by("course_acronym"), label="Studente")
class Meta:
model = Ticket
fields = "__all__"
labels = {
"title": "Titolo del Ticket",
"content": "Contenuto del Ticket",
"id_student": "Studente",
"submit_date": "Data del Ticket",
"closing_date": "Data di chiusura Ticket",
"is_closed": "É Chiuso?",
"id_user_in_charge": "Utente Staff assegnato"
}
class StudentViewSubmitTicketForm(forms.ModelForm):
submit_date = forms.DateField(widget=SelectDateWidget(), initial=datetime.now().date(), label="Data del Ticket", disabled=True)
class Meta:
model = Ticket
fields = "__all__"
labels = {
"title": "Titolo del Ticket",
"content": "Contenuto del Ticket",
"id_student": "Studente",
"submit_date": "Data del Ticket",
"closing_date": "Data di Chiusura Ticket",
"is_closed": "É Chiuso?"
}
exclude = ["is_closed","id_student", "closing_date", "id_user_in_charge"]