You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
depot_django/common/utils.py

39 lines
1.1 KiB
Python

from containers.models import Container
from preinfo.models import Preinfo
def filter_queryset_by_user(queryset, user):
"""
Filters the queryset based on the user's line or company.
If the user has a line, it filters by that line.
If the user has a company, it filters by all lines associated with that company.
"""
if user.line:
return queryset.filter(line=user.line)
elif user.company:
company_lines = user.company.line_company.all()
return queryset.filter(line__in=company_lines)
return queryset
def get_preinfo_by_number(number):
"""
Retrieves a PreinfoModel instance by its container number.
Returns None if no matching PreinfoModel is found.
"""
try:
return Preinfo.objects.get(container_number=number, received=False)
except Preinfo.DoesNotExist:
return None
def get_container_by_number(number):
"""
Retrieves a Container instance by its number.
Returns None if no matching Container is found.
"""
try:
return Container.objects.get(number=number, expedited=False)
except Container.DoesNotExist:
return None