Files
eumi_v4/equipment/forms.py
T

293 lines
10 KiB
Python

from django import forms
from django.urls import reverse_lazy
from .models import (
Computer,
Monitor,
Peripheral,
MaintenanceRecord,
HandoverProtocol,
DecommissionRecord,
DigitalCertificate,
)
class ComputerForm(forms.ModelForm):
entry_date = forms.DateField(
input_formats=["%d.%m.%Y", "%Y-%m-%d"],
widget=forms.TextInput(
attrs={"class": "form-control flatpickr-date", "placeholder": "ZZ.LL.AAAA"}
),
)
class Meta:
model = Computer
fields = [
"equipment_code",
"status",
"assigned_to",
"entry_date",
"oem_name",
"motherboard",
"cpu",
"ram",
"storage",
"optical_drive",
"gpu",
"mac_address",
"os_license",
"additional_licenses",
"observations",
]
widgets = {
"equipment_code": forms.TextInput(attrs={"class": "form-control"}),
"status": forms.Select(attrs={"class": "form-select"}),
"assigned_to": forms.Select(attrs={"class": "form-select"}),
"oem_name": forms.TextInput(attrs={"class": "form-control"}),
"motherboard": forms.TextInput(attrs={"class": "form-control"}),
"cpu": forms.TextInput(attrs={"class": "form-control"}),
"ram": forms.TextInput(attrs={"class": "form-control"}),
"storage": forms.TextInput(attrs={"class": "form-control"}),
"optical_drive": forms.TextInput(attrs={"class": "form-control"}),
"gpu": forms.TextInput(attrs={"class": "form-control"}),
"mac_address": forms.TextInput(attrs={"class": "form-control"}),
"os_license": forms.TextInput(attrs={"class": "form-control"}),
"additional_licenses": forms.Textarea(
attrs={"class": "form-control", "rows": 2}
),
"observations": forms.Textarea(attrs={"class": "form-control", "rows": 2}),
}
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
if self.instance and self.instance.pk:
# self.fields["assigned_to"].disabled = True
self.fields["assigned_to"].help_text = (
"Transferul se face doar generând un Proces Verbal nou."
)
class MonitorForm(forms.ModelForm):
entry_date = forms.DateField(
input_formats=["%d.%m.%Y", "%Y-%m-%d"],
widget=forms.TextInput(
attrs={"class": "form-control flatpickr-date", "placeholder": "ZZ.LL.AAAA"}
),
)
class Meta:
model = Monitor
fields = [
"equipment_code",
"status",
"assigned_to",
"entry_date",
"name",
"serial_number",
"screen_diagonal",
"observations",
]
widgets = {
"equipment_code": forms.TextInput(attrs={"class": "form-control"}),
"status": forms.Select(attrs={"class": "form-select"}),
"assigned_to": forms.Select(attrs={"class": "form-select"}),
"name": forms.TextInput(attrs={"class": "form-control"}),
"serial_number": forms.TextInput(attrs={"class": "form-control"}),
"screen_diagonal": forms.TextInput(attrs={"class": "form-control"}),
"observations": forms.Textarea(attrs={"class": "form-control", "rows": 2}),
}
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
if self.instance and self.instance.pk:
# self.fields["assigned_to"].disabled = True
self.fields["assigned_to"].help_text = (
"Transferul se face doar generând un Proces Verbal nou."
)
class PeripheralForm(forms.ModelForm):
entry_date = forms.DateField(
input_formats=["%d.%m.%Y", "%Y-%m-%d"],
widget=forms.TextInput(
attrs={"class": "form-control flatpickr-date", "placeholder": "ZZ.LL.AAAA"}
),
)
class Meta:
model = Peripheral
fields = [
"equipment_code",
"status",
"assigned_to",
"entry_date",
"peripheral_type",
"name",
"serial_number",
"observations",
]
widgets = {
"equipment_code": forms.TextInput(attrs={"class": "form-control"}),
"status": forms.Select(attrs={"class": "form-select"}),
"assigned_to": forms.Select(attrs={"class": "form-select"}),
"peripheral_type": forms.Select(attrs={"class": "form-select"}),
"name": forms.TextInput(attrs={"class": "form-control"}),
"serial_number": forms.TextInput(attrs={"class": "form-control"}),
"observations": forms.Textarea(attrs={"class": "form-control", "rows": 2}),
}
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
if self.instance and self.instance.pk:
# self.fields["assigned_to"].disabled = True
self.fields["assigned_to"].help_text = (
"Transferul se face doar generând un Proces Verbal nou."
)
class MaintenanceRecordForm(forms.ModelForm):
date = forms.DateField(
input_formats=["%d.%m.%Y", "%Y-%m-%d"],
widget=forms.TextInput(
attrs={"class": "form-control flatpickr-date", "placeholder": "ZZ.LL.AAAA"}
),
)
class Meta:
model = MaintenanceRecord
fields = ["date", "operation_type", "description", "performed_by"]
widgets = {
"operation_type": forms.TextInput(
attrs={
"class": "form-control",
"placeholder": "ex: Curățare praf, Upgrade RAM...",
}
),
"description": forms.Textarea(attrs={"class": "form-control", "rows": 3}),
"performed_by": forms.TextInput(attrs={"class": "form-control"}),
}
class HandoverProtocolForm(forms.ModelForm):
date = forms.DateField(
input_formats=["%d.%m.%Y", "%Y-%m-%d"],
widget=forms.TextInput(
attrs={"class": "form-control flatpickr-date", "placeholder": "ZZ.LL.AAAA"}
),
)
class Meta:
model = HandoverProtocol
fields = [
"date",
"previous_holder",
"new_holder",
"computers",
"monitors",
"peripherals",
"notes",
"scanned_document",
]
widgets = {
"previous_holder": forms.Select(
attrs={
"class": "form-select",
"hx-get": reverse_lazy("equipment:load_user_equipment"),
"hx-target": "#equipment-lists",
"hx-trigger": "change",
}
),
"new_holder": forms.Select(attrs={"class": "form-select"}),
"computers": forms.SelectMultiple(
attrs={"class": "form-select", "size": 5}
),
"monitors": forms.SelectMultiple(attrs={"class": "form-select", "size": 5}),
"peripherals": forms.SelectMultiple(
attrs={"class": "form-select", "size": 5}
),
"notes": forms.Textarea(attrs={"class": "form-control", "rows": 2}),
"scanned_document": forms.FileInput(attrs={"class": "form-control"}),
}
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
if not self.is_bound and not self.instance.pk:
self.fields["computers"].queryset = Computer.objects.none()
self.fields["monitors"].queryset = Monitor.objects.none()
self.fields["peripherals"].queryset = Peripheral.objects.none()
class DecommissionRecordForm(forms.ModelForm):
date = forms.DateField(
input_formats=["%d.%m.%Y", "%Y-%m-%d"],
widget=forms.TextInput(
attrs={"class": "form-control flatpickr-date", "placeholder": "ZZ.LL.AAAA"}
),
)
class Meta:
model = DecommissionRecord
fields = [
"document_number",
"date",
"committee_members",
"reason",
"computers",
"monitors",
"peripherals",
]
widgets = {
"document_number": forms.TextInput(attrs={"class": "form-control"}),
"committee_members": forms.Textarea(
attrs={"class": "form-control", "rows": 2}
),
"reason": forms.Textarea(attrs={"class": "form-control", "rows": 2}),
"computers": forms.SelectMultiple(
attrs={"class": "form-select", "size": 5}
),
"monitors": forms.SelectMultiple(attrs={"class": "form-select", "size": 5}),
"peripherals": forms.SelectMultiple(
attrs={"class": "form-select", "size": 5}
),
}
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
if not self.is_bound and not self.instance.pk:
self.fields["computers"].queryset = Computer.objects.filter(status="activ")
self.fields["monitors"].queryset = Monitor.objects.filter(status="activ")
self.fields["peripherals"].queryset = Peripheral.objects.filter(
status="activ"
)
class DigitalCertificateForm(forms.ModelForm):
issue_date = forms.DateField(
input_formats=["%d.%m.%Y", "%Y-%m-%d"],
widget=forms.TextInput(
attrs={"class": "form-control flatpickr-date", "placeholder": "ZZ.LL.AAAA"}
),
)
expiration_date = forms.DateField(
input_formats=["%d.%m.%Y", "%Y-%m-%d"],
widget=forms.TextInput(
attrs={"class": "form-control flatpickr-date", "placeholder": "ZZ.LL.AAAA"}
),
)
class Meta:
model = DigitalCertificate
fields = [
"certificate_type",
"assigned_to",
"issue_date",
"expiration_date",
"observations",
"is_canceled",
]
widgets = {
"certificate_type": forms.Select(attrs={"class": "form-select"}),
"assigned_to": forms.Select(attrs={"class": "form-select"}),
"observations": forms.Textarea(attrs={"class": "form-control", "rows": 2}),
"is_canceled": forms.CheckboxInput(attrs={"class": "form-check-input"}),
}