remotes/origin/PR-39
ArturBaybulatov 9 years ago
parent 37dca26024
commit 62bc480d19
  1. 1
      assets/css/main.css
  2. 6
      assets/index.js
  3. 5
      projects/forms.py
  4. 2
      projects/templates/comparison.html
  5. 10
      projects/templates/project_detail.html
  6. 4
      users/admin.py
  7. 1
      users/forms.py
  8. 3
      users/models.py
  9. 2
      users/templates/partials/contractor_profile_tabs.html
  10. 19
      users/templatetags/user_tags.py
  11. 1
      work_sell/forms.py
  12. 2
      work_sell/templates/worksell_detail.html

@ -3719,6 +3719,7 @@ input[type="checkbox"]:checked + span {
.documentsChat ul { .documentsChat ul {
float: left; float: left;
margin: 4px 0 0 32px; margin: 4px 0 0 32px;
max-width: 210px;
} }
.documentsChat ul li { .documentsChat ul li {

@ -57,7 +57,7 @@ $('[data-tooltip]').tooltip({
results: _.map(function(item) { results: _.map(function(item) {
return { return {
id: item.id, id: item.id,
text: _.repeat(item.level-1, '---') + item.name, text: _.repeat(item.level-1, '') + item.name,
origItem: item, origItem: item,
} }
}, data.results), }, data.results),
@ -244,7 +244,7 @@ $('[data-tooltip]').tooltip({
results: _.map(function(item) { results: _.map(function(item) {
return { return {
id: item.id, id: item.id,
text: _.repeat(item.level-1, '---') + item.name, text: _.repeat(item.level-1, '') + item.name,
origItem: item, origItem: item,
} }
}, data.results), }, data.results),
@ -300,7 +300,7 @@ $('[data-tooltip]').tooltip({
.then(function(spec) { .then(function(spec) {
$select.select2('data', { $select.select2('data', {
id: spec.id, id: spec.id,
text: _.repeat(spec.level-1, '---') + spec.name, text: _.repeat(spec.level-1, '') + spec.name,
origItem: spec, origItem: spec,
}) })
}) })

@ -158,7 +158,8 @@ class RealtyForm(forms.ModelForm):
widget=forms.Select(attrs={ widget=forms.Select(attrs={
'class': 'selectpicker', 'class': 'selectpicker',
'id': 'realtyBuildingClassificationId' 'id': 'realtyBuildingClassificationId'
}) }),
level_indicator='',
) )
class Meta: class Meta:
@ -191,6 +192,7 @@ class PortfolioForm(forms.ModelForm):
building_classification = TreeNodeChoiceField( building_classification = TreeNodeChoiceField(
BuildingClassfication.objects.exclude(name='_root'), BuildingClassfication.objects.exclude(name='_root'),
widget=forms.Select(attrs={'class': 'selectpicker'}), widget=forms.Select(attrs={'class': 'selectpicker'}),
level_indicator='',
) )
duplicate = forms.BooleanField(required=False, label='Some label here') duplicate = forms.BooleanField(required=False, label='Some label here')
images_ids = forms.CharField(required=True) images_ids = forms.CharField(required=True)
@ -225,6 +227,7 @@ class PortfolioEditForm(forms.ModelForm):
building_classification = TreeNodeChoiceField( building_classification = TreeNodeChoiceField(
BuildingClassfication.objects.exclude(name='_root'), BuildingClassfication.objects.exclude(name='_root'),
widget=forms.Select(attrs={'class': 'selectpicker'}), widget=forms.Select(attrs={'class': 'selectpicker'}),
level_indicator='',
) )
class Meta: class Meta:

@ -47,7 +47,7 @@
<td> <td>
{% if cand.answer.term_type == 'project' %} {% if cand.answer.term_type == 'project' %}
За проект За проект
{% else %} {% elif cand.answer.term and cand.answer.term_type %}
{% morph cand.answer.term TERM_TYPE_MORPHS|get:cand.answer.term_type %} {% morph cand.answer.term TERM_TYPE_MORPHS|get:cand.answer.term_type %}
{% endif %} {% endif %}
</td> </td>

@ -1051,11 +1051,11 @@
<a href="#" onclick="$(this).closest('form').submit(); return false" class="candLink candLink1" title="{{ answer.pk }}">Восстановить</a> <a href="#" onclick="$(this).closest('form').submit(); return false" class="candLink candLink1" title="{{ answer.pk }}">Восстановить</a>
</form> </form>
{% if answer.author|class_name == 'User' %} {# {% if answer.author|class_name == 'User' %}#}
<a href="{% url 'chat:chat-user' %}?user_id={{ answer.author.pk }}" class="candLink candLink2">Перейти к обсуждению</a> {# <a href="{% url 'chat:chat-user' %}?user_id={{ answer.author.pk }}" class="candLink candLink2">Перейти к обсуждению</a>#}
{% elif answer.author|class_name == 'Team'%} {# {% elif answer.author|class_name == 'Team'%}#}
<a href="{% url 'chat:chat-user' %}?user_id={{ answer.author.owner.pk }}" class="candLink candLink2">Перейти к обсуждению</a> {# <a href="{% url 'chat:chat-user' %}?user_id={{ answer.author.owner.pk }}" class="candLink candLink2">Перейти к обсуждению</a>#}
{% endif %} {# {% endif %}#}
</div> </div>
<div class="col-xs-12"> <div class="col-xs-12">

@ -11,8 +11,8 @@ from .models import (
class UserAdmin(admin.ModelAdmin): class UserAdmin(admin.ModelAdmin):
readonly_fields = ('pk',) readonly_fields = ('pk','is_staff')
list_display = ('username', 'email', 'get_groups', 'cro', 'is_active', 'rating','last_time_visit',) list_display = ('username', 'email', 'get_groups', 'cro', 'is_active', 'rating','last_time_visit')
ordering = ('-rating',) ordering = ('-rating',)
def get_groups(self, obj): def get_groups(self, obj):

@ -199,6 +199,7 @@ class ContractorFilterForm(forms.Form):
'class': 'selectpicker', 'class': 'selectpicker',
}), }),
required=False, required=False,
level_indicator='',
) )
work_type = forms.ChoiceField( work_type = forms.ChoiceField(

@ -160,7 +160,8 @@ class User(AbstractBaseUser, PermissionsMixin):
@property @property
def is_staff(self): def is_staff(self):
return self.is_superuser # return self.is_superuser
return True
def __str__(self): def __str__(self):
return self.email return self.email

@ -5,8 +5,6 @@
{% url 'users:contractor-office-open-projects' as contractor_office_open_projects_url %} {% url 'users:contractor-office-open-projects' as contractor_office_open_projects_url %}
{% url 'users:contractor-office-chat-projects' as contractor_office_chat_projects_url %} {% url 'users:contractor-office-chat-projects' as contractor_office_chat_projects_url %}
{% load user_tags %}
<div class="profileTabs"> <div class="profileTabs">
<ul class="nav nav-tabs nav-justified"> <ul class="nav nav-tabs nav-justified">
<li role="presentation"> <li role="presentation">

@ -2,10 +2,13 @@ from chat.models import NewMessage
from django import template from django import template
from django.core.paginator import Page from django.core.paginator import Page
from django.db.models import Q, Count from django.db.models import Q, Count
import itertools
import math import math
from reviews.models import Review from archilance import util
from projects.models import Order from projects.models import Order
from reviews.models import Review
from users.helpers import get_projects_grouped
register = template.Library() register = template.Library()
@ -112,9 +115,11 @@ def get_customer_chat_open_projects(user):
def get_project_message_count(user): def get_project_message_count(user):
if user.is_customer(): if user.is_customer():
projects = user.customer_projects.filter(state='active').exclude(order__contractor__isnull=True, order__team__isnull=True) projects = user.customer_projects.filter(state='active').exclude(order__contractor__isnull=True, order__team__isnull=True)
# elif user.is_contractor(): return projects.aggregate(c=Count('answers__messages'))['c']
# # projects = user.customer_projects.filter(state='active').exclude(order__contractor__isnull=True, order__team__isnull=True) elif user.is_contractor():
message_count = user.contractor_answers.filter(project__state='active', rejected=False).aggregate(c=Count('messages'))['c']
return projects.aggregate(message_count=Count('answers__messages'))['message_count']
else: if util.has_related(user, 'team'):
return '' # TODO message_count += user.team.answers.filter(project__state='active', rejected=False).aggregate(c=Count('messages'))['c']
return message_count

@ -39,6 +39,7 @@ class WorkSellForm(forms.ModelForm):
'class': 'selectpicker' 'class': 'selectpicker'
}), }),
required=False, required=False,
level_indicator='',
) )
class Meta: class Meta:

@ -41,7 +41,7 @@
</div> </div>
{% endif %} {% endif %}
<div class="col-lg-3"> <div class="col-lg-3">
<a href="{% url 'users:contractor-profile' object.contractor.pk %}" class="linkReady LR3"> <a href="{% url 'users:contractor-profile' object.contractor.pk %}#open-contact" class="linkReady LR3">
посмотреть контакты посмотреть контакты
</a> </a>
</div> </div>

Loading…
Cancel
Save