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 {
float: left;
margin: 4px 0 0 32px;
max-width: 210px;
}
.documentsChat ul li {

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

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

@ -47,7 +47,7 @@
<td>
{% 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 %}
{% endif %}
</td>

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

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

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

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

@ -5,8 +5,6 @@
{% 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 %}
<div class="profileTabs">
<ul class="nav nav-tabs nav-justified">
<li role="presentation">

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

@ -41,7 +41,7 @@
</div>
{% endif %}
<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>
</div>

Loading…
Cancel
Save