remotes/origin/setup
ArturBaybulatov 10 years ago
parent 2eae01b08c
commit 4a13479fac
  1. 1
      archilance/management/commands/generate_users.py
  2. 2
      projects/models.py
  3. 297
      projects/templates/project_detail.html
  4. 2
      projects/views.py

@ -86,6 +86,7 @@ class Command(BaseCommand):
email='%s@example.com' % username,
is_active=True,
contractor_status=_.sample(User.STATUSES)[0],
cro=_.sample((True, False)),
)
users = _.times(create_user, 500)

@ -50,7 +50,7 @@ class Realty(models.Model):
construction_type = models.ForeignKey(ConstructionType, related_name='realties')
location = TreeForeignKey('common.Location', related_name='realties', null=True, blank=True)
name = models.CharField(max_length=255)
user = models.ForeignKey(User, related_name='realties')
user = models.ForeignKey(User, related_name='realties') # Do we actually need this field?
def __str__(self):
return self.name

@ -163,153 +163,156 @@
{% if request.user.is_contractor and request.user.contractor_answers.exists %}
{% with answer=request.user.contractor_answers.first %}
<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">
<a href="#">{{ answer.author.get_full_name }} [{{ answer.author.username }}]</a>
</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>
<div class="sroUser sroExecutor">
<div class="iconSRO"></div>
<p>Есть допуск СРО</p>
</div>
</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_term_type_display|decap }}</span>
</p>
<p>Опубликован: {{ answer.created }}</p>
</div>
<div class="col-lg-3 retts">
<a href="{% url 'projects:add-candidate' answer_id=answer.pk project_id=project.pk %}" class="candLink candLink1">
Кандидат
</a>
<a href="{% url 'projects:offer-order' answer_id=answer.pk project_id=project.pk %}" class="candLink candLink2">
предложить проект
</a>
<a href="javascript:void(0)" class="candLink candLink3">
отказ
</a>
</div>
<div class="gallMini disTab">
<div class="col-lg-3">
<div class="insetCol box-sizing disTab">
<div class="imgGal">
<div class="imgFigure"></div>
</div>
</div>
</div>
<div class="col-lg-3">
<div class="insetCol box-sizing disTab">
<div class="imgGal">
<div class="imgFigure"></div>
</div>
</div>
</div>
<div class="col-lg-3">
<div class="insetCol box-sizing disTab">
<div class="imgGal">
<div class="imgFigure"></div>
</div>
</div>
</div>
<div class="col-lg-3">
<div class="insetCol box-sizing disTab">
<div class="imgGal">
<div class="imgFigure"></div>
</div>
</div>
</div>
</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>
{% endwith %}
{% elif request.user.is_contractor %}
{# {% if request.user.is_contractor and request.user.contractor_answers.exists and request.user.contractor_answers.first in project.answers.all %}#}
{# #}
{# #}
{# #}
{# #}
{# #}
{# {% with answer=request.user.contractor_answers.first %}#}
{# <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">#}
{# <a href="#">{{ answer.author.get_full_name }} [{{ answer.author.username }}]</a>#}
{# </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' %}#}
{# <div class="sroUser sroExecutor">#}
{# <div class="iconSRO"></div>#}
{# <p>Есть допуск СРО</p>#}
{# </div>#}
{# {% else %}#}
{# ...#}
{# {% 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_term_type_display|decap }}</span>#}
{# </p>#}
{# <p>Опубликован: {{ answer.created }}</p>#}
{# </div>#}
{# <div class="col-lg-3 retts">#}
{# <a href="{% url 'projects:add-candidate' answer_id=answer.pk project_id=project.pk %}" class="candLink candLink1">#}
{# Кандидат#}
{# </a>#}
{# <a href="{% url 'projects:offer-order' answer_id=answer.pk project_id=project.pk %}" class="candLink candLink2">#}
{# предложить проект#}
{# </a>#}
{# <a href="javascript:void(0)" class="candLink candLink3">#}
{# отказ#}
{# </a>#}
{# </div>#}
{# <div class="gallMini disTab">#}
{# <div class="col-lg-3">#}
{# <div class="insetCol box-sizing disTab">#}
{# <div class="imgGal">#}
{# <div class="imgFigure"></div>#}
{# </div>#}
{# </div>#}
{# </div>#}
{# <div class="col-lg-3">#}
{# <div class="insetCol box-sizing disTab">#}
{# <div class="imgGal">#}
{# <div class="imgFigure"></div>#}
{# </div>#}
{# </div>#}
{# </div>#}
{# <div class="col-lg-3">#}
{# <div class="insetCol box-sizing disTab">#}
{# <div class="imgGal">#}
{# <div class="imgFigure"></div>#}
{# </div>#}
{# </div>#}
{# </div>#}
{# <div class="col-lg-3">#}
{# <div class="insetCol box-sizing disTab">#}
{# <div class="imgGal">#}
{# <div class="imgFigure"></div>#}
{# </div>#}
{# </div>#}
{# </div>#}
{# </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>#}
{# {% endwith %}#}
{# {% elif request.user.is_contractor and not request.user.contractor_answers.exists %}#}
{% if request.user.is_contractor and not request.user.contractor_answers.exists %}

@ -44,6 +44,8 @@ class ProjectDetailWithContractorAnswerView(BaseMixin, View):
project = get_object_or_404(Project, pk=kwargs.get('pk'))
context.update({'project': project})
# context.update({'tmp_answer': ...}) # Tmp
if request.user.is_authenticated() and request.user.is_contractor():
form = self.form_class(request=request)
context.update({'form': form})

Loading…
Cancel
Save