|
|
|
|
@ -46,7 +46,8 @@ |
|
|
|
|
</div> |
|
|
|
|
</a> |
|
|
|
|
<p class="nameExecutor"> |
|
|
|
|
<a href="{% url 'users:customer-profile-open-projects' project.customer.pk %}">{{ project.customer.get_full_name }} [{{ project.customer.username }}]</a> |
|
|
|
|
<a href="{% url 'users:customer-profile-open-projects' project.customer.pk %}">{{ project.customer.get_full_name }} |
|
|
|
|
[{{ project.customer.username }}]</a> |
|
|
|
|
</p> |
|
|
|
|
<p class="navv2">На сайте {{ project.created|naturaltime }}</p> |
|
|
|
|
|
|
|
|
|
@ -115,7 +116,8 @@ |
|
|
|
|
<p class="textProIn"> |
|
|
|
|
{{ project.text|linebreaksbr }} |
|
|
|
|
</p> |
|
|
|
|
</div> br |
|
|
|
|
</div> |
|
|
|
|
br |
|
|
|
|
|
|
|
|
|
<div class="col-lg-10 col-lg-offset-1" style="margin-top: 15px;"> |
|
|
|
|
|
|
|
|
|
@ -124,7 +126,8 @@ |
|
|
|
|
|
|
|
|
|
{% for file in project.files.all %} |
|
|
|
|
<li class="existing-file-widget"> |
|
|
|
|
<a href="{{ file }}" class="file-upload-label">{{ file.file.name|basename }} {{ file.file.size|filesizeformat }}</a> |
|
|
|
|
<a href="{{ file }}" |
|
|
|
|
class="file-upload-label">{{ file.file.name|basename }} {{ file.file.size|filesizeformat }}</a> |
|
|
|
|
</li> |
|
|
|
|
{% endfor %} |
|
|
|
|
</p> |
|
|
|
|
@ -154,7 +157,8 @@ |
|
|
|
|
</div> |
|
|
|
|
{% endif %} |
|
|
|
|
{% elif request.user.is_customer and request.user == project.customer %} |
|
|
|
|
<a href="{% url 'projects:customer-project-edit' pk=project.pk %}?back={{ request.path }}" class="linkProIn linkProIn1"> |
|
|
|
|
<a href="{% url 'projects:customer-project-edit' pk=project.pk %}?back={{ request.path }}" |
|
|
|
|
class="linkProIn linkProIn1"> |
|
|
|
|
Редактировать |
|
|
|
|
</a> |
|
|
|
|
|
|
|
|
|
@ -230,7 +234,8 @@ |
|
|
|
|
</a> |
|
|
|
|
|
|
|
|
|
<p class="nameExecutor"> |
|
|
|
|
<a href="{% url 'users:contractor-profile' pk=answer.author.pk %}">{{ answer.author.get_full_name }} [{{ answer.author.username }}]</a> |
|
|
|
|
<a href="{% url 'users:contractor-profile' pk=answer.author.pk %}">{{ answer.author.get_full_name }} |
|
|
|
|
[{{ answer.author.username }}]</a> |
|
|
|
|
</p> |
|
|
|
|
{% elif answer.author|class_name == 'Team' %} |
|
|
|
|
<a href="{% url 'users:team-profile' pk=answer.author.pk %}" class="aLinkExe"> |
|
|
|
|
@ -304,7 +309,8 @@ |
|
|
|
|
<form action="{% url 'projects:reject-project-answer' pk=answer.pk %}" method="POST" novalidate> |
|
|
|
|
{% csrf_token %} |
|
|
|
|
<input type="hidden" name="next" value="{{ request.path }}"> |
|
|
|
|
<a href="#" class="candLink candLink3 reject-project-link-contractor" title="{{ answer.pk }}">отказ</a> |
|
|
|
|
<a href="#" class="candLink candLink3 reject-project-link-contractor" |
|
|
|
|
title="{{ answer.pk }}">отказ</a> |
|
|
|
|
</form> |
|
|
|
|
|
|
|
|
|
{% if project.order.contractor and project.order.contractor == answer.author %} |
|
|
|
|
@ -313,29 +319,26 @@ |
|
|
|
|
<a href="/chat/#order{{ project.order.pk }}" class="candLink candLink2">Перейти к обсуждению</a> |
|
|
|
|
{% else %} |
|
|
|
|
{% 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' %} |
|
|
|
|
<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 class="col-xs-12"> |
|
|
|
|
<ul> |
|
|
|
|
{% for answer_file in answer.files.all %} |
|
|
|
|
<li><a href="{{ answer_file.file.url }}">{{ answer_file.name }}</a> <span>{{ answer_file.file.size|filesizeformat }}</span></li> |
|
|
|
|
<li><a href="{{ answer_file.file.url }}">{{ answer_file.name }}</a> |
|
|
|
|
<span>{{ answer_file.file.size|filesizeformat }}</span></li> |
|
|
|
|
{% endfor %} |
|
|
|
|
</ul> |
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div class="gallMini disTab"> |
|
|
|
|
{% for portf in answer.portfolios.all %} |
|
|
|
|
<div class="col-lg-3"> |
|
|
|
|
@ -349,13 +352,11 @@ |
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div id="contractor-answers" class="commBlock44 disTab"> |
|
|
|
|
{% for message in answer.messages.all %} |
|
|
|
|
<div class="comm44 disTab"> |
|
|
|
|
<div class="col-lg-10 col-lg-offset-1 {% if not message.is_sender_customer %}-highlighted-message{% endif %}"> |
|
|
|
|
<div |
|
|
|
|
class="col-lg-10 col-lg-offset-1 {% if not message.is_sender_customer %}-highlighted-message{% endif %}"> |
|
|
|
|
{% if message.is_sender_customer %} |
|
|
|
|
<p class="nameComm"> |
|
|
|
|
{% firstof project.customer.get_full_name.strip project.customer.username %} |
|
|
|
|
@ -385,10 +386,13 @@ |
|
|
|
|
<div class="col-lg-10 col-lg-offset-1"> |
|
|
|
|
<form action="{% url 'projects:create-answer-message' pk=answer.pk %}" method="POST" novalidate> |
|
|
|
|
{% csrf_token %} |
|
|
|
|
<input type="hidden" name="next" value="{% url 'projects:detail' pk=project.pk %}#contractor-answers"> |
|
|
|
|
<input type="hidden" name="next" |
|
|
|
|
value="{% url 'projects:detail' pk=project.pk %}#contractor-answers"> |
|
|
|
|
|
|
|
|
|
<div><textarea name="text" class="fr_answer"></textarea></div> |
|
|
|
|
<div><button type="submit" class="fr_answer_sen">Отправить</button></div> |
|
|
|
|
<div> |
|
|
|
|
<button type="submit" class="fr_answer_sen">Отправить</button> |
|
|
|
|
</div> |
|
|
|
|
</form> |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
@ -396,7 +400,8 @@ |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
{% else %} |
|
|
|
|
<form action="{% url 'projects:detail' pk=project.pk %}" method="POST" enctype="multipart/form-data" novalidate class="proj_answ_form -project-answer-form" style="display: none"> |
|
|
|
|
<form action="{% url 'projects:detail' pk=project.pk %}" method="POST" enctype="multipart/form-data" |
|
|
|
|
novalidate class="proj_answ_form -project-answer-form" style="display: none"> |
|
|
|
|
{% csrf_token %} |
|
|
|
|
<input type="hidden" name="next" value="{% url 'projects:detail' pk=project.pk %}"> |
|
|
|
|
<input type="hidden" name="answer_as_team" value="{% if answer_as_team %}on{% endif %}"> |
|
|
|
|
@ -411,7 +416,8 @@ |
|
|
|
|
<div class="col-lg-4"> |
|
|
|
|
<div class="textAreaBlock2 text-nn box-sizing disTab"> |
|
|
|
|
<p class="titleResF1">Стоимость <span style="color: red">{{ form.budget.errors.as_text }}</span></p> |
|
|
|
|
<input type="text" class="box-sizing" name="{{ form.budget.html_name }}" value="{{ form.budget.value }}"> |
|
|
|
|
<input type="text" class="box-sizing" name="{{ form.budget.html_name }}" |
|
|
|
|
value="{{ form.budget.value }}"> |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
@ -486,12 +492,14 @@ |
|
|
|
|
<div class="col-lg-12"> |
|
|
|
|
<div id="fileUploadContainer"> |
|
|
|
|
<div> |
|
|
|
|
<button type="button" id="fileUploadAddBtn">Добавить файл</button> Не более 10 файлов общим объемом до 500 Мб |
|
|
|
|
<button type="button" id="fileUploadAddBtn">Добавить файл</button> |
|
|
|
|
Не более 10 файлов общим объемом до 500 Мб |
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
<ul class="list-new-new"> |
|
|
|
|
<li class="file-upload-widget" style="display: none"> |
|
|
|
|
<input type="file" name="new_files" class="file-upload-input" style="position: absolute; top: -1000px; left: -1000px"> |
|
|
|
|
<input type="file" name="new_files" class="file-upload-input" |
|
|
|
|
style="position: absolute; top: -1000px; left: -1000px"> |
|
|
|
|
<span class="file-upload-label"></span> |
|
|
|
|
<a href="#" onclick="return false" class="file-upload-remove-btn">×</a> |
|
|
|
|
</li> |
|
|
|
|
@ -604,7 +612,8 @@ |
|
|
|
|
</a> |
|
|
|
|
|
|
|
|
|
<p class="nameExecutor"> |
|
|
|
|
<a href="{% url 'users:contractor-profile' pk=answer.author.pk %}">{{ answer.author.get_full_name }} [{{ answer.author.username }}]</a> |
|
|
|
|
<a href="{% url 'users:contractor-profile' pk=answer.author.pk %}">{{ answer.author.get_full_name }} |
|
|
|
|
[{{ answer.author.username }}]</a> |
|
|
|
|
</p> |
|
|
|
|
{% elif answer.author|class_name == 'Team' %} |
|
|
|
|
<a href="{% url 'users:team-profile' pk=answer.author.pk %}" class="aLinkExe"> |
|
|
|
|
@ -673,7 +682,8 @@ |
|
|
|
|
|
|
|
|
|
<div class="col-lg-3 retts"> |
|
|
|
|
{% if answer.author not in project|get_candidates %} |
|
|
|
|
<a href="{% url 'projects:add-candidate' answer_id=answer.pk project_id=project.pk %}" class="candLink candLink1"> |
|
|
|
|
<a href="{% url 'projects:add-candidate' answer_id=answer.pk project_id=project.pk %}" |
|
|
|
|
class="candLink candLink1"> |
|
|
|
|
Кандидат |
|
|
|
|
</a> |
|
|
|
|
{% endif %} |
|
|
|
|
@ -683,12 +693,15 @@ |
|
|
|
|
{% elif project.order.team and project.order.team == answer.author %} |
|
|
|
|
<a href="/chat/#order{{ project.order.pk }}" class="candLink candLink2">Перейти к обсуждению</a> |
|
|
|
|
{% elif not project.order.contractor and not project.order.team %} |
|
|
|
|
<form action="{% url 'projects:customer-offer-order' answer_id=answer.pk project_id=project.pk %}" method="POST" novalidate> |
|
|
|
|
<form |
|
|
|
|
action="{% url 'projects:customer-offer-order' answer_id=answer.pk project_id=project.pk %}" |
|
|
|
|
method="POST" novalidate> |
|
|
|
|
{% csrf_token %} |
|
|
|
|
|
|
|
|
|
<a href="#" |
|
|
|
|
data-sender-id="{{ request.user.pk }}" |
|
|
|
|
data-recipent-id="{% if answer.author|class_name == 'User' %}{{ answer.author.pk }}{% elif answer.author|class_name == 'Team'%}{{ answer.author.owner.pk }}{% endif %}" |
|
|
|
|
data-recipent-id=" |
|
|
|
|
{% if answer.author|class_name == 'User' %}{{ answer.author.pk }}{% elif answer.author|class_name == 'Team' %}{{ answer.author.owner.pk }}{% endif %}" |
|
|
|
|
data-order-id="{{ project.order.id }}" |
|
|
|
|
data-order-name="{{ project.name }}" |
|
|
|
|
|
|
|
|
|
@ -708,7 +721,8 @@ |
|
|
|
|
{% csrf_token %} |
|
|
|
|
<input type="hidden" name="next" value="{{ request.path }}"> |
|
|
|
|
<a href="#" data-sender-id="{{ request.user.pk }}" |
|
|
|
|
data-recipent-id="{% if answer.author|class_name == 'User' %}{{ answer.author.pk }}{% elif answer.author|class_name == 'Team'%}{{ answer.author.owner.pk }}{% endif %}" |
|
|
|
|
data-recipent-id=" |
|
|
|
|
{% if answer.author|class_name == 'User' %}{{ answer.author.pk }}{% elif answer.author|class_name == 'Team' %}{{ answer.author.owner.pk }}{% endif %}" |
|
|
|
|
data-order-name="{{ project.name }}" |
|
|
|
|
data-project-id="{{ project.pk }}" |
|
|
|
|
class="candLink candLink3 reject-project-link" title="{{ answer.pk }}">отказ</a> |
|
|
|
|
@ -718,7 +732,8 @@ |
|
|
|
|
<div class="col-xs-12"> |
|
|
|
|
<ul> |
|
|
|
|
{% for answer_file in answer.files.all %} |
|
|
|
|
<li><a href="{{ answer_file.file.url }}">{{ answer_file.name }}</a> <span>{{ answer_file.file.size|filesizeformat }}</span></li> |
|
|
|
|
<li><a href="{{ answer_file.file.url }}">{{ answer_file.name }}</a> |
|
|
|
|
<span>{{ answer_file.file.size|filesizeformat }}</span></li> |
|
|
|
|
{% endfor %} |
|
|
|
|
</ul> |
|
|
|
|
</div> |
|
|
|
|
@ -727,7 +742,8 @@ |
|
|
|
|
{% for portf in answer.portfolios.all %} |
|
|
|
|
<div class="col-lg-3"> |
|
|
|
|
<div class="insetCol box-sizing disTab"> |
|
|
|
|
<div class="imgGal" style="background: url('{{ portf.photos.first.img.url }}') no-repeat center"> |
|
|
|
|
<div class="imgGal" |
|
|
|
|
style="background: url('{{ portf.photos.first.img.url }}') no-repeat center"> |
|
|
|
|
<div class="imgFigure"></div> |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
@ -738,7 +754,8 @@ |
|
|
|
|
<div class="commBlock44 disTab"> |
|
|
|
|
{% for message in answer.messages.all %} |
|
|
|
|
<div class="comm44 disTab"> |
|
|
|
|
<div class="col-lg-10 col-lg-offset-1 {% if message.is_sender_customer %}-highlighted-message{% endif %}"> |
|
|
|
|
<div |
|
|
|
|
class="col-lg-10 col-lg-offset-1 {% if message.is_sender_customer %}-highlighted-message{% endif %}"> |
|
|
|
|
{% if message.is_sender_customer %} |
|
|
|
|
<p class="nameComm nameCommAct"> |
|
|
|
|
{% firstof project.customer.get_full_name.strip project.customer.username %} |
|
|
|
|
@ -766,12 +783,16 @@ |
|
|
|
|
|
|
|
|
|
<div class="comm44 disTab"> |
|
|
|
|
<div class="col-lg-10 col-lg-offset-1"> |
|
|
|
|
<form action="{% url 'projects:create-answer-message' pk=answer.pk %}" method="POST" novalidate> |
|
|
|
|
<form action="{% url 'projects:create-answer-message' pk=answer.pk %}" method="POST" |
|
|
|
|
novalidate> |
|
|
|
|
{% csrf_token %} |
|
|
|
|
<input type="hidden" name="next" value="{% url 'projects:detail' pk=project.pk %}#new-answers"> |
|
|
|
|
<input type="hidden" name="next" |
|
|
|
|
value="{% url 'projects:detail' pk=project.pk %}#new-answers"> |
|
|
|
|
|
|
|
|
|
<div><textarea name="text" class="fr_answer" title="Текст сообщения"></textarea></div> |
|
|
|
|
<div><button type="submit" class="fr_answer_sen">Отправить</button></div> |
|
|
|
|
<div> |
|
|
|
|
<button type="submit" class="fr_answer_sen">Отправить</button> |
|
|
|
|
</div> |
|
|
|
|
</form> |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
@ -782,9 +803,6 @@ |
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div id="candidate-answers" class="tab-pane fade"> |
|
|
|
|
<div class="col-lg-12 exNew"> |
|
|
|
|
<p>Кандидаты</p> |
|
|
|
|
@ -808,7 +826,8 @@ |
|
|
|
|
</a> |
|
|
|
|
|
|
|
|
|
<p class="nameExecutor"> |
|
|
|
|
<a href="{% url 'users:contractor-profile' pk=answer.author.pk %}">{{ answer.author.get_full_name }} [{{ answer.author.username }}]</a> |
|
|
|
|
<a href="{% url 'users:contractor-profile' pk=answer.author.pk %}">{{ answer.author.get_full_name }} |
|
|
|
|
[{{ answer.author.username }}]</a> |
|
|
|
|
</p> |
|
|
|
|
{% elif answer.author|class_name == 'Team' %} |
|
|
|
|
<a href="{% url 'users:team-profile' pk=answer.author.pk %}" class="aLinkExe"> |
|
|
|
|
@ -877,7 +896,8 @@ |
|
|
|
|
|
|
|
|
|
<div class="col-lg-3 retts"> |
|
|
|
|
{% if TESTING %} |
|
|
|
|
<a href="{% url 'projects:add-candidate' answer_id=answer.pk project_id=project.pk %}" class="candLink candLink1"> |
|
|
|
|
<a href="{% url 'projects:add-candidate' answer_id=answer.pk project_id=project.pk %}" |
|
|
|
|
class="candLink candLink1"> |
|
|
|
|
Кандидат |
|
|
|
|
</a> |
|
|
|
|
{% endif %} |
|
|
|
|
@ -887,12 +907,15 @@ |
|
|
|
|
{% elif project.order.team and project.order.team == answer.author %} |
|
|
|
|
<a href="/chat/#order{{ project.order.pk }}" class="candLink candLink2">Перейти к обсуждению</a> |
|
|
|
|
{% elif not project.order.contractor and not project.order.team %} |
|
|
|
|
<form action="{% url 'projects:customer-offer-order' answer_id=answer.pk project_id=project.pk %}" method="POST" novalidate> |
|
|
|
|
<form |
|
|
|
|
action="{% url 'projects:customer-offer-order' answer_id=answer.pk project_id=project.pk %}" |
|
|
|
|
method="POST" novalidate> |
|
|
|
|
{% csrf_token %} |
|
|
|
|
|
|
|
|
|
<a href="#" |
|
|
|
|
data-sender-id="{{ request.user.pk }}" |
|
|
|
|
data-recipent-id="{% if answer.author|class_name == 'User' %}{{ answer.author.pk }}{% elif answer.author|class_name == 'Team'%}{{ answer.author.owner.pk }}{% endif %}" |
|
|
|
|
data-recipent-id=" |
|
|
|
|
{% if answer.author|class_name == 'User' %}{{ answer.author.pk }}{% elif answer.author|class_name == 'Team' %}{{ answer.author.owner.pk }}{% endif %}" |
|
|
|
|
data-order-id="{{ project.order.id }}" |
|
|
|
|
data-order-name="{{ project.name }}" |
|
|
|
|
class="candLink candLink2 offer-order-contractor"> |
|
|
|
|
@ -912,7 +935,8 @@ |
|
|
|
|
<input type="hidden" name="next" value="{{ request.path }}"> |
|
|
|
|
<a href="#" |
|
|
|
|
data-sender-id="{{ request.user.pk }}" |
|
|
|
|
data-recipent-id="{% if answer.author|class_name == 'User' %}{{ answer.author.pk }}{% elif answer.author|class_name == 'Team'%}{{ answer.author.owner.pk }}{% endif %}" |
|
|
|
|
data-recipent-id=" |
|
|
|
|
{% if answer.author|class_name == 'User' %}{{ answer.author.pk }}{% elif answer.author|class_name == 'Team' %}{{ answer.author.owner.pk }}{% endif %}" |
|
|
|
|
data-order-name="{{ project.name }}" |
|
|
|
|
data-project-id="{{ project.pk }}" |
|
|
|
|
class="candLink candLink3 reject-project-link" title="{{ answer.pk }}">отказ |
|
|
|
|
@ -923,7 +947,8 @@ |
|
|
|
|
<div class="col-xs-12"> |
|
|
|
|
<ul> |
|
|
|
|
{% for answer_file in answer.files.all %} |
|
|
|
|
<li><a href="{{ answer_file.file.url }}">{{ answer_file.name }}</a> <span>{{ answer_file.file.size|filesizeformat }}</span></li> |
|
|
|
|
<li><a href="{{ answer_file.file.url }}">{{ answer_file.name }}</a> |
|
|
|
|
<span>{{ answer_file.file.size|filesizeformat }}</span></li> |
|
|
|
|
{% endfor %} |
|
|
|
|
</ul> |
|
|
|
|
</div> |
|
|
|
|
@ -932,7 +957,8 @@ |
|
|
|
|
{% for portf in answer.portfolios.all %} |
|
|
|
|
<div class="col-lg-3"> |
|
|
|
|
<div class="insetCol box-sizing disTab"> |
|
|
|
|
<div class="imgGal" style="background: url('{{ portf.photos.first.img.url }}') no-repeat center"> |
|
|
|
|
<div class="imgGal" |
|
|
|
|
style="background: url('{{ portf.photos.first.img.url }}') no-repeat center"> |
|
|
|
|
<div class="imgFigure"></div> |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
@ -943,7 +969,8 @@ |
|
|
|
|
<div class="commBlock44 disTab"> |
|
|
|
|
{% for message in answer.messages.all %} |
|
|
|
|
<div class="comm44 disTab"> |
|
|
|
|
<div class="col-lg-10 col-lg-offset-1 {% if message.is_sender_customer %}-highlighted-message{% endif %}"> |
|
|
|
|
<div |
|
|
|
|
class="col-lg-10 col-lg-offset-1 {% if message.is_sender_customer %}-highlighted-message{% endif %}"> |
|
|
|
|
{% if message.is_sender_customer %} |
|
|
|
|
<p class="nameComm nameCommAct"> |
|
|
|
|
{% firstof project.customer.get_full_name.strip project.customer.username %} |
|
|
|
|
@ -971,11 +998,16 @@ |
|
|
|
|
|
|
|
|
|
<div class="comm44 disTab"> |
|
|
|
|
<div class="col-lg-10 col-lg-offset-1" style="padding:0;"> |
|
|
|
|
<form action="{% url 'projects:create-answer-message' pk=answer.pk %}" method="POST" novalidate> |
|
|
|
|
<form action="{% url 'projects:create-answer-message' pk=answer.pk %}" method="POST" |
|
|
|
|
novalidate> |
|
|
|
|
{% csrf_token %} |
|
|
|
|
<input type="hidden" name="next" value="{% url 'projects:detail' pk=project.pk %}#candidate-answers"> |
|
|
|
|
<div><textarea style="margin-left:0;" name="text" class="fr_answer" title="Текст сообщения"></textarea></div> |
|
|
|
|
<div><button style="margin-left:0;" type="submit" class="fr_answer_sen">Отправить</button></div> |
|
|
|
|
<input type="hidden" name="next" |
|
|
|
|
value="{% url 'projects:detail' pk=project.pk %}#candidate-answers"> |
|
|
|
|
<div><textarea style="margin-left:0;" name="text" class="fr_answer" |
|
|
|
|
title="Текст сообщения"></textarea></div> |
|
|
|
|
<div> |
|
|
|
|
<button style="margin-left:0;" type="submit" class="fr_answer_sen">Отправить</button> |
|
|
|
|
</div> |
|
|
|
|
</form> |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
@ -986,9 +1018,6 @@ |
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div id="rejected-answers" class="tab-pane fade"> |
|
|
|
|
<div class="col-lg-12 exNew"> |
|
|
|
|
<p>Отказы</p> |
|
|
|
|
@ -1014,7 +1043,8 @@ |
|
|
|
|
</a> |
|
|
|
|
|
|
|
|
|
<p class="nameExecutor"> |
|
|
|
|
<a href="{% url 'users:contractor-profile' pk=answer.author.pk %}">{{ answer.author.get_full_name }} [{{ answer.author.username }}]</a> |
|
|
|
|
<a href="{% url 'users:contractor-profile' pk=answer.author.pk %}">{{ answer.author.get_full_name }} |
|
|
|
|
[{{ answer.author.username }}]</a> |
|
|
|
|
</p> |
|
|
|
|
{% elif answer.author|class_name == 'Team' %} |
|
|
|
|
<a href="{% url 'users:team-profile' pk=answer.author.pk %}" class="aLinkExe"> |
|
|
|
|
@ -1086,7 +1116,8 @@ |
|
|
|
|
<form action="{% url 'projects:restore-project-answer' pk=answer.pk %}" method="POST" novalidate> |
|
|
|
|
{% csrf_token %} |
|
|
|
|
<input type="hidden" name="next" value="{{ request.path }}"> |
|
|
|
|
<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> |
|
|
|
|
|
|
|
|
|
{# {% if answer.author|class_name == 'User' %}#} |
|
|
|
|
@ -1099,7 +1130,8 @@ |
|
|
|
|
<div class="col-xs-12"> |
|
|
|
|
<ul> |
|
|
|
|
{% for answer_file in answer.files.all %} |
|
|
|
|
<li><a href="{{ answer_file.file.url }}">{{ answer_file.name }}</a> <span>{{ answer_file.file.size|filesizeformat }}</span></li> |
|
|
|
|
<li><a href="{{ answer_file.file.url }}">{{ answer_file.name }}</a> |
|
|
|
|
<span>{{ answer_file.file.size|filesizeformat }}</span></li> |
|
|
|
|
{% endfor %} |
|
|
|
|
</ul> |
|
|
|
|
</div> |
|
|
|
|
@ -1108,7 +1140,8 @@ |
|
|
|
|
{% for portf in answer.portfolios.all %} |
|
|
|
|
<div class="col-lg-3"> |
|
|
|
|
<div class="insetCol box-sizing disTab"> |
|
|
|
|
<div class="imgGal" style="background: url('{{ portf.photos.first.img.url }}') no-repeat center"> |
|
|
|
|
<div class="imgGal" |
|
|
|
|
style="background: url('{{ portf.photos.first.img.url }}') no-repeat center"> |
|
|
|
|
<div class="imgFigure"></div> |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
@ -1119,7 +1152,8 @@ |
|
|
|
|
<div class="commBlock44 disTab"> |
|
|
|
|
{% for message in answer.messages.all %} |
|
|
|
|
<div class="comm44 disTab"> |
|
|
|
|
<div class="col-lg-10 col-lg-offset-1 {% if message.is_sender_customer %}-highlighted-message{% endif %}"> |
|
|
|
|
<div |
|
|
|
|
class="col-lg-10 col-lg-offset-1 {% if message.is_sender_customer %}-highlighted-message{% endif %}"> |
|
|
|
|
{% if message.is_sender_customer %} |
|
|
|
|
<p class="nameComm nameCommAct"> |
|
|
|
|
{% firstof project.customer.get_full_name.strip project.customer.username %} |
|
|
|
|
@ -1163,7 +1197,8 @@ |
|
|
|
|
<script> |
|
|
|
|
// Persistent Bootstrap tabs -------------------------------------- |
|
|
|
|
|
|
|
|
|
;(function() { |
|
|
|
|
; |
|
|
|
|
(function () { |
|
|
|
|
var $allTabs = $('a[data-toggle="tab"]'); |
|
|
|
|
|
|
|
|
|
var $tab = $allTabs.filter('[href="' + window.location.hash + '"]').first(); |
|
|
|
|
@ -1185,7 +1220,8 @@ |
|
|
|
|
|
|
|
|
|
// Toggle project answer form ----------------------------------- |
|
|
|
|
|
|
|
|
|
;(function() { |
|
|
|
|
; |
|
|
|
|
(function () { |
|
|
|
|
var $projectAnswerForm = $('.-project-answer-form').first(); |
|
|
|
|
|
|
|
|
|
if ($.cookie('projectAnswerFormVisible')) { |
|
|
|
|
@ -1258,7 +1294,6 @@ |
|
|
|
|
}()); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Scroll to answers ------------------------------------- |
|
|
|
|
|
|
|
|
|
setTimeout(function () { |
|
|
|
|
|