Some changes have been made
This commit is contained in:
@@ -1,35 +1,18 @@
|
||||
from django import forms
|
||||
from ..models import Income, Device, Warehouse
|
||||
from ..models import Income, Warehouse
|
||||
|
||||
|
||||
class IncomeForm(forms.ModelForm):
|
||||
class Meta:
|
||||
model = Income
|
||||
fields = ["device", "amount", "warehouse"]
|
||||
fields = ["warehouse", "toys_count", "price_per_toy"]
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
self.user = kwargs.pop("user", None)
|
||||
super().__init__(*args, **kwargs)
|
||||
|
||||
if self.user is not None:
|
||||
# Filter devices
|
||||
if self.user.role == "businessman":
|
||||
self.fields["warehouse"].queryset = Warehouse.objects.all()
|
||||
elif self.user.role == "manager":
|
||||
self.fields["warehouse"].queryset = Warehouse.objects.filter(region=self.user.region)
|
||||
elif self.user.role == "employee":
|
||||
self.fields["device"].queryset = Device.objects.filter(district__region=self.user.region)
|
||||
|
||||
# Remove amount for employees
|
||||
if self.user.role == "employee":
|
||||
self.fields.pop("amount", None)
|
||||
|
||||
def save(self, commit=True):
|
||||
instance = super().save(commit=False)
|
||||
if self.user:
|
||||
instance.created_by = self.user
|
||||
if getattr(self.user, "role", None) == "employee":
|
||||
instance.amount = None
|
||||
if commit:
|
||||
instance.save()
|
||||
return instance
|
||||
# Filter warehouse by manager region
|
||||
if self.user and self.user.role == "manager":
|
||||
self.fields["warehouse"].queryset = Warehouse.objects.filter(
|
||||
region=self.user.region
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user