Add stock list to storage dtail view and start search

This commit is contained in:
2021-10-31 20:57:28 +01:00
parent f4113d71d8
commit 81a644cd95
5 changed files with 107 additions and 30 deletions

View File

@@ -0,0 +1,8 @@
from django import forms
class MyTestForm(forms.Form):
pass
class AddSubStorageForm(forms.Form):
storage_name = forms.CharField(label="storage_name", initial='')
responsible = forms.CharField(label='responsible_user')

View File

@@ -13,6 +13,9 @@ from .models import Storage, Stock
from .qr_parser import QrCodeValidator
from django.core.paginator import Paginator
from django.core.exceptions import ValidationError
from .forms import MyTestForm, AddSubStorageForm
from django.db.models import Q
import uuid
class QrSearchForm(forms.Form):
my_qr_validator = QrCodeValidator()
@@ -100,10 +103,6 @@ class ComponentView(LoginRequiredMixin, BaseTemplateMixin, TemplateView):
base_title = 'Components'
navbar_selected = 'Components'
class AddSubStorageForm(forms.Form):
storage_name = forms.CharField(label="storage_name", initial='')
responsible = forms.CharField(label='responsible_user')
class StockView(LoginRequiredMixin, BaseTemplateMixin, TemplateView):
template_name = 'parts/stocks.html'
base_title = 'Stocks'
@@ -179,17 +178,44 @@ class StockViewDetail(LoginRequiredMixin, BaseTemplateMixin, DetailView):
crumbs = crumbs[::-1][:-1]
return crumbs
def search_stock_queryset(self, search):
stocks_in_storage = Stock.objects.filter(storage=self.object)
if search is None or search == '':
return stocks_in_storage
# Check if the searhc equals a UUID
test_uuid = None
try:
test_uuid = uuid.UUID(search)
except:
pass
if test_uuid is not None:
stocks_in_storage = stocks_in_storage.filter(component__id = test_uuid)
else:
stocks_in_storage = stocks_in_storage.filter(Q(component__name__contains = search) |
Q(component__package__name__contains = search))
return stocks_in_storage
def get_context_data(self, **kwargs):
self.base_title = 'Stocks / ' + self.object.name
context = super().get_context_data(**kwargs)
context['breadcrumbs'] = self.get_breadcrumbs()
storage_page = self.request.GET.get('storage_page')
if storage_page is None:
storage_page = 1
storage_page = self.request.GET.get('storage_page', default=1)
storage_paginator = Paginator(Storage.objects.filter(parent_storage=self.object), self.default_pagination_size)
stock_search_input = self.request.GET.get('search')
componente_stock_page = self.request.GET.get('stock_page', default=1)
stock_paginator = Paginator(self.search_stock_queryset(stock_search_input), self.default_pagination_size)
context['storages'] = storage_paginator.get_page(storage_page)
context['stocks'] = stock_paginator.get_page(componente_stock_page)
context['stock_search'] = stock_search_input
add_storage_form = AddSubStorageForm()
add_storage_form.fields['responsible'].initial = self.request.user.username
context['add_storage_form'] = add_storage_form