diff --git a/assets/css/main.css b/assets/css/main.css index ff529f7..6a00ed6 100644 --- a/assets/css/main.css +++ b/assets/css/main.css @@ -921,6 +921,10 @@ footer:after { margin-right: 0; } +.desPro li a:hover { + text-decoration: underline !important; +} + .textPro { width: 100%; float: left; @@ -5693,7 +5697,7 @@ input[type="radio"]:checked + span { font-weight: normal; line-height: 1.42857143; color: #333333; - white-space: nowrap; + /*white-space: nowrap;*/ } .select2-results .select2-result-label:hover{ background-color: #f2f2f2; @@ -5977,7 +5981,7 @@ a.linkS2[data-target="#withdraw-money"]{ margin-top: 0px; } .changeBlock { - /*min-height: 650px;*/ + min-height: 500px; display: table; padding: 143px 20px 120px 20px; } diff --git a/assets/js/chat.js b/assets/js/chat.js index 4f06bea..0cb86cd 100644 --- a/assets/js/chat.js +++ b/assets/js/chat.js @@ -781,7 +781,7 @@ function dialog (message, yesCallback, notCallback) { console.log(json); $("#review-add").modal('hide'); $("#leaveReview").hide(); - var currOrder = json.project; + var currOrder = json.order; var currRecipent = json.target_user; socket.send_stages_approve({ diff --git a/projects/forms.py b/projects/forms.py index 476efa4..74bca1e 100644 --- a/projects/forms.py +++ b/projects/forms.py @@ -85,6 +85,7 @@ class ProjectFilterRealtyForm(forms.ModelForm): self.fields['construction_type'].required = False self.fields['location'].queryset = Location.objects.root_nodes()[0].get_descendants() + self.fields['building_classification'].queryset = BuildingClassfication.objects.root_nodes()[0].get_descendants() # self.fields['location'].queryset = Location.objects # Migrate with this enabled @@ -152,8 +153,8 @@ class CustomerProjectEditForm(forms.ModelForm): class RealtyForm(forms.ModelForm): building_classification = TreeNodeChoiceField( - BuildingClassfication.objects.all(), - label="", initial='', + BuildingClassfication.objects.exclude(name='_root'), + label="ll", initial='', widget=forms.Select(attrs={ 'class': 'selectpicker', 'id': 'realtyBuildingClassificationId' diff --git a/reviews/serializers.py b/reviews/serializers.py index e985c86..99dadee 100644 --- a/reviews/serializers.py +++ b/reviews/serializers.py @@ -7,6 +7,7 @@ from users.serializers import UserSerializer, TeamSerializer class ReviewSerializer(ModelSerializer): target_user = serializers.SerializerMethodField(read_only=True) + order = serializers.SerializerMethodField(read_only=True) class Meta: model = Review @@ -24,8 +25,12 @@ class ReviewSerializer(ModelSerializer): 'target_contractor', 'target_team', 'target_user', + 'order', ) + def get_order(self, obj): + return obj.project.order.pk + def get_target_user(self, obj): if obj.target_customer: return obj.target_customer.pk diff --git a/templates/partials/base.html b/templates/partials/base.html index 9211d34..ea2b62a 100644 --- a/templates/partials/base.html +++ b/templates/partials/base.html @@ -84,7 +84,7 @@ var port = '{{ request.META.SERVER_PORT }}'; var queryString = '{{ request.get_full_path }}'; - if ((queryString.indexOf('/chat') != 0) && (queryString.indexOf('/users/contractor-office/510/work-projects') != 0)) { + if ((queryString.indexOf('/chat') != 0) && (queryString.indexOf('/users/contractor-office/work-projects') != 0)) { domain = domain.replace(':' + port, ''); var url = 'ws://' + domain + '/chat/' + userId + '/'; var sock = new WebSocket(url); diff --git a/users/templates/partials/contractor_profile_tabs.html b/users/templates/partials/contractor_profile_tabs.html index c81a007..b4f0ed4 100644 --- a/users/templates/partials/contractor_profile_tabs.html +++ b/users/templates/partials/contractor_profile_tabs.html @@ -5,6 +5,8 @@ {% url 'users:contractor-office-open-projects' as contractor_office_open_projects_url %} {% url 'users:contractor-office-chat-projects' as contractor_office_chat_projects_url %} +{% load user_tags %} +
diff --git a/users/templates/partials/customer_profile_info_block.html b/users/templates/partials/customer_profile_info_block.html index d7b35ad..f0cac88 100644 --- a/users/templates/partials/customer_profile_info_block.html +++ b/users/templates/partials/customer_profile_info_block.html @@ -1,6 +1,7 @@ {% load specializtions_tags %} {% load user_tags %} {% load thumbnail %} +{% load user_tags %}
@@ -69,7 +70,7 @@ Отзывы
-
0
+
{% get_reviews_count request.user %}
diff --git a/users/templatetags/user_tags.py b/users/templatetags/user_tags.py index a8f7e44..8381cc1 100644 --- a/users/templatetags/user_tags.py +++ b/users/templatetags/user_tags.py @@ -1,9 +1,13 @@ from chat.models import NewMessage from django import template from django.core.paginator import Page -from django.db.models import Count +from django.db.models import Q, Count import math +from reviews.models import Review +from projects.models import Order + + register = template.Library() @@ -86,6 +90,24 @@ def get_new_count_for_team(current_user, team_id, order_id=None): return count +@register.simple_tag +def get_reviews_count(user): + if user.is_customer(): + count = Review.objects.filter(target_customer=user).count() + else: + count = Review.objects.filter(target_contractor=user).count() + return count + + +@register.simple_tag +def get_customer_chat_open_projects(user): + team_ids = [] + if user.is_owner_team(): + team_ids.append(user.team.pk) + count = Order.objects.filter(Q(contractor=user) | Q(team_id__in=team_ids)).count() + return count + + @register.filter def get_project_message_count(user): if user.is_customer(): diff --git a/users/views.py b/users/views.py index 6aa0d5a..25e48be 100644 --- a/users/views.py +++ b/users/views.py @@ -486,24 +486,9 @@ class ContractorChatProjectsView(View): team_ids = [] if request.user.is_owner_team(): team_ids.append(request.user.team.pk) - team_orders = request.user.team.orders.all() - else: - teams = Team.objects.filter(contractors__id=request.user.pk).all() - team_orders = Order.objects.filter(team_id__in=[team.pk for team in teams]).all() orders = Order.objects.filter(Q(contractor=request.user) | Q(team_id__in=team_ids)).all() - contractor_contacts = Message.objects.values_list('sender_id', 'recipent_id').filter( - Q(recipent_id=request.user.pk) | Q(sender_id=request.user.pk)).filter(Q(team_id=None)).distinct() - users_ids = [] - for msg in contractor_contacts: - a, b = msg - if a != request.user.pk: - users_ids.append(a) - if b != request.user.pk: - users_ids.append(b) - # contacts_users = User.objects.filter(pk__in=users_ids) - chat_messages = Message.objects.filter(Q(sender=request.user.pk) | Q(recipent=request.user.pk)).order_by( - 'created') + context['orders'] = orders return render(request, self.template_name, context)