You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
607 lines
32 KiB
607 lines
32 KiB
{% extends 'partials/base.html' %}
|
|
|
|
{% load humanize %}
|
|
{% load thumbnail %}
|
|
{% load specializtions_tags %}
|
|
|
|
{% block content %}
|
|
{% include 'partials/header.html' %}
|
|
|
|
<div class="container mainScore">
|
|
<div class="row">
|
|
<div class="col-lg-12">
|
|
<p class="titleScore">{{ project.name }}</p>
|
|
</div>
|
|
|
|
<div class="doneBlock new-done disTab">
|
|
<div class="triangle1"></div>
|
|
|
|
{% if request.user.is_contractor %}
|
|
<div class="col-lg-12 new-p">
|
|
<p>{{ project.budget|intcomma }} <i class="fa fa-rub"></i></p>
|
|
</div>
|
|
{% endif %}
|
|
|
|
<div class="col-lg-4">
|
|
<a href="#" class="aLinkExe">
|
|
<div class="imgExecutor">
|
|
{% if project.customer.avatar %}
|
|
<img src="{{ project.customer.avatar.url }}" alt="execitor-image">
|
|
{% else %}
|
|
<img src="{% static 'img/profile.jpg' %}" alt="execitor-image">
|
|
{% endif %}
|
|
</div>
|
|
</a>
|
|
<p class="nameExecutor">
|
|
<a href="#">{{ project.customer.get_full_name }} [{{ project.customer.username }}]</a>
|
|
</p>
|
|
<p class="navv2">На сайте {{ project.created|naturaltime }}</p>
|
|
|
|
{% if not request.user.is_contractor %}
|
|
<ul class="rettList restList3">
|
|
<li>
|
|
<a href="javascript:void(0)">Отзывы:
|
|
<span> + 0</span>
|
|
<small> 0</small>
|
|
<mark> - 0</mark>
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
{% endif %}
|
|
</div>
|
|
|
|
{% if request.user.is_contractor %}
|
|
<div class="col-lg-3 retts">
|
|
<ul class="rettList restList2">
|
|
<li>Рейтинг: <span> 0</span></li>
|
|
<li>Безопасные сделки: <span> 0</span></li>
|
|
<li>
|
|
<a href="javascript:void(0)">Отзывы:
|
|
<span> + 0</span>
|
|
<small> 0</small>
|
|
<mark> - 0</mark>
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
{% endif %}
|
|
|
|
<div class="col-lg-2 new-dashed">
|
|
<div class="dashedCol4 dashedCol44 dashedColColor">
|
|
<p class="specUser">
|
|
Специализации:
|
|
</p>
|
|
<div class="insetSpec">
|
|
<span>Интерьеры</span>
|
|
</div>
|
|
<div class="insetSpec">
|
|
<span>Визуализация/3D</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="col-lg-3 retts new-list">
|
|
<ul class="desListPro">
|
|
<li>
|
|
{{ project.created }}
|
|
</li>
|
|
<li>
|
|
{{ project.get_work_type_display }}
|
|
</li>
|
|
</ul>
|
|
|
|
{% if project.cro %}
|
|
<div class="sroUser sroExecutor sroPro">
|
|
<div class="iconSRO"></div>
|
|
<p>Есть допуск СРО</p>
|
|
</div>
|
|
{% endif %}
|
|
</div>
|
|
</div>
|
|
|
|
<div class="infoProjectBlock info-new disTab">
|
|
<div class="triangle2"></div>
|
|
|
|
{% if project.realty %}
|
|
<div class="col-lg-10 col-lg-offset-1">
|
|
<ul class="listProjectIn">
|
|
<li><span>Местоположение:</span> {{ project.realty.location.name }}</li>
|
|
<li><span>Классификация здания:</span> {{ project.realty.building_classification.name }}</li>
|
|
<li><span>Вид строительства:</span> {{ project.realty.type_construction.name }}</li>
|
|
</ul>
|
|
</div>
|
|
{% endif %}
|
|
|
|
<div class="col-lg-10 col-lg-offset-1">
|
|
<p class="textProIn">
|
|
{{ project.text }}
|
|
</p>
|
|
</div>
|
|
|
|
<div class="col-lg-10 col-lg-offset-1">
|
|
{% if request.user.is_contractor %}
|
|
<a href="#" class="new-answer">
|
|
Ответить на проект
|
|
</a>
|
|
<div class="polsF1 pols-new disTab">
|
|
<div class="col-lg-3">
|
|
<form action="{% url 'projects:detail' pk=project.pk %}" method="GET" novalidate>
|
|
<select name="answer_as_team" class="selectpicker" onchange="$(this).closest('form').submit()">
|
|
{% if answer_as_team %}
|
|
<option value="">От своего имени</option>
|
|
<option value="on" selected>От имени группы</option>
|
|
{% else %}
|
|
<option value="" selected>От своего имени</option>
|
|
<option value="on">От имени группы</option>
|
|
{% endif %}
|
|
</select>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
{% elif request.user.is_customer %}
|
|
<a href="{% url 'projects:customer-project-edit' pk=project.pk %}?back={{ request.path }}" class="linkProIn linkProIn1">
|
|
Редактировать
|
|
</a>
|
|
|
|
<form action="{% url 'projects:customer-project-trash' pk=project.pk %}" method="POST">
|
|
{% csrf_token %}
|
|
<input type="hidden" name="next" value="{{ request.path }}">
|
|
|
|
<a href="#" onclick="$(this).closest('form').submit(); return false" class="linkProIn linkProIn2">
|
|
Снять с публикации
|
|
</a>
|
|
</form>
|
|
{% endif %}
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
{% if request.user.is_contractor %}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
{% if answer %}
|
|
<div class="candidateBlock disTab">
|
|
<div class="candidate can-new">
|
|
<div class="col-lg-4">
|
|
<a href="#" class="aLinkExe">
|
|
<div class="imgExecutor">
|
|
{% if answer.author.avatar %}
|
|
<img src="{{ answer.author.avatar.url }}" alt="execitor-image">
|
|
{% else %}
|
|
<img src="{% static 'img/profile.jpg' %}" alt="execitor-image">
|
|
{% endif %}
|
|
</div>
|
|
</a>
|
|
|
|
<p class="nameExecutor">
|
|
{% if answer.author|class_name == 'User' %}
|
|
<a href="#">{{ answer.author.get_full_name }} [{{ answer.author.username }}]</a>
|
|
{% elif answer.author|class_name == 'Team' %}
|
|
<a href="#">{{ answer.author.name }}</a>
|
|
{% endif %}
|
|
</p>
|
|
|
|
<p class="navv2">На сайте {{ answer.author.created }}</p>
|
|
|
|
{% if answer.author|class_name == 'User' %}
|
|
{% if answer.author.contractor_status == 'free' %}
|
|
<div class="statusUser">Свободен</div><!-- ............. -->
|
|
{% endif %}
|
|
{% endif %}
|
|
</div>
|
|
<div class="col-lg-3 retts">
|
|
<ul class="rettList restList2">
|
|
<li>Рейтинг: <span> 0</span></li>
|
|
<li>Безопасные сделки: <span> 0</span></li>
|
|
<li>
|
|
<a href="javascript:void(0)">Отзывы:
|
|
<span> + 0</span>
|
|
<small> 0</small>
|
|
<mark> - 0</mark>
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
|
|
{% if answer.author|class_name == 'User' and answer.author.cro %}
|
|
<div class="sroUser sroExecutor">
|
|
<div class="iconSRO"></div>
|
|
<p>Есть допуск СРО</p>
|
|
</div>
|
|
{% elif answer.author|class_name == 'Team' %}
|
|
<!-- TODO -->
|
|
|
|
<div class="sroUser sroExecutor">
|
|
<div class="iconSRO"></div>
|
|
<p>Есть допуск СРО</p>
|
|
</div>
|
|
{% endif %}
|
|
</div>
|
|
<div class="col-lg-2 listCens">
|
|
<p>
|
|
Цена:
|
|
<span>{{ answer.budget|intcomma }}</span>
|
|
<i class="fa fa-rub"></i>
|
|
</p>
|
|
<p>
|
|
Срок: <span>{{ answer.term }} {{ answer.get_currency_display }} {{ answer.get_term_type_display|decap }}</span>
|
|
</p>
|
|
<p>Опубликован: {{ answer.created|date:'M d, Y' }}</p>
|
|
</div>
|
|
<div class="col-lg-3 retts">
|
|
<a href="#" onclick="return false" class="candLink candLink3">
|
|
отказ
|
|
</a>
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<div class="gallMini disTab">
|
|
{% 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="imgFigure"></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{% endfor %}
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<div class="commBlock44 disTab">
|
|
<div class="comm44 disTab">
|
|
<div class="col-lg-10 col-lg-offset-1">
|
|
<p class="nameComm">
|
|
Иванов Петр Иванович
|
|
</p>
|
|
<span class="dateComm44">
|
|
13.01.2016 / 21:05
|
|
</span>
|
|
<div class="stars box-sizing">
|
|
<span class="glyphicon glyphicon-star starAct" aria-hidden="true"></span>
|
|
<span class="glyphicon glyphicon-star starAct" aria-hidden="true"></span>
|
|
<span class="glyphicon glyphicon-star starAct" aria-hidden="true"></span>
|
|
<span class="glyphicon glyphicon-star" aria-hidden="true"></span>
|
|
<span class="glyphicon glyphicon-star" aria-hidden="true"></span>
|
|
</div>
|
|
<p class="textComm44">
|
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean euismod bibendum laoreet. Proin gravida dolor sit amet lacus accumsan et viverra justo commodo. Proin sodales pulvinar tempor. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nam fermentum, nulla luctus pharetra vulputate, felis tellus mollis orci, sed rhoncus sapien nunc eget odio.
|
|
</p>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="comm44 disTab">
|
|
<div class="col-lg-10 col-lg-offset-1">
|
|
<p class="nameComm nameCommAct">
|
|
Иванов Петр Иванович
|
|
</p>
|
|
<span class="dateComm44">
|
|
13.01.2016 / 21:05
|
|
</span>
|
|
<p class="textComm44">
|
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean euismod bibendum laoreet. Proin gravida dolor sit amet lacus accumsan et viverra justo commodo. Proin sodales pulvinar tempor. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nam fermentum, nulla luctus pharetra vulputate, felis tellus mollis orci, sed rhoncus sapien nunc eget odio.
|
|
</p>
|
|
<a href="javascript:void(0)" class="answerComm">
|
|
Ответить
|
|
</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
</div>
|
|
</div>
|
|
{% else %}
|
|
<form action="{% url 'projects:detail' pk=project.pk %}" method="POST" enctype="multipart/form-data" novalidate>
|
|
{% 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 %}">
|
|
|
|
<div class="polsF1 disTab">
|
|
<div class="col-lg-3">
|
|
<div class="textAreaBlock2 text-nn box-sizing disTab">
|
|
<p>Стоимость <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 }}">
|
|
</div>
|
|
</div>
|
|
|
|
<div class="col-lg-3">
|
|
<div class="textAreaBlock2 text-nn box-sizing disTab">
|
|
{{ form.currency }}
|
|
</div>
|
|
</div>
|
|
|
|
<div class="col-lg-3">
|
|
<div class="textAreaBlock2 text-nn box-sizing disTab">
|
|
<p>Срок <span style="color: red">{{ form.term.errors.as_text }}</span></p>
|
|
<input type="text" class="box-sizing" name="{{ form.term.html_name }}" value="{{ form.term.value }}">
|
|
</div>
|
|
</div>
|
|
|
|
<div class="col-lg-3">
|
|
<div class="textAreaBlock2 text-nn box-sizing disTab">
|
|
{{ form.term_type }}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="polsF1 disTab searchF1">
|
|
<div class="col-lg-9">
|
|
<div class="textAreaBlock2 text-nn box-sizing disTab">
|
|
<p>Текст <span style="color: red">{{ form.text.errors.as_text }}</span></p>
|
|
<textarea name="{{ form.text.html_name }}" id="text-new">{{ form.text.value }}</textarea>
|
|
</div>
|
|
</div>
|
|
<div class="col-lg-3"></div>
|
|
</div>
|
|
|
|
<div class="polsF1 disTab searchF1">
|
|
{% for x in 'abc' %}
|
|
<div class="col-lg-3">
|
|
<div class="insetCol box-sizing disTab">
|
|
<div class="imgGal" s--tyle="background: url('{{ portf.photos.first.img.url }}') no-repeat center">
|
|
<div class="imgFigure"></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{% endfor %}
|
|
</div>
|
|
|
|
<div class="polsF1 disTab searchF1">
|
|
<div class="col-lg-9">
|
|
<p>Портфолио <span style="color: red">{{ form.portfolios.errors.as_text }}</span></p>
|
|
|
|
<ul>
|
|
{% for p in form.portfolios.field.queryset.all %}
|
|
<li>
|
|
<input
|
|
type="checkbox"
|
|
name="{{ form.portfolios.html_name }}"
|
|
value="{{ p.pk }}"
|
|
{% if p.pk|str in form.portfolios.value %}checked{% endif %}>
|
|
|
|
{{ p.name }}
|
|
</li>
|
|
{% endfor %}
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="polsF1 disTab searchF1">
|
|
<div class="col-lg-9">
|
|
<div id="fileUploadContainer">
|
|
<div>
|
|
<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">
|
|
<span class="file-upload-label"></span>
|
|
<a href="#" onclick="return false" class="file-upload-remove-btn">×</a>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="polsF1 disTab searchF1">
|
|
<div class="col-lg-9">
|
|
{{ form.secure_deal_only }} {{ form.secure_deal_only.label }}
|
|
</div>
|
|
</div>
|
|
|
|
<div class="polsF1 disTab searchF1">
|
|
<div class="col-lg-3">
|
|
<button type="submit">Опубликовать ответ</button>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="polsF1 disTab searchF1"></div>
|
|
</form>
|
|
{% endif %}
|
|
|
|
|
|
|
|
|
|
|
|
{% elif request.user.is_customer and project.answers.exists %}
|
|
|
|
|
|
|
|
|
|
|
|
<div class="exBigBlock disTab">
|
|
<div class="col-lg-12">
|
|
<p class="titleEx">Исполнители</p>
|
|
</div>
|
|
<div class="col-lg-12 exButton">
|
|
<div class="btn-group" role="group" aria-label="...">
|
|
<button type="button" class="btn btn-default">
|
|
Новые <span>+7</span>
|
|
</button>
|
|
<button type="button" class="btn btn-default">
|
|
Кандидаты <span>7</span>
|
|
</button>
|
|
<button type="button" class="btn btn-default">
|
|
Отказал <span>7</span>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="col-lg-12 compareBlock">
|
|
<div class="col-lg-2 col-lg-offset-5">
|
|
<p>Сравнить кандидатов</p>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div class="col-lg-12 exNew">
|
|
<p>Новые исполнители</p>
|
|
</div>
|
|
|
|
|
|
|
|
{% for answer in project.answers.all %}
|
|
<div class="candidateBlock disTab">
|
|
<div class="candidate">
|
|
<div class="col-lg-4">
|
|
<a href="#" class="aLinkExe">
|
|
<div class="imgExecutor">
|
|
{% if answer.author.avatar %}
|
|
<img src="{{ answer.author.avatar.url }}" alt="execitor-image">
|
|
{% else %}
|
|
<img src="{% static 'img/profile.jpg' %}" alt="execitor-image">
|
|
{% endif %}
|
|
</div>
|
|
</a>
|
|
|
|
<p class="nameExecutor">
|
|
{% if answer.author|class_name == 'User' %}
|
|
<a href="#">{{ answer.author.get_full_name }} [{{ answer.author.username }}]</a>
|
|
{% elif answer.author|class_name == 'Team' %}
|
|
<a href="#">{{ answer.author.name }}</a>
|
|
{% endif %}
|
|
</p>
|
|
|
|
<p class="navv2">На сайте {{ answer.author.created }}</p>
|
|
|
|
{% if answer.author|class_name == 'User' %}
|
|
{% if answer.author.contractor_status == 'free' %}
|
|
<div class="statusUser">Свободен</div><!-- ............. -->
|
|
{% endif %}
|
|
{% endif %}
|
|
</div>
|
|
|
|
<div class="col-lg-3 retts">
|
|
{% ratings_widget answer.author.pk 'restList2' %}
|
|
|
|
{% if answer.author|class_name == 'User' and answer.author.cro %}
|
|
<div class="sroUser sroExecutor">
|
|
<div class="iconSRO"></div>
|
|
<p>Есть допуск СРО</p>
|
|
</div>
|
|
{% elif answer.author|class_name == 'Team' %}
|
|
<!-- TODO -->
|
|
|
|
<div class="sroUser sroExecutor">
|
|
<div class="iconSRO"></div>
|
|
<p>Есть допуск СРО</p>
|
|
</div>
|
|
{% endif %}
|
|
</div>
|
|
|
|
<div class="col-lg-2 listCens">
|
|
<p>
|
|
Цена:
|
|
<span>{{ answer.budget|intcomma }}</span>
|
|
<i class="fa fa-rub"></i>
|
|
</p>
|
|
<p>
|
|
Срок: <span>{{ answer.term }} {{ answer.get_currency_display }} {{ answer.get_term_type_display|decap }}</span>
|
|
</p>
|
|
<p>Опубликован: {{ answer.created|date:'M d, Y' }}</p>
|
|
</div>
|
|
|
|
<div class="col-lg-3 retts">
|
|
<a href="javascript:void(0)" class="candLink candLink1">
|
|
Кандидат
|
|
</a>
|
|
<a href="{% url 'chat:chat-user' %}" class="candLink candLink2">
|
|
предложить проект
|
|
</a>
|
|
<a href="javascript:void(0)" class="candLink candLink3">
|
|
отказ
|
|
</a>
|
|
</div>
|
|
|
|
<div class="gallMini disTab">
|
|
{% 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="imgFigure"></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{% endfor %}
|
|
</div>
|
|
|
|
<div class="commBlock44 disTab">
|
|
<div class="comm44 disTab">
|
|
<div class="col-lg-10 col-lg-offset-1">
|
|
<p class="nameComm">
|
|
Иванов Петр Иванович
|
|
</p>
|
|
<span class="dateComm44">
|
|
13.01.2016 / 21:05
|
|
</span>
|
|
<div class="stars box-sizing">
|
|
<span class="glyphicon glyphicon-star starAct" aria-hidden="true"></span>
|
|
<span class="glyphicon glyphicon-star starAct" aria-hidden="true"></span>
|
|
<span class="glyphicon glyphicon-star starAct" aria-hidden="true"></span>
|
|
<span class="glyphicon glyphicon-star" aria-hidden="true"></span>
|
|
<span class="glyphicon glyphicon-star" aria-hidden="true"></span>
|
|
</div>
|
|
<p class="textComm44">
|
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean euismod bibendum laoreet. Proin gravida dolor sit amet lacus accumsan et viverra justo commodo. Proin sodales pulvinar tempor. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nam fermentum, nulla luctus pharetra vulputate, felis tellus mollis orci, sed rhoncus sapien nunc eget odio.
|
|
</p>
|
|
</div>
|
|
</div>
|
|
<div class="comm44 disTab">
|
|
<div class="col-lg-10 col-lg-offset-1">
|
|
<p class="nameComm nameCommAct">
|
|
Иванов Петр Иванович
|
|
</p>
|
|
<span class="dateComm44">
|
|
13.01.2016 / 21:05
|
|
</span>
|
|
<p class="textComm44">
|
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean euismod bibendum laoreet. Proin gravida dolor sit amet lacus accumsan et viverra justo commodo. Proin sodales pulvinar tempor. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nam fermentum, nulla luctus pharetra vulputate, felis tellus mollis orci, sed rhoncus sapien nunc eget odio.
|
|
</p>
|
|
<a href="javascript:void(0)" class="answerComm">
|
|
Ответить
|
|
</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{% endfor %}
|
|
{% endif %}
|
|
|
|
|
|
|
|
{% include 'partials/footer.html' %}
|
|
</div>
|
|
</div>
|
|
{% endblock %}
|
|
|