Add stock list to storage dtail view and start search
This commit is contained in:
8
shimatta_kenkyusho/parts/forms.py
Normal file
8
shimatta_kenkyusho/parts/forms.py
Normal 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')
|
@@ -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
|
||||
|
Reference in New Issue
Block a user