#ARC-21 Multilevel elations filter

remotes/origin/setup
ArturBaybulatov 10 years ago
parent 6a12f2dd62
commit ec8da23d62
  1. 6
      users/forms.py
  2. 10
      users/templates/contractor_filter.html
  3. 9
      users/views.py

@ -3,6 +3,7 @@ from django.forms import ModelForm
from .models import User, ContractorFinancialInfo from .models import User, ContractorFinancialInfo
from common.models import Location from common.models import Location
from projects.models import BuildingClassfication, ConstructionType
from specializations.models import Specialization from specializations.models import Specialization
@ -61,6 +62,11 @@ class ContractorFilterForm(forms.ModelForm):
required=False, required=False,
) )
building_classification = forms.ModelChoiceField(
queryset=BuildingClassfication.objects,
required=False,
)
class Meta: class Meta:
model = User model = User

@ -102,13 +102,18 @@
<div class="slideRes disTab activeSlide"> <div class="slideRes disTab activeSlide">
<div class="titleF1 disTab"> <div class="titleF1 disTab">
<div class="col-lg-3">Foooooooo</div> <div class="col-lg-3">Классификация здания</div>
{# <div class="col-lg-3">Вид строительства</div>#}
</div> </div>
<div class="polsF1 disTab"> <div class="polsF1 disTab">
<div class="col-lg-3"> <div class="col-lg-3">
<input type="hidden" class="-spec-select -spec-select-level-4" style="width: 100%"> {{ form.building_classification }}
</div> </div>
{# <div class="col-lg-3">#}
{# {{ realty_form.construction_type }}#}
{# </div>#}
</div> </div>
</div> </div>
@ -234,6 +239,7 @@
-->Specializations: {{ contractor.contractor_specializations.all }}<br><!-- -->Specializations: {{ contractor.contractor_specializations.all }}<br><!--
--><br><!-- --><br><!--
-->Location: {{ contractor.location }}<br><!-- -->Location: {{ contractor.location }}<br><!--
-->Build. classif.: {% for o in contractor.orders.all %}{{ o.project.realty.building_classification }},{% endfor %}<br><!--
--></pre> --></pre>
</div> </div>
{% endif %} {% endif %}

@ -34,16 +34,13 @@ class UserListView(ListView):
class ContractorFilterView(BaseMixin, View): class ContractorFilterView(BaseMixin, View):
template_name = 'contractor_filter.html' template_name = 'contractor_filter.html'
form_class = ContractorFilterForm form_class = ContractorFilterForm
# realty_form = ProjectFilterRealtyForm
def get(self, request, *args, **kwargs): def get(self, request, *args, **kwargs):
form = self.form_class(request.GET, request=request) form = self.form_class(request.GET, request=request)
# realty_form = self.realty_form(request.GET, request=request, prefix='realty_form')
context = self.get_context_data(**_.merge({}, request.GET, kwargs)) context = self.get_context_data(**_.merge({}, request.GET, kwargs))
contractors = User.contractor_objects contractors = User.contractor_objects
# if form.is_valid() and realty_form.is_valid():
if form.is_valid(): if form.is_valid():
# keywords = form.cleaned_data.get('keywords') # keywords = form.cleaned_data.get('keywords')
# cro = form.cleaned_data.get('cro') # cro = form.cleaned_data.get('cro')
@ -54,6 +51,8 @@ class ContractorFilterView(BaseMixin, View):
# construction_type = realty_form.cleaned_data.get('construction_type') # construction_type = realty_form.cleaned_data.get('construction_type')
location = form.cleaned_data.get('location') location = form.cleaned_data.get('location')
build_classif = form.cleaned_data.get('building_classification')
# if keywords: # if keywords:
# keywords = tuple(filter(None, re.split(r'\s|,|;', keywords))) # keywords = tuple(filter(None, re.split(r'\s|,|;', keywords)))
# #
@ -85,6 +84,10 @@ class ContractorFilterView(BaseMixin, View):
location__rght__lte=location.rght, location__rght__lte=location.rght,
) )
if build_classif:
contractors = contractors.filter(orders__project__realty__building_classification=build_classif)
# order_by = form.cleaned_data.get('order_by') # order_by = form.cleaned_data.get('order_by')
# last_order_by = form.cleaned_data.get('last_order_by') # last_order_by = form.cleaned_data.get('last_order_by')
# reverse_order = form.cleaned_data.get('reverse_order') # reverse_order = form.cleaned_data.get('reverse_order')

Loading…
Cancel
Save