remotes/origin/PR-39
ArturBaybulatov 9 years ago
commit c51f8cbf4f
  1. 11
      projects/views.py
  2. 18
      users/forms.py
  3. 26
      users/signals.py
  4. 1
      users/templatetags/user_tags.py
  5. 5
      work_sell/forms.py

@ -23,6 +23,7 @@ from archilance.mixins import BaseMixin
from common.mixins import CustomerRequiredMixin, ContractorRequiredMixin, NoCsrfMixin
from users.models import User, Team
from work_sell.models import Picture, WorkSell, WorkSellPhoto
from ratings.models import HistoryRating
from .models import (
Answer,
@ -738,13 +739,23 @@ class CustomerOfferOrderView(View):
answer = None
order = project.order
status = None
if not order.contractor and not order.team:
if isinstance(answer.author, User):
order.contractor = answer.author
order.save()
status = True
elif isinstance(answer.author, Team):
order.team = answer.author
order.save()
status = True
if status:
hs_rating = HistoryRating()
hs_rating.user = request.user
hs_rating.rating = 1
hs_rating.type = 'choice_contractor'
hs_rating.description = 'Заказчик выбрал исполнителя'
hs_rating.save()
redirect_url = reverse('chat:chat-user') + '#order' + str(order.pk)
return HttpResponseRedirect(redirect_url)

@ -1,4 +1,5 @@
from django import forms
from mptt.forms import TreeNodeChoiceField
import itertools
import pydash as _; _.map = _.map_; _.filter = _.filter_
@ -185,11 +186,19 @@ class ContractorFilterForm(forms.Form):
required=False,
)
building_classification = forms.ModelChoiceField(
queryset=BuildingClassfication.objects,
widget=forms.Select(attrs={'class': 'selectpicker'}),
required=False,
# building_classification = forms.ModelChoiceField(
# queryset=BuildingClassfication.objects,
# widget=forms.Select(attrs={'class': 'selectpicker'}),
# empty_label='',
# )
building_classification = TreeNodeChoiceField(
BuildingClassfication.objects.exclude(name='_root'),
empty_label='',
widget=forms.Select(attrs={
'class': 'selectpicker',
}),
required=False,
)
work_type = forms.ChoiceField(
@ -223,6 +232,7 @@ class ContractorFilterForm(forms.Form):
class CustomerProfileProjectRealtyForm(forms.Form):
def __init__(self, *args, **kwargs):
self.request = kwargs.pop('request')
self.customer = kwargs.pop('customer')

@ -1,7 +1,29 @@
import math
from django.dispatch import receiver
from django.db.models.signals import post_save
from ratings.models import HistoryRating
from django.contrib.auth.models import Group
from registration.signals import user_registered
from users.models import ContractorResume
from users.models import ContractorResume, User
@receiver(post_save, sender=User)
def add_rating_for_user_fields(sender, instance, created, **kwargs):
hs_rating = HistoryRating.objects.get_or_create(user=instance, type='occupancy_profile')
fields = ['avatar', 'cro', 'first_name', 'gender',
'last_name', 'patronym', 'phone',
'skype', 'website', 'location']
indicator_sum = 0
for f in fields:
if hasattr(instance, f) and getattr(instance, f):
indicator_sum += 1
rating = math.ceil(math.ceil(100 / len(fields)) * indicator_sum)
hs_rating[0].rating = rating
hs_rating[0].description = 'Заполненные поля в профиле. Баллы за рейтинг'
hs_rating[0].save()
# @receiver(user_registered)
# def user_registered_callback(sender, user, request, **kwargs):
@ -13,3 +35,5 @@ from users.models import ContractorResume
# resume = ContractorResume.objects.create(text='')
# user.contractor_resume = resume
# user.save()

@ -10,6 +10,7 @@ def contractor_indicator(context, contractor):
fields = ['avatar', 'cro', 'first_name', 'gender',
'last_name', 'patronym', 'phone',
'skype', 'website', 'location']
indicator_sum = 0
for f in fields:
if hasattr(contractor, f) and getattr(contractor, f):

@ -35,7 +35,10 @@ class WorkSellForm(forms.ModelForm):
building_classification = TreeNodeChoiceField(
BuildingClassfication.objects.exclude(name='_root'),
widget=forms.Select(attrs={'class': 'selectpicker'}),
widget=forms.Select(attrs={
'class': 'selectpicker'
}),
required=False,
)
class Meta:

Loading…
Cancel
Save