Fixed #370 , asset categories that are default selected are now shown

This commit is contained in:
Matthew Smith
2019-12-04 23:02:28 +00:00
parent 68e977d749
commit cd73b6cafe
2 changed files with 11 additions and 5 deletions

View File

@@ -10,7 +10,6 @@
</div>
<form id="asset-search-form" method="get" class="form-inline pull-right">
{% csrf_token %}
<div class="input-group pull-right" style="width: auto;">
{% render_field form.query|add_class:'form-control' placeholder='Search by Asset ID/Description' style="width: 250px"%}
<label for="query" class="sr-only">Asset ID/Description:</label>
@@ -20,11 +19,11 @@
<div style="margin-top: 1em;" class="pull-right">
<div class="form-group">
<label for="category" class="sr-only">Category</label>
{% render_field form.category|attr:'multiple'|add_class:'form-control selectpicker' data-none-selected-text="Categories" data-header="Categories"%}
{% render_field form.category|attr:'multiple'|add_class:'form-control selectpicker' data-none-selected-text="Categories" data-header="Categories" data-actions-box="true" %}
</div>
<div class="form-group">
<label for="status" class="sr-only">Status</label>
{% render_field form.status|attr:'multiple'|add_class:'form-control selectpicker' data-none-selected-text="Statuses" data-header="Statuses"%}
{% render_field form.status|attr:'multiple'|add_class:'form-control selectpicker' data-none-selected-text="Statuses" data-header="Statuses" data-actions-box="true" %}
</div>
<!---TODO: Auto filter whenever an option is selected, instead of using a button -->
<button type="submit" class="btn btn-default">Filter</button>

View File

@@ -1,11 +1,14 @@
from django.contrib.auth.mixins import LoginRequiredMixin
from django.http import JsonResponse
from django.views import generic
from django.views.decorators.csrf import csrf_exempt
from django.utils.decorators import method_decorator
from django.urls import reverse
from django.db.models import Q
from assets import models, forms
@method_decorator(csrf_exempt, name='dispatch')
class AssetList(LoginRequiredMixin, generic.ListView):
model = models.Asset
template_name = 'asset_list.html'
@@ -13,13 +16,17 @@ class AssetList(LoginRequiredMixin, generic.ListView):
ordering = ['-pk']
hide_hidden_status = True
def get_initial(self):
initial = {'status': models.AssetStatus.objects.filter(should_show=True)}
return initial
def get_queryset(self):
if self.request.method == 'POST':
self.form = forms.AssetSearchForm(data=self.request.POST)
elif self.request.method == 'GET':
elif self.request.method == 'GET' and len(self.request.GET) > 0:
self.form = forms.AssetSearchForm(data=self.request.GET)
else:
self.form = forms.AssetSearchForm(data={})
self.form = forms.AssetSearchForm(data=self.get_initial())
form = self.form
if not form.is_valid():
return self.model.objects.none()