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.specialization = Specialization.objects.root_nodes()[0].get_descendants().order_by('?').first()
project.realty = Realty.objects.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() project.save()

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

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

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

@ -25,7 +25,7 @@ urlpatterns = [
urls.url(r'^create/$', CustomerProjectCreateView.as_view(), name='customer-project-create'), 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+)/$', 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+)/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+)/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+)/restore/$', CustomerProjectRestoreView.as_view(), name='customer-project-restore'),
urls.url(r'^(?P<pk>\d+)/delete/$', CustomerProjectDeleteView.as_view(), name='customer-project-delete'), 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): def get(self, request, *args, **kwargs):
project = get_object_or_404(Project, pk=kwargs.get('pk')) project = get_object_or_404(Project, pk=kwargs.get('pk'))
context = self.get_context_data(**_.merge({}, request.GET, kwargs)) context = self.get_context_data(**_.merge({}, request.GET, kwargs))
context.update({'project': project}) context.update({'project': project})
# import code; code.interact(local=dict(globals(), **locals()))
if request.user.is_authenticated() and request.user.is_customer(): if request.user.is_authenticated() and request.user.is_customer():
return render(request, self.customer_template_name, context) return render(request, self.customer_template_name, context)
else: else:

Loading…
Cancel
Save