devicehub-django/lot/forms.py

40 lines
1.1 KiB
Python
Raw Normal View History

2024-07-09 15:31:24 +00:00
from django import forms
from lot.models import Lot
2024-07-30 20:54:00 +00:00
2024-07-09 15:31:24 +00:00
class LotsForm(forms.Form):
lots = forms.ModelMultipleChoiceField(
2025-03-03 16:08:52 +00:00
queryset=Lot.objects.filter(archived=False),
2024-07-09 15:31:24 +00:00
widget=forms.CheckboxSelectMultiple,
)
2025-03-03 16:08:52 +00:00
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
#grouping lots by their lot group for more readability
self.grouped_lots = {}
for lot in self.fields['lots'].queryset:
group_name = lot.type.name if lot.type else "No group"
if group_name not in self.grouped_lots:
self.grouped_lots[group_name] = []
self.grouped_lots[group_name].append(lot)
2024-07-09 15:31:24 +00:00
def clean(self):
self._lots = self.cleaned_data.get("lots")
return self._lots
def save(self, commit=True):
if not commit:
return
2024-07-19 15:40:01 +00:00
2024-07-09 15:31:24 +00:00
for dev in self.devices:
for lot in self._lots:
2024-07-19 15:40:01 +00:00
lot.add(dev.id)
2024-07-09 15:31:24 +00:00
return
2024-07-10 08:24:40 +00:00
def remove(self):
for dev in self.devices:
for lot in self._lots:
2024-07-19 15:40:01 +00:00
lot.remove(dev.id)
2024-07-10 08:24:40 +00:00
return