remotes/origin/setup
ArturBaybulatov 10 years ago
parent d530365022
commit 05ba43c5ef
  1. 2
      archilance/management/commands/generate_projects.py
  2. 4
      projects/models.py
  3. 258
      projects/templates/project_detail.html
  4. 2
      projects/templates/project_filter.html
  5. 2
      projects/urls.py
  6. 6
      projects/views.py

@ -70,7 +70,7 @@ class Command(BaseCommand):
project.specialization = Specialization.objects.root_nodes()[0].get_descendants().order_by('?').first()
project.realty = Realty.objects.order_by('?').first()
project.customer = User.objects.filter(groups__name='Заказчики', is_active=True, is_superuser=False).order_by('?').first()
project.customer = User.customer_objects.filter(is_active=True).order_by('?').first()
project.save()

@ -124,10 +124,10 @@ class Answer(models.Model):
term = models.IntegerField(default=0)
term_type = models.CharField(max_length=10, choices=TERMS, default='hour')
text = models.TextField()
def __str__(self):
return self.text
class Meta:
verbose_name = 'Ответ к проекту'
verbose_name_plural = 'Ответы к проектам'

@ -1,6 +1,5 @@
{% extends 'partials/base.html' %}
{% load staticfiles %}
{% load humanize %}
@ -15,16 +14,18 @@
<div class="doneBlock new-done disTab">
<div class="triangle1"></div>
<div class="col-lg-12 new-p">
<p>{{ project.budget | intcomma }} <i class="fa fa-rub"></i></p>
<p>{{ project.budget|intcomma }} <i class="fa fa-rub"></i></p>
</div>
<div class="col-lg-4">
<a href="#" class="aLinkExe"><div class="imgExecutor">
<img src="{% static 'img/profile.jpg' %}" alt="execitor-image">
</div></a>
<a href="#" class="aLinkExe">
<div class="imgExecutor">
<img src="{% static 'img/profile.jpg' %}" alt="execitor-image">
</div>
</a>
<p class="nameExecutor">
<a href="#">{{ project.customer.get_full_name }} [{{ project.customer }}]</a>
</p>
<p class="navv2">На сайте {{ project.created | naturaltime }}</p>
<p class="navv2">На сайте {{ project.created|naturaltime }}</p>
</div>
<div class="col-lg-3 retts">
<ul class="rettList restList2">
@ -47,7 +48,6 @@
<div class="insetSpec">
<span>Интерьеры</span>
</div>
<div class="insetSpec">
<span>Визуализация/3D</span>
</div>
@ -104,142 +104,140 @@
<form action="{% url 'projects:contractor-project-answer' pk=pk %}" method="POST">
<input type="hidden" name="next" value="{% url 'projects:detail' pk=pk %}">
{{ form.errors }}
{% csrf_token %}
<div class="polsF1 disTab">
<div class="col-lg-3">
<div class="textAreaBlock2 text-nn box-sizing disTab">
<p>Стоимость</p>
<input type="text" class="box-sizing" name="{{ form.budget.name }}"/>
{% csrf_token %}
<input type="hidden" name="next" value="{% url 'projects:detail' pk=pk %}">
<div class="polsF1 disTab">
<div class="col-lg-3">
<div class="textAreaBlock2 text-nn box-sizing disTab">
<p>Стоимость</p>
<input type="text" class="box-sizing" name="{{ form.budget.name }}"/>
</div>
</div>
</div>
<div class="col-lg-3">
<div class="textAreaBlock2 text-nn box-sizing disTab">
<p>Бюджет</p>
{{ form.currency }}
<div class="col-lg-3">
<div class="textAreaBlock2 text-nn box-sizing disTab">
<p>Бюджет</p>
{{ form.currency }}
</div>
</div>
<div class="col-lg-6"></div>
</div>
<div class="col-lg-6"></div>
</div>
<div class="polsF1 disTab">
<div class="col-lg-3">
<div class="textAreaBlock2 text-nn box-sizing disTab">
<p>Срок</p>
<input type="text" class="box-sizing" name="{{ form.term.name }}"/>
<div class="polsF1 disTab">
<div class="col-lg-3">
<div class="textAreaBlock2 text-nn box-sizing disTab">
<p>Срок</p>
<input type="text" class="box-sizing" name="{{ form.term.name }}"/>
</div>
</div>
</div>
<div class="col-lg-3">
<div class="textAreaBlock2 text-nn box-sizing disTab">
<p>Тип срока</p>
{{ form.term_type }}
<div class="col-lg-3">
<div class="textAreaBlock2 text-nn box-sizing disTab">
<p>Тип срока</p>
{{ form.term_type }}
</div>
</div>
<div class="col-lg-6"></div>
</div>
<div class="col-lg-6"></div>
</div>
<div class="polsF1 disTab">
<div class="col-lg-9">
<div class="textAreaBlock2 text-nn box-sizing disTab">
<p>Текст</p>
<textarea name="{{ form.text.name }}" id="text-new"></textarea>
<div class="polsF1 disTab">
<div class="col-lg-9">
<div class="textAreaBlock2 text-nn box-sizing disTab">
<p>Текст</p>
<textarea name="{{ form.text.name }}" id="text-new"></textarea>
</div>
</div>
<div class="col-lg-3"></div>
</div>
<div class="col-lg-3"></div>
</div>
<div class="polsF1 disTab">
<div class="col-lg-9">
<div class="textAreaBlock2 text-nn box-sizing disTab">
{% for p in user.portfolio.all %}
<h3>{{ p }}</h3>
{% endfor %}
<div class="polsF1 disTab">
<div class="col-lg-9">
<div class="textAreaBlock2 text-nn box-sizing disTab">
{% for p in user.portfolio.all %}
<h3>{{ p }}</h3>
{% endfor %}
</div>
</div>
<div class="col-lg-3"></div>
</div>
<div class="col-lg-3"></div>
</div>
<div class="polsF1 disTab">
<div class="col-lg-3"><input type="submit" value="Создать"/></div>
</div>
</form>
<div class="polsF1 disTab">
<div class="col-lg-3"><input type="submit" value="Создать"/></div>
</div>
</form>
</div>
<div class="candidateBlock disTab">
{% for answer in project.answers.all %}
<div class="candidate can-new">
<div class="col-lg-4">
<a href="#" class="aLinkExe"><div class="imgExecutor">
<img src="{% static 'img/profile.jpg' %}" alt="execitor-image">
</div></a>
<p class="nameExecutor">
<a href="#">{{ answer.contractor.get_full_name }} [{{ answer.contractor }}]</a>
</p>
<p class="navv2">{{ answer.contractor.created }}</p>
</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.contractor.cro %}
<div class="sroUser sroExecutor">
<div class="iconSRO"></div>
<p>Есть допуск СРО</p>
</div>
{% endif %}
</div>
<div class="col-lg-2 listCens">
<p>Цена:
<span> {{ answer.budget }}</span>
<i class="fa fa-rub"></i>
</p>
<p>
Срок: <span>{{ answer.term }} {{ answer.term_type }}</span>
</p>
<p>Опубликован: {{ answer.created }}</p>
</div>
<div class="col-lg-3 retts">
<a href="" class="candLink candLink3">
отказ
</a>
</div>
<div class="commBlock44 comm-new disTab">
{# <div class="comm44 disTab">#}
{# <div class="col-lg-10 col-lg-offset-1">#}
{# <p class="nameComm">#}
{# Иванов Петр Иванович#}
{# </p>#}
{# <span class="dateComm44">#}
{# 13.0.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">#}
{# Text#}
{# </p>#}
{# </div>#}
{# </div>#}
</div>
</div>
<div class="candidate can-new">
<div class="col-lg-4">
<a href="#" class="aLinkExe"><div class="imgExecutor">
<img src="{% static 'img/profile.jpg' %}" alt="execitor-image">
</div></a>
<p class="nameExecutor">
<a href="#">{{ answer.contractor.get_full_name }} [{{ answer.contractor }}]</a>
</p>
<p class="navv2">{{ answer.contractor.created }}</p>
</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.contractor.cro %}
<div class="sroUser sroExecutor">
<div class="iconSRO"></div>
<p>Есть допуск СРО</p>
</div>
{% endif %}
</div>
<div class="col-lg-2 listCens">
<p>Цена:
<span> {{ answer.budget }}</span>
<i class="fa fa-rub"></i>
</p>
<p>
Срок: <span>{{ answer.term }} {{ answer.term_type }}</span>
</p>
<p>Опубликован: {{ answer.created }}</p>
</div>
<div class="col-lg-3 retts">
<a href="" class="candLink candLink3">
отказ
</a>
</div>
<div class="commBlock44 comm-new disTab">
{# <div class="comm44 disTab">#}
{# <div class="col-lg-10 col-lg-offset-1">#}
{# <p class="nameComm">#}
{# Иванов Петр Иванович#}
{# </p>#}
{# <span class="dateComm44">#}
{# 13.0.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">#}
{# Text#}
{# </p>#}
{# </div>#}
{# </div>#}
</div>
</div>
{% endfor %}
</div>

@ -13,7 +13,7 @@
<form action="{% url 'projects:project-filter' %}" method="GET" novalidate>
<div class="col-lg-12">
--<div class="filter clearfix">
<div class="filter clearfix">
<div class="triangle1"></div>

@ -25,7 +25,7 @@ urlpatterns = [
urls.url(r'^create/$', CustomerProjectCreateView.as_view(), name='customer-project-create'),
urls.url(r'^(?P<pk>\d+)/$', ProjectView.as_view(), name='detail'),
urls.url(r'^(?P<pk>\d+)/edit/$', CustomerProjectEditView.as_view(), name='customer-project-edit'),
urls.url(r'^(?P<pk>\d+)/trash/$', CustomerProjectTrashView.as_view(), name='customer-project-trash'),
urls.url(r'^(?P<pk>\d+)/restore/$', CustomerProjectRestoreView.as_view(), name='customer-project-restore'),
urls.url(r'^(?P<pk>\d+)/delete/$', CustomerProjectDeleteView.as_view(), name='customer-project-delete'),

@ -151,10 +151,12 @@ class ProjectView(BaseMixin, View):
def get(self, request, *args, **kwargs):
project = get_object_or_404(Project, pk=kwargs.get('pk'))
context = self.get_context_data(**_.merge({}, request.GET, kwargs))
context.update({'project': project})
# import code; code.interact(local=dict(globals(), **locals()))
if request.user.is_authenticated() and request.user.is_customer():
return render(request, self.customer_template_name, context)
else:

Loading…
Cancel
Save