diff --git a/common/templatetags/common_tags.py b/common/templatetags/common_tags.py
index 502febf..f73a9a0 100644
--- a/common/templatetags/common_tags.py
+++ b/common/templatetags/common_tags.py
@@ -30,6 +30,11 @@ def to_str(val):
return str(val)
+@register.filter('class_name')
+def class_name(val):
+ return type(val).__name__
+
+
@register.filter
def multiply(string, times):
return string * times
diff --git a/projects/views.py b/projects/views.py
index c1d3d3e..e4c3426 100644
--- a/projects/views.py
+++ b/projects/views.py
@@ -45,6 +45,8 @@ class ProjectFilterView(BaseMixin, View):
projects = Project.objects
if form.is_valid() and realty_form.is_valid():
+ ord = None
+
keywords = form.cleaned_data.get('keywords')
cro = form.cleaned_data.get('cro')
work_type = form.cleaned_data.get('work_type')
@@ -88,15 +90,14 @@ class ProjectFilterView(BaseMixin, View):
reverse_order = form.cleaned_data.get('reverse_order')
if order_by:
- if order_by == last_order_by:
- reverse_order = not reverse_order
- else:
- reverse_order = False
-
- projects = projects.order_by('-%s' % order_by if reverse_order else order_by)
- last_order_by = order_by
+ reverse_order = not reverse_order if order_by == last_order_by else False
+ ord = order_by
+ last_order_by = ord
elif last_order_by:
- projects = projects.order_by('-%s' % last_order_by if reverse_order else last_order_by)
+ ord = last_order_by
+
+ if ord:
+ projects = projects.order_by('-%s' % ord if reverse_order else ord)
context.update({
'last_order_by': last_order_by,
diff --git a/users/forms.py b/users/forms.py
index 8dde601..31e790f 100644
--- a/users/forms.py
+++ b/users/forms.py
@@ -41,22 +41,22 @@ class UserEditForm(ModelForm):
class ContractorFilterForm(forms.Form):
- # PROJECT_ORDER_CHOICES = ( # "Упорядочить по"...
- # ('name', 'названию'),
- # ('budget', 'цене'),
- # ('created', 'дате размещения'),
- # ('views', 'просмотрам'),
- # )
+ CONTRACTOR_ORDER_CHOICES = ( # "Упорядочить по"...
+ ('name', 'названию'),
+ ('budget', 'цене'),
+ ('created', 'дате размещения'),
+ ('views', 'просмотрам'),
+ )
PARTY_TYPES = (
- ('', 'Все'),
+ ('all', 'Все'),
('teams', 'Группы'),
('contractors', 'Исполнители'),
)
- # order_by = forms.ChoiceField(required=False, choices=PROJECT_ORDER_CHOICES)
- # last_order_by = forms.ChoiceField(required=False, choices=PROJECT_ORDER_CHOICES)
- # reverse_order = forms.BooleanField(required=False)
+ order_by = forms.ChoiceField(required=False, choices=CONTRACTOR_ORDER_CHOICES)
+ last_order_by = forms.ChoiceField(required=False, choices=CONTRACTOR_ORDER_CHOICES)
+ reverse_order = forms.BooleanField(required=False)
specialization = forms.ModelChoiceField(
queryset=Specialization.objects.root_nodes()[0].get_descendants(),
@@ -95,6 +95,11 @@ class ContractorFilterForm(forms.Form):
required=False,
)
+ last_party_types = forms.ChoiceField(
+ choices=PARTY_TYPES,
+ required=False,
+ )
+
def __init__(self, *args, **kwargs):
self.request = kwargs.pop('request')
super().__init__(*args, **kwargs)
diff --git a/users/templates/contractor_filter.html b/users/templates/contractor_filter.html
index 84a02ac..156c7eb 100644
--- a/users/templates/contractor_filter.html
+++ b/users/templates/contractor_filter.html
@@ -142,11 +142,14 @@
type="submit"
name="{{ form.party_types.html_name }}"
value="{{ val }}"
- class="btn btn-default">
+ class="{% if val == last_party_types %}active{% endif %} btn btn-default">
{{ text }}
{% endfor %}
+
+
+