|
|
|
@ -2,42 +2,44 @@ |
|
|
|
|
|
|
|
|
|
|
|
{% load specializtions_tags %} |
|
|
|
{% load specializtions_tags %} |
|
|
|
{% load thumbnail %} |
|
|
|
{% load thumbnail %} |
|
|
|
|
|
|
|
{% load user_tags %} |
|
|
|
|
|
|
|
|
|
|
|
{% block content %} |
|
|
|
{% block content %} |
|
|
|
{% include 'partials/modals/add_team_member.html' %} |
|
|
|
{% include 'partials/modals/add_team_member.html' %} |
|
|
|
{% include 'partials/header.html' %} |
|
|
|
{% include 'partials/header.html' %} |
|
|
|
|
|
|
|
|
|
|
|
<div class="container mainScore"> |
|
|
|
<div class="container mainScore"> |
|
|
|
<div class="row"> |
|
|
|
<div class="row"> |
|
|
|
<div class="col-lg-12"> |
|
|
|
<div class="col-lg-12"> |
|
|
|
<p class="titleScore">Личный кабинет</p> |
|
|
|
<p class="titleScore">Личный кабинет</p> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
|
|
{% include 'partials/contractor_profile_tabs.html' %} |
|
|
|
{% include 'partials/contractor_profile_tabs.html' %} |
|
|
|
|
|
|
|
|
|
|
|
<div class="buttonGP disTab"> |
|
|
|
<div class="buttonGP disTab"> |
|
|
|
<div class="btn-group valProject2 val-pro3" role="group"> |
|
|
|
<div class="btn-group valProject2 val-pro3" role="group"> |
|
|
|
{% if contractor.team %} |
|
|
|
{% if contractor.team %} |
|
|
|
<a href="{% url 'users:team-profile' pk=contractor.team.pk %}" class="btn btn-default"> |
|
|
|
<a href="{% url 'users:team-profile' pk=contractor.team.pk %}" class="btn btn-default"> |
|
|
|
{{ contractor.team.name }} |
|
|
|
{{ contractor.team.name }} |
|
|
|
<span><mark>0</mark></span> |
|
|
|
<span><mark>{% get_new_count_message contractor.team request.user %}</mark></span> |
|
|
|
</a> |
|
|
|
</a> |
|
|
|
{% else %} |
|
|
|
{% else %} |
|
|
|
<button type="button" class="btn btn-default add-group" data-toggle="modal" data-target="#myModal"> |
|
|
|
<button type="button" class="btn btn-default add-group" data-toggle="modal" |
|
|
|
|
|
|
|
data-target="#myModal"> |
|
|
|
+ Добавить группу |
|
|
|
+ Добавить группу |
|
|
|
</button> |
|
|
|
</button> |
|
|
|
{% endif %} |
|
|
|
{% endif %} |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
|
|
<div class="btn-group valProject2 val-pro3" role="group"> |
|
|
|
<div class="btn-group valProject2 val-pro3" role="group"> |
|
|
|
{% for team in contractor.teams.all %} |
|
|
|
{% for team in contractor.teams.all %} |
|
|
|
<a href="{% url 'users:team-profile' pk=team.pk %}" class="btn btn-default"> |
|
|
|
<a href="{% url 'users:team-profile' pk=team.pk %}" class="btn btn-default"> |
|
|
|
{{ team.name }} |
|
|
|
{{ team.name }} |
|
|
|
|
|
|
|
<span><mark>{% get_new_count_message team request.user %}</mark></span> |
|
|
|
</a> |
|
|
|
</a> |
|
|
|
{% endfor %} |
|
|
|
{% endfor %} |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
|
|
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel"> |
|
|
|
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel"> |
|
|
|
<div class="modal-dialog" role="document"> |
|
|
|
<div class="modal-dialog" role="document"> |
|
|
|
<div class="modal-content"> |
|
|
|
<div class="modal-content"> |
|
|
|
@ -45,18 +47,19 @@ |
|
|
|
<button type="button" class="close" data-dismiss="modal" aria-label="Close"> |
|
|
|
<button type="button" class="close" data-dismiss="modal" aria-label="Close"> |
|
|
|
<span aria-hidden="true">×</span> |
|
|
|
<span aria-hidden="true">×</span> |
|
|
|
</button> |
|
|
|
</button> |
|
|
|
|
|
|
|
|
|
|
|
<h4 class="modal-title" id="myModalLabel">Добавление новой группы</h4> |
|
|
|
<h4 class="modal-title" id="myModalLabel">Добавление новой группы</h4> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
|
|
<form method="post" action="{% url 'users:team-create' %}">{% csrf_token %} |
|
|
|
<form method="post" action="{% url 'users:team-create' %}">{% csrf_token %} |
|
|
|
<div class="modal-body"> |
|
|
|
<div class="modal-body"> |
|
|
|
<div class="textAreaBlock2 text-nn box-sizing disTab"> |
|
|
|
<div class="textAreaBlock2 text-nn box-sizing disTab"> |
|
|
|
<p>Название <span style="color: red">{{ form_team.name.errors.as_text }}</span></p> |
|
|
|
<p>Название <span style="color: red">{{ form_team.name.errors.as_text }}</span> |
|
|
|
|
|
|
|
</p> |
|
|
|
<input type="text" class="box-sizing" name="{{ form_team.name.html_name }}"> |
|
|
|
<input type="text" class="box-sizing" name="{{ form_team.name.html_name }}"> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
|
|
<div class="modal-footer"> |
|
|
|
<div class="modal-footer"> |
|
|
|
<button type="button" class="btn btn-default" data-dismiss="modal">Закрыть</button> |
|
|
|
<button type="button" class="btn btn-default" data-dismiss="modal">Закрыть</button> |
|
|
|
<button type="submit" class="btn btn-primary">Сохранить</button> |
|
|
|
<button type="submit" class="btn btn-primary">Сохранить</button> |
|
|
|
@ -66,7 +69,7 @@ |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
|
|
{% if contractor.team %} |
|
|
|
{% if contractor.team %} |
|
|
|
<div class="projectsBlock disTab"> |
|
|
|
<div class="projectsBlock disTab"> |
|
|
|
<div class="col-lg-12"> |
|
|
|
<div class="col-lg-12"> |
|
|
|
@ -75,22 +78,25 @@ |
|
|
|
<div class="avatarInset"> |
|
|
|
<div class="avatarInset"> |
|
|
|
{% if contractor.avatar %} |
|
|
|
{% if contractor.avatar %} |
|
|
|
{% thumbnail contractor.avatar "265x264" crop="center" as im %} |
|
|
|
{% thumbnail contractor.avatar "265x264" crop="center" as im %} |
|
|
|
<a href="{% url 'users:team-profile' pk=contractor.team.pk %}"><img src="{{ im.url }}" alt="profile-image"></a> |
|
|
|
<a href="{% url 'users:team-profile' pk=contractor.team.pk %}"><img |
|
|
|
|
|
|
|
src="{{ im.url }}" alt="profile-image"></a> |
|
|
|
{% endthumbnail %} |
|
|
|
{% endthumbnail %} |
|
|
|
{% else %} |
|
|
|
{% else %} |
|
|
|
<a href="{% url 'users:team-profile' pk=contractor.team.pk %}"><img src="{% static 'img/profile.jpg' %}" alt="profile-image"></a> |
|
|
|
<a href="{% url 'users:team-profile' pk=contractor.team.pk %}"><img |
|
|
|
|
|
|
|
src="{% static 'img/profile.jpg' %}" alt="profile-image"></a> |
|
|
|
{% endif %} |
|
|
|
{% endif %} |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
|
|
<div class="menuUser disTab"> |
|
|
|
<div class="menuUser disTab"> |
|
|
|
<a href="#" onclick="return false" data-toggle="modal" data-target="#addTeamMemberModal" class="add-man -add-team-member"> |
|
|
|
<a href="#" onclick="return false" data-toggle="modal" data-target="#addTeamMemberModal" |
|
|
|
|
|
|
|
class="add-man -add-team-member"> |
|
|
|
добавить участника |
|
|
|
добавить участника |
|
|
|
</a> |
|
|
|
</a> |
|
|
|
|
|
|
|
|
|
|
|
<div class="block-users"> |
|
|
|
<div class="block-users"> |
|
|
|
<p>Состав группы</p> |
|
|
|
<p>Состав группы</p> |
|
|
|
|
|
|
|
|
|
|
|
{% for c in contractor.team.contractors.all %} |
|
|
|
{% for c in contractor.team.contractors.all %} |
|
|
|
<div class="message-new"> |
|
|
|
<div class="message-new"> |
|
|
|
<div class="imgMess"> |
|
|
|
<div class="imgMess"> |
|
|
|
@ -102,11 +108,11 @@ |
|
|
|
<img src="{% static 'img/profile.jpg' %}" alt="mess-image"> |
|
|
|
<img src="{% static 'img/profile.jpg' %}" alt="mess-image"> |
|
|
|
{% endif %} |
|
|
|
{% endif %} |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
|
|
<p class="nameMess" style="float: none"> |
|
|
|
<p class="nameMess" style="float: none"> |
|
|
|
<a href="{% url 'users:contractor-profile' c.pk %}">{{ c.get_full_name }}</a> |
|
|
|
<a href="{% url 'users:contractor-profile' c.pk %}">{{ c.get_full_name }}</a> |
|
|
|
</p> |
|
|
|
</p> |
|
|
|
|
|
|
|
|
|
|
|
<p><span>{{ c.get_popular_specialization }}</span></p> |
|
|
|
<p><span>{{ c.get_popular_specialization }}</span></p> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
{% empty %} |
|
|
|
{% empty %} |
|
|
|
@ -115,31 +121,33 @@ |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
|
|
<div class="col-lg-9 divCol9"> |
|
|
|
<div class="col-lg-9 divCol9"> |
|
|
|
<div class="col-lg-4"> |
|
|
|
<div class="col-lg-4"> |
|
|
|
<p class="nameUser"><a href="{% url 'users:team-profile' pk=contractor.team.pk %}">{{ contractor.team.name }}</a></p> |
|
|
|
<p class="nameUser"><a |
|
|
|
|
|
|
|
href="{% url 'users:team-profile' pk=contractor.team.pk %}">{{ contractor.team.name }}</a> |
|
|
|
|
|
|
|
</p> |
|
|
|
<p class="cityUser">{{ contractor.get_location }}</p> |
|
|
|
<p class="cityUser">{{ contractor.get_location }}</p> |
|
|
|
<p class="navv">На сайте {{ contractor.team.created }}</p> |
|
|
|
<p class="navv">На сайте {{ contractor.team.created }}</p> |
|
|
|
|
|
|
|
|
|
|
|
<p class="navv"> |
|
|
|
<p class="navv"> |
|
|
|
Кол-во человек: <span>{{ contractor.team.contractors.count }}</span> |
|
|
|
Кол-во человек: <span>{{ contractor.team.contractors.count }}</span> |
|
|
|
</p> |
|
|
|
</p> |
|
|
|
|
|
|
|
|
|
|
|
<p class="navv"> |
|
|
|
<p class="navv"> |
|
|
|
Выполненных проектов: <span>{{ completed_project_count }}</span> |
|
|
|
Выполненных проектов: <span>{{ completed_project_count }}</span> |
|
|
|
</p> |
|
|
|
</p> |
|
|
|
|
|
|
|
|
|
|
|
<div class="statusUser st-new">Свободен</div> |
|
|
|
<div class="statusUser st-new">Свободен</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
|
|
<div class="col-lg-4"> |
|
|
|
<div class="col-lg-4"> |
|
|
|
{% specialization_team_widget contractor.team.pk %} |
|
|
|
{% specialization_team_widget contractor.team.pk %} |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
|
|
<div class="col-lg-4"> |
|
|
|
<div class="col-lg-4"> |
|
|
|
{% ratings_team_widget contractor.team.pk %} |
|
|
|
{% ratings_team_widget contractor.team.pk %} |
|
|
|
|
|
|
|
|
|
|
|
{% if contractor.cro %} |
|
|
|
{% if contractor.cro %} |
|
|
|
<div class="sroUser"> |
|
|
|
<div class="sroUser"> |
|
|
|
<div class="iconSRO"></div> |
|
|
|
<div class="iconSRO"></div> |
|
|
|
@ -148,7 +156,7 @@ |
|
|
|
{% endif %} |
|
|
|
{% endif %} |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
|
|
<div class="col-lg-9"> |
|
|
|
<div class="col-lg-9"> |
|
|
|
<div class="profileTabs2"> |
|
|
|
<div class="profileTabs2"> |
|
|
|
<ul class="nav nav-tabs nav-justified"> |
|
|
|
<ul class="nav nav-tabs nav-justified"> |
|
|
|
@ -164,41 +172,49 @@ |
|
|
|
</ul> |
|
|
|
</ul> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
|
|
<div class="tab-content"> |
|
|
|
<div class="tab-content"> |
|
|
|
<div id="tab11" class="tab-pane fade in active"> |
|
|
|
<div id="tab11" class="tab-pane fade in active"> |
|
|
|
<div class="galleryWork2 disTab col-lg-9 -portfolios-container"> |
|
|
|
<div class="galleryWork2 disTab col-lg-9 -portfolios-container"> |
|
|
|
<script type="text/x-template" class="-portfolio-item-templ"> |
|
|
|
<script type="text/x-template" class="-portfolio-item-templ"> |
|
|
|
<div class="col-lg-4"> |
|
|
|
<div class="col-lg-4"> |
|
|
|
<div class="insetCol box-sizing disTab"> |
|
|
|
<div class="insetCol box-sizing disTab"> |
|
|
|
<div class="imgGal" style="background:rgba(0, 0, 0, 0) url('<%- portfolio.photos[0].img %>') no-repeat scroll center center / cover"> |
|
|
|
<div class="imgGal" |
|
|
|
<a class="open-modal-image" href="<%- portfolio.photos[0].img %>"><div class="imgFigure"></div></a> |
|
|
|
style="background:rgba(0, 0, 0, 0) url('<%- portfolio.photos[0].img %>') no-repeat scroll center center / cover"> |
|
|
|
|
|
|
|
<a class="open-modal-image" href="<%- portfolio.photos[0].img %>"> |
|
|
|
|
|
|
|
<div class="imgFigure"></div> |
|
|
|
|
|
|
|
</a> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
|
|
<div class="insetCol2 box-sizing disTab text-center"> |
|
|
|
<div class="insetCol2 box-sizing disTab text-center"> |
|
|
|
<a href="<%- portfAbsUrl %>"><%- trunc({length: 50}, portfolio.name) %></a> |
|
|
|
<a href="<%- portfAbsUrl %>"><%- trunc({length: 50}, portfolio.name) |
|
|
|
|
|
|
|
%></a> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</script> |
|
|
|
</script> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
|
|
<div class="col-lg-9 col-lg-offset-3 -more-portfolios-btn"> |
|
|
|
<div class="col-lg-9 col-lg-offset-3 -more-portfolios-btn"> |
|
|
|
<div class="linkElse"> |
|
|
|
<div class="linkElse"> |
|
|
|
<a href="#" onclick="loadMorePortfolios(); return false" class="showElse">показать еще</a> |
|
|
|
<a href="#" onclick="loadMorePortfolios(); return false" class="showElse">показать |
|
|
|
|
|
|
|
еще</a> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
|
|
<div id="tab12" class="tab-pane fade"> |
|
|
|
<div id="tab12" class="tab-pane fade"> |
|
|
|
<div class="galleryWork2 disTab -work-sells-container"> |
|
|
|
<div class="galleryWork2 disTab -work-sells-container"> |
|
|
|
<script type="text/x-template" class="-work-sell-item-templ"> |
|
|
|
<script type="text/x-template" class="-work-sell-item-templ"> |
|
|
|
<div class="col-lg-4"> |
|
|
|
<div class="col-lg-4"> |
|
|
|
<div class="insetCol box-sizing disTab"> |
|
|
|
<div class="insetCol box-sizing disTab"> |
|
|
|
<div class="imgGal" style="background:rgba(0, 0, 0, 0) url('<%- workSell.photos[0].img %>') no-repeat scroll center center / cover ;"> |
|
|
|
<div class="imgGal" |
|
|
|
<a class="open-modal-image" href="<%- workSell.photos[0].img %>"><div class="imgFigure"></div></a> |
|
|
|
style="background:rgba(0, 0, 0, 0) url('<%- workSell.photos[0].img %>') no-repeat scroll center center / cover ;"> |
|
|
|
|
|
|
|
<a class="open-modal-image" href="<%- workSell.photos[0].img %>"> |
|
|
|
|
|
|
|
<div class="imgFigure"></div> |
|
|
|
|
|
|
|
</a> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
|
|
<div class="cenaImg box-sizing"> |
|
|
|
<div class="cenaImg box-sizing"> |
|
|
|
<div class="cenaImgInset"> |
|
|
|
<div class="cenaImgInset"> |
|
|
|
<%- workSell.budget %> <i class="fa fa-rub"></i> |
|
|
|
<%- workSell.budget %> <i class="fa fa-rub"></i> |
|
|
|
@ -206,19 +222,21 @@ |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<div class="insetCol2 box-sizing disTab"> |
|
|
|
<div class="insetCol2 box-sizing disTab"> |
|
|
|
<a href="<%- workSellAbsUrl %>"><%- trunc({length: 50}, workSell.name) %></a> |
|
|
|
<a href="<%- workSellAbsUrl %>"><%- trunc({length: 50}, workSell.name) |
|
|
|
|
|
|
|
%></a> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</script> |
|
|
|
</script> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
|
|
<div class="col-lg-9 col-lg-offset-3 -more-work-sells-btn"> |
|
|
|
<div class="col-lg-9 col-lg-offset-3 -more-work-sells-btn"> |
|
|
|
<div class="linkElse"> |
|
|
|
<div class="linkElse"> |
|
|
|
<a href="#" onclick="loadMoreWorkSells(); return false" class="showElse">показать еще</a> |
|
|
|
<a href="#" onclick="loadMoreWorkSells(); return false" class="showElse">показать |
|
|
|
|
|
|
|
еще</a> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
|
|
<div id="tab13" class="tab-pane fade"> |
|
|
|
<div id="tab13" class="tab-pane fade"> |
|
|
|
{% for review in reviews %} |
|
|
|
{% for review in reviews %} |
|
|
|
<div class="new-comm-44"> |
|
|
|
<div class="new-comm-44"> |
|
|
|
@ -226,15 +244,23 @@ |
|
|
|
<p class="nameComm"> |
|
|
|
<p class="nameComm"> |
|
|
|
<a href="#">{{ review.get_sender }}</a> |
|
|
|
<a href="#">{{ review.get_sender }}</a> |
|
|
|
</p> |
|
|
|
</p> |
|
|
|
|
|
|
|
|
|
|
|
{% if review.project.deal_type == 'secure_deal' %} |
|
|
|
{% if review.project.deal_type == 'secure_deal' %} |
|
|
|
<span class="dateComm44">Безопасная сделка</span> |
|
|
|
<span class="dateComm44">Безопасная сделка</span> |
|
|
|
{% endif %} |
|
|
|
{% endif %} |
|
|
|
|
|
|
|
|
|
|
|
<div class="stars box-sizing"> |
|
|
|
<div class="stars box-sizing"> |
|
|
|
<a href="#">положительный отзыв</a> |
|
|
|
<a href="#"> |
|
|
|
|
|
|
|
{% if review.type == 'positive' %} |
|
|
|
|
|
|
|
Положительный отзыв |
|
|
|
|
|
|
|
{% elif review.type == 'negative' %} |
|
|
|
|
|
|
|
Отрицательный отзыв |
|
|
|
|
|
|
|
{% else %} |
|
|
|
|
|
|
|
Нейтральный отзыв |
|
|
|
|
|
|
|
{% endif %} |
|
|
|
|
|
|
|
</a> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
|
|
<p class="textComm44"> |
|
|
|
<p class="textComm44"> |
|
|
|
{{ review.text|safe }} |
|
|
|
{{ review.text|safe }} |
|
|
|
</p> |
|
|
|
</p> |
|
|
|
@ -250,7 +276,7 @@ |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
{% endif %} |
|
|
|
{% endif %} |
|
|
|
|
|
|
|
|
|
|
|
{% include 'partials/footer.html' %} |
|
|
|
{% include 'partials/footer.html' %} |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
@ -258,116 +284,117 @@ |
|
|
|
|
|
|
|
|
|
|
|
{% block js_block %} |
|
|
|
{% block js_block %} |
|
|
|
<script> |
|
|
|
<script> |
|
|
|
(function() { |
|
|
|
(function () { |
|
|
|
// Pagination --------------------------------------------------- |
|
|
|
// Pagination --------------------------------------------------- |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var $portfoliosContainer = $('.-portfolios-container').first() |
|
|
|
var $portfoliosContainer = $('.-portfolios-container').first() |
|
|
|
var portfolioItemTempl = _.template($portfoliosContainer.find('.-portfolio-item-templ').first().html()) |
|
|
|
var portfolioItemTempl = _.template($portfoliosContainer.find('.-portfolio-item-templ').first().html()) |
|
|
|
var $morePortfBtn = $('.-more-portfolios-btn').first() |
|
|
|
var $morePortfBtn = $('.-more-portfolios-btn').first() |
|
|
|
var portfAbsUrl = '/projects/portfolio/' |
|
|
|
var portfAbsUrl = '/projects/portfolio/' |
|
|
|
|
|
|
|
|
|
|
|
var $workSellsContainer = $('.-work-sells-container').first() |
|
|
|
var $workSellsContainer = $('.-work-sells-container').first() |
|
|
|
var workSellItemTempl = _.template($workSellsContainer.find('.-work-sell-item-templ').first().html()) |
|
|
|
var workSellItemTempl = _.template($workSellsContainer.find('.-work-sell-item-templ').first().html()) |
|
|
|
var $moreWorkSellsfBtn = $('.-more-work-sells-btn').first() |
|
|
|
var $moreWorkSellsfBtn = $('.-more-work-sells-btn').first() |
|
|
|
var workSellAbsUrl = '/work_sell/' |
|
|
|
var workSellAbsUrl = '/work_sell/' |
|
|
|
|
|
|
|
|
|
|
|
var contractorId = {{ contractor.pk }} |
|
|
|
var contractorId = |
|
|
|
var teamId = {{ contractor.team.pk }} |
|
|
|
{{ contractor.pk }} |
|
|
|
|
|
|
|
var teamId = |
|
|
|
|
|
|
|
{{ contractor.team.pk }} |
|
|
|
var contractorIds = [contractorId] |
|
|
|
var contractorIds = [contractorId] |
|
|
|
|
|
|
|
|
|
|
|
var portfUrl = new URI('/api/portfolios/') |
|
|
|
var portfUrl = new URI('/api/portfolios/') |
|
|
|
var workSellUrl = new URI('/api/work-sells/') |
|
|
|
var workSellUrl = new URI('/api/work-sells/') |
|
|
|
var pageSize = {% if TESTING %}99999{% else %}9{% endif %} |
|
|
|
var pageSize = {% if TESTING %}99999{% else %}9{% endif %} |
|
|
|
|
|
|
|
|
|
|
|
$.get('/api/teams/' + teamId + '/').then(function(res) { |
|
|
|
$.get('/api/teams/' + teamId + '/').then(function (res) { |
|
|
|
Array.prototype.push.apply(contractorIds, _.map(function(contractor) { |
|
|
|
Array.prototype.push.apply(contractorIds, _.map(function (contractor) { |
|
|
|
return contractor.id |
|
|
|
return contractor.id |
|
|
|
}, res.contractors)) |
|
|
|
}, res.contractors)) |
|
|
|
}) |
|
|
|
}) |
|
|
|
.then(loadMorePortfolios) |
|
|
|
.then(loadMorePortfolios) |
|
|
|
.then(loadMoreWorkSells) |
|
|
|
.then(loadMoreWorkSells) |
|
|
|
|
|
|
|
|
|
|
|
function loadMorePortfolios() { |
|
|
|
function loadMorePortfolios() { |
|
|
|
var query = portfUrl.query(true) |
|
|
|
var query = portfUrl.query(true) |
|
|
|
|
|
|
|
|
|
|
|
portfUrl.setQuery('user__id__in', _.join(',', contractorIds)) |
|
|
|
portfUrl.setQuery('user__id__in', _.join(',', contractorIds)) |
|
|
|
portfUrl.setQuery('page_size', pageSize) |
|
|
|
portfUrl.setQuery('page_size', pageSize) |
|
|
|
portfUrl.setQuery('page', query.page ? Number(query.page) + 1 : 1) |
|
|
|
portfUrl.setQuery('page', query.page ? Number(query.page) + 1 : 1) |
|
|
|
|
|
|
|
|
|
|
|
$.get(portfUrl.href()) |
|
|
|
$.get(portfUrl.href()) |
|
|
|
.then(function(res) { |
|
|
|
.then(function (res) { |
|
|
|
_.each(function(portfolio) { |
|
|
|
_.each(function (portfolio) { |
|
|
|
$portfoliosContainer.append(portfolioItemTempl({ |
|
|
|
$portfoliosContainer.append(portfolioItemTempl({ |
|
|
|
portfolio: portfolio, |
|
|
|
portfolio: portfolio, |
|
|
|
portfAbsUrl: portfAbsUrl + portfolio.id + '/', |
|
|
|
portfAbsUrl: portfAbsUrl + portfolio.id + '/', |
|
|
|
trunc: _.truncate, |
|
|
|
trunc: _.truncate, |
|
|
|
})) |
|
|
|
})) |
|
|
|
}, res.results) |
|
|
|
}, res.results) |
|
|
|
|
|
|
|
|
|
|
|
if (!res.next) |
|
|
|
if (!res.next) |
|
|
|
$morePortfBtn.css('display', 'none') |
|
|
|
$morePortfBtn.css('display', 'none') |
|
|
|
}) |
|
|
|
}) |
|
|
|
|
|
|
|
|
|
|
|
.then(function() { |
|
|
|
.then(function () { |
|
|
|
$('.open-modal-image').magnificPopup({type: 'image'}) |
|
|
|
$('.open-modal-image').magnificPopup({type: 'image'}) |
|
|
|
}) |
|
|
|
}) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
function loadMoreWorkSells() { |
|
|
|
function loadMoreWorkSells() { |
|
|
|
var query = workSellUrl.query(true) |
|
|
|
var query = workSellUrl.query(true) |
|
|
|
|
|
|
|
|
|
|
|
workSellUrl.setQuery('contractor', contractorId) |
|
|
|
workSellUrl.setQuery('contractor', contractorId) |
|
|
|
workSellUrl.setQuery('page_size', pageSize) |
|
|
|
workSellUrl.setQuery('page_size', pageSize) |
|
|
|
workSellUrl.setQuery('page', query.page ? Number(query.page) + 1 : 1) |
|
|
|
workSellUrl.setQuery('page', query.page ? Number(query.page) + 1 : 1) |
|
|
|
|
|
|
|
|
|
|
|
$.get(workSellUrl.href()).then(function(res) { |
|
|
|
$.get(workSellUrl.href()).then(function (res) { |
|
|
|
_.each(function(ws) { |
|
|
|
_.each(function (ws) { |
|
|
|
$workSellsContainer.append(workSellItemTempl({ |
|
|
|
$workSellsContainer.append(workSellItemTempl({ |
|
|
|
workSell: ws, |
|
|
|
workSell: ws, |
|
|
|
workSellAbsUrl: workSellAbsUrl + ws.id + '/', |
|
|
|
workSellAbsUrl: workSellAbsUrl + ws.id + '/', |
|
|
|
trunc: _.truncate, |
|
|
|
trunc: _.truncate, |
|
|
|
})) |
|
|
|
})) |
|
|
|
}, res.results) |
|
|
|
}, res.results) |
|
|
|
|
|
|
|
|
|
|
|
if (!res.next) |
|
|
|
if (!res.next) |
|
|
|
$moreWorkSellsfBtn.css('display', 'none') |
|
|
|
$moreWorkSellsfBtn.css('display', 'none') |
|
|
|
}) |
|
|
|
}) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
window.loadMorePortfolios = loadMorePortfolios |
|
|
|
window.loadMorePortfolios = loadMorePortfolios |
|
|
|
window.loadMoreWorkSells = loadMoreWorkSells |
|
|
|
window.loadMoreWorkSells = loadMoreWorkSells |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Add new team member -------------------------------------------- |
|
|
|
// Add new team member -------------------------------------------- |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
{% if contractor.has_team %} |
|
|
|
{% if contractor.has_team %} |
|
|
|
var $contractorSelect = $('.-contractor-select').first() |
|
|
|
var $contractorSelect = $('.-contractor-select').first() |
|
|
|
var $addTeamMemberModal = $('#addTeamMemberModal') |
|
|
|
var $addTeamMemberModal = $('#addTeamMemberModal') |
|
|
|
|
|
|
|
|
|
|
|
var contractorExcludeIds = JSON.parse({{ team_invitation_exclude_contractor_ids|json }}) |
|
|
|
var contractorExcludeIds = JSON.parse({{ team_invitation_exclude_contractor_ids|json }}) |
|
|
|
initContractorSelect($contractorSelect, contractorExcludeIds) |
|
|
|
initContractorSelect($contractorSelect, contractorExcludeIds) |
|
|
|
|
|
|
|
|
|
|
|
$addTeamMemberModal.find('.-action-button').first().on('click', function($evt) { |
|
|
|
$addTeamMemberModal.find('.-action-button').first().on('click', function ($evt) { |
|
|
|
$addTeamMemberModal.modal('hide') |
|
|
|
$addTeamMemberModal.modal('hide') |
|
|
|
|
|
|
|
|
|
|
|
var contractor2Id = $contractorSelect.select2('val') |
|
|
|
var contractor2Id = $contractorSelect.select2('val') |
|
|
|
var createTeamInvitationUrl = format('/users/create-team-invitation/%s/', contractor2Id) |
|
|
|
var createTeamInvitationUrl = format('/users/create-team-invitation/%s/', contractor2Id) |
|
|
|
|
|
|
|
|
|
|
|
$.post(createTeamInvitationUrl).then(function(res) { |
|
|
|
$.post(createTeamInvitationUrl).then(function (res) { |
|
|
|
if (res.status === 'success') { |
|
|
|
if (res.status === 'success') { |
|
|
|
socketMain.add_message({ |
|
|
|
socketMain.add_message({ |
|
|
|
format_type: 'add_message_contact', |
|
|
|
format_type: 'add_message_contact', |
|
|
|
|
|
|
|
|
|
|
|
data: { |
|
|
|
data: { |
|
|
|
sender_id: '{{ contractor.pk }}', |
|
|
|
sender_id: '{{ contractor.pk }}', |
|
|
|
recipent_id: String(contractor2Id), |
|
|
|
recipent_id: String(contractor2Id), |
|
|
|
chat_message: 'Приглашаю в группу http://{{ request.get_host }}{% url 'users:accept-team-invitation' owner_id=contractor.pk %}', |
|
|
|
chat_message: 'Приглашаю в группу http://{{ request.get_host }}{% url 'users:accept-team-invitation' owner_id=contractor.pk %}', |
|
|
|
}, |
|
|
|
}, |
|
|
|
}) |
|
|
|
}) |
|
|
|
|
|
|
|
|
|
|
|
$.jGrowl('Приглашение успешно отправлено') |
|
|
|
$.jGrowl('Приглашение успешно отправлено') |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
$.jGrowl('Произошла ошибка при отправке приглашения') |
|
|
|
$.jGrowl('Произошла ошибка при отправке приглашения') |
|
|
|
|