parent
da3793495d
commit
669d1d5db0
135 changed files with 4332 additions and 3984 deletions
@ -0,0 +1,16 @@ |
|||||||
|
from django.utils import translation |
||||||
|
|
||||||
|
|
||||||
|
class LocaleMiddleware(object): |
||||||
|
""" |
||||||
|
This is a very simple middleware that parses a request |
||||||
|
and decides what translation object to install in the current |
||||||
|
thread context. This allows pages to be dynamically |
||||||
|
translated to the language the user desires (if the language |
||||||
|
is available, of course). |
||||||
|
""" |
||||||
|
|
||||||
|
def process_request(self, request): |
||||||
|
user_language = 'ru_RU' |
||||||
|
translation.activate(user_language) |
||||||
|
request.session[translation.LANGUAGE_SESSION_KEY] = user_language |
||||||
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 612 B |
|
After Width: | Height: | Size: 555 B |
@ -1,3 +1 @@ |
|||||||
from django.test import TestCase |
|
||||||
|
|
||||||
# Create your tests here. |
# Create your tests here. |
||||||
|
|||||||
@ -1,3 +1 @@ |
|||||||
from django.test import TestCase |
|
||||||
|
|
||||||
# Create your tests here. |
# Create your tests here. |
||||||
|
|||||||
Binary file not shown.
@ -0,0 +1,48 @@ |
|||||||
|
# SOME DESCRIPTIVE TITLE. |
||||||
|
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER |
||||||
|
# This file is distributed under the same license as the PACKAGE package. |
||||||
|
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. |
||||||
|
# |
||||||
|
msgid "" |
||||||
|
msgstr "" |
||||||
|
"Project-Id-Version: PACKAGE VERSION\n" |
||||||
|
"Report-Msgid-Bugs-To: \n" |
||||||
|
"POT-Creation-Date: 2016-10-14 22:49+0300\n" |
||||||
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" |
||||||
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" |
||||||
|
"Language-Team: LANGUAGE <LL@li.org>\n" |
||||||
|
"Language: \n" |
||||||
|
"MIME-Version: 1.0\n" |
||||||
|
"Content-Type: text/plain; charset=UTF-8\n" |
||||||
|
"Content-Transfer-Encoding: 8bit\n" |
||||||
|
|
||||||
|
#: templates/_trash/project_form.html:46 |
||||||
|
#: templates/contractor_portfolio_edit.html:46 |
||||||
|
#: templates/customer_project_create.html:62 |
||||||
|
#: templates/customer_project_edit.html:72 templates/project_filter.html:21 |
||||||
|
msgid "project_stage0" |
||||||
|
msgstr "Тип работы" |
||||||
|
|
||||||
|
#: templates/contractor_portfolio_edit.html:59 |
||||||
|
#: templates/customer_project_create.html:89 |
||||||
|
#: templates/customer_project_edit.html:99 templates/project_filter.html:35 |
||||||
|
msgid "project_stage1" |
||||||
|
msgstr "Стадия проекта" |
||||||
|
|
||||||
|
#: templates/contractor_portfolio_edit.html:64 |
||||||
|
#: templates/customer_project_create.html:94 |
||||||
|
#: templates/customer_project_edit.html:104 templates/project_filter.html:39 |
||||||
|
msgid "project_stage2" |
||||||
|
msgstr "Раздел" |
||||||
|
|
||||||
|
#: templates/contractor_portfolio_edit.html:69 |
||||||
|
#: templates/customer_project_create.html:99 |
||||||
|
#: templates/customer_project_edit.html:109 templates/project_filter.html:43 |
||||||
|
msgid "project_stage3" |
||||||
|
msgstr "Подраздел" |
||||||
|
|
||||||
|
#: templates/contractor_portfolio_edit.html:74 |
||||||
|
#: templates/customer_project_create.html:104 |
||||||
|
#: templates/customer_project_edit.html:114 templates/project_filter.html:47 |
||||||
|
msgid "project_stage4" |
||||||
|
msgstr "Подраздел ( доп. )" |
||||||
@ -0,0 +1,38 @@ |
|||||||
|
# -*- coding: utf-8 -*- |
||||||
|
# Generated by Django 1.9.7 on 2016-10-14 20:49 |
||||||
|
from __future__ import unicode_literals |
||||||
|
|
||||||
|
from django.db import migrations, models |
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration): |
||||||
|
|
||||||
|
dependencies = [ |
||||||
|
('projects', '0046_merge'), |
||||||
|
] |
||||||
|
|
||||||
|
operations = [ |
||||||
|
migrations.AlterModelOptions( |
||||||
|
name='buildingclassfication', |
||||||
|
options={'ordering': ['order'], 'verbose_name': 'Тип здания', 'verbose_name_plural': 'Типы зданий'}, |
||||||
|
), |
||||||
|
migrations.AlterModelOptions( |
||||||
|
name='constructiontype', |
||||||
|
options={'ordering': ['order'], 'verbose_name': 'Вид строительства', 'verbose_name_plural': 'Виды строительства'}, |
||||||
|
), |
||||||
|
migrations.AlterModelManagers( |
||||||
|
name='buildingclassfication', |
||||||
|
managers=[ |
||||||
|
], |
||||||
|
), |
||||||
|
migrations.AddField( |
||||||
|
model_name='buildingclassfication', |
||||||
|
name='order', |
||||||
|
field=models.PositiveSmallIntegerField(default=0, null=True), |
||||||
|
), |
||||||
|
migrations.AddField( |
||||||
|
model_name='constructiontype', |
||||||
|
name='order', |
||||||
|
field=models.PositiveSmallIntegerField(default=0, null=True), |
||||||
|
), |
||||||
|
] |
||||||
@ -1,279 +1,279 @@ |
|||||||
{% extends 'partials/base.html' %} |
{% extends 'partials/base.html' %} |
||||||
|
|
||||||
{% block content %} |
{% block content %} |
||||||
<div class="col-lg-12 allProjects"> |
<div class="col-lg-12 allProjects"> |
||||||
<p class="titleScore">Новый заказ</p> |
<p class="titleScore">Новый заказ</p> |
||||||
</div> |
</div> |
||||||
|
|
||||||
<form method="post"> |
<form method="post"> |
||||||
{% csrf_token %} |
{% csrf_token %} |
||||||
{{ form_project.errors }} |
{{ form_project.errors }} |
||||||
{{ form_realty.errors }} |
{{ form_realty.errors }} |
||||||
<div class="chatBlock new-rass new-rass2 disTab"> |
<div class="chatBlock new-rass new-rass2 disTab"> |
||||||
{{ project_form.errors }} |
{{ project_form.errors }} |
||||||
<div class="col-lg-9"> |
<div class="col-lg-9"> |
||||||
<p class="new-pp new-pp3">Формирование заказа</p> |
<p class="new-pp new-pp3">Формирование заказа</p> |
||||||
<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="{{ project_form.name.name }}"/> |
<input type="text" class="box-sizing" name="{{ project_form.name.name }}"/> |
||||||
{{ project_form.name.errors }} |
{{ project_form.name.errors }} |
||||||
</div> |
</div> |
||||||
<div class="textAreaBlock2 text-nn box-sizing disTab"> |
<div class="textAreaBlock2 text-nn box-sizing disTab"> |
||||||
<p>Подробно опишите задание</p> |
<p>Подробно опишите задание</p> |
||||||
<textarea name="{{ project_form.text.name }}" id="text-new"></textarea> |
<textarea name="{{ project_form.text.name }}" id="text-new"></textarea> |
||||||
</div> |
</div> |
||||||
</div> |
</div> |
||||||
<div class="col-lg-3 wrChat1"> |
<div class="col-lg-3 wrChat1"> |
||||||
<div class="messageBlock box-sizing disTab"> |
<div class="messageBlock box-sizing disTab"> |
||||||
<p>Дополнительно</p> |
<p>Дополнительно</p> |
||||||
</div> |
</div> |
||||||
<div class="col-lg-12 documentsChat"> |
<div class="col-lg-12 documentsChat"> |
||||||
{# <form action="" method="post">#} |
{# <form action="" method="post">#} |
||||||
{# <div class="upload">#} |
{# <div class="upload">#} |
||||||
{# <input type="file" name="upload"/>#} |
{# <input type="file" name="upload"/>#} |
||||||
{# <p>+ добавить файл (до 100 файлов)</p>#} |
{# <p>+ добавить файл (до 100 файлов)</p>#} |
||||||
{# </div>#} |
{# </div>#} |
||||||
{# <input type="submit" value="Submit" />#} |
{# <input type="submit" value="Submit" />#} |
||||||
{# </form>#} |
{# </form>#} |
||||||
<ul class="list-new-new"> |
{# <ul class="list-new-new">#} |
||||||
<li> |
{# <li>#} |
||||||
Архитерурное 2.jpg |
{# Архитерурное 2.jpg#} |
||||||
<span>7мб</span> |
{# <span>7мб</span>#} |
||||||
<div></div> |
{# <div></div>#} |
||||||
</li> |
{# </li>#} |
||||||
</ul> |
{# </ul>#} |
||||||
</div> |
</div> |
||||||
<p class="type-work">Тип работы:</p> |
<p class="type-work">{% trans 'project_stage0' %}:</p> |
||||||
<div class="mail-block type-work-inset"> |
<div class="mail-block type-work-inset"> |
||||||
<div class="inset-mb"> |
<div class="inset-mb"> |
||||||
<label><input type="radio" value="1" name="{{ project_form.type_work.name }}"><span></span></label> |
<label><input type="radio" value="1" name="{{ project_form.type_work.name }}"><span></span></label> |
||||||
<p>Проектирование</p> |
<p>Проектирование</p> |
||||||
</div> |
</div> |
||||||
|
|
||||||
<div class="inset-mb"> |
<div class="inset-mb"> |
||||||
<label><input type="radio" value="2" name="{{ project_form.type_work.name }}"><span></span></label> |
<label><input type="radio" value="2" name="{{ project_form.type_work.name }}"><span></span></label> |
||||||
<p>Техническое сопровождение</p> |
<p>Техническое сопровождение</p> |
||||||
</div> |
</div> |
||||||
</div> |
</div> |
||||||
<div class="textAreaBlock2 box-sizing disTab"> |
<div class="textAreaBlock2 box-sizing disTab"> |
||||||
<a href="javascriptt:void(0)" class="new-link new-lw">+ Добавить раздел</a> |
<a href="javascriptt:void(0)" class="new-link new-lw">+ Добавить раздел</a> |
||||||
</div> |
</div> |
||||||
</div> |
</div> |
||||||
|
</div> |
||||||
|
<div class="col-lg-12 new-filter"> |
||||||
|
<div class="filter clearfix"> |
||||||
|
<div class="titleF1 disTab"> |
||||||
|
<div class="col-lg-3">Специализация проекта:</div> |
||||||
|
<div class="col-lg-3"></div> |
||||||
|
<div class="col-lg-3"></div> |
||||||
|
<div class="col-lg-3"></div> |
||||||
</div> |
</div> |
||||||
<div class="col-lg-12 new-filter"> |
|
||||||
<div class="filter clearfix"> |
|
||||||
<div class="titleF1 disTab"> |
|
||||||
<div class="col-lg-3">Специализация проекта:</div> |
|
||||||
<div class="col-lg-3"></div> |
|
||||||
<div class="col-lg-3"></div> |
|
||||||
<div class="col-lg-3"></div> |
|
||||||
</div> |
|
||||||
|
|
||||||
|
|
||||||
<div class="polsF1 disTab"> |
<div class="polsF1 disTab"> |
||||||
<div class="col-lg-3"> |
<div class="col-lg-3"> |
||||||
|
|
||||||
<select id="specialization1" name="{{ project_form.specialization.name }}"> |
<select id="specialization1" name="{{ project_form.specialization.name }}"> |
||||||
</select> |
</select> |
||||||
|
|
||||||
{# {{ project_form.specialization }}#} |
{# {{ project_form.specialization }}#} |
||||||
</div> |
</div> |
||||||
<div class="col-lg-3"> |
<div class="col-lg-3"> |
||||||
<select class="selectpicker"> |
<select class="selectpicker"> |
||||||
<option>Mustard</option> |
<option>Mustard</option> |
||||||
<option>Ketchup</option> |
<option>Ketchup</option> |
||||||
<option>Relish</option> |
<option>Relish</option> |
||||||
</select> |
</select> |
||||||
</div> |
</div> |
||||||
<div class="col-lg-3"> |
<div class="col-lg-3"> |
||||||
{# <select class="selectpicker">#} |
{# <select class="selectpicker">#} |
||||||
{# <option>Mustard</option>#} |
{# <option>Mustard</option>#} |
||||||
{# <option>Ketchup</option>#} |
{# <option>Ketchup</option>#} |
||||||
{# <option>Relish</option>#} |
{# <option>Relish</option>#} |
||||||
{# </select>#} |
{# </select>#} |
||||||
</div> |
</div> |
||||||
<div class="col-lg-3"> |
<div class="col-lg-3"> |
||||||
{# <select class="selectpicker">#} |
{# <select class="selectpicker">#} |
||||||
{# <option>Mustard</option>#} |
{# <option>Mustard</option>#} |
||||||
{# <option>Ketchup</option>#} |
{# <option>Ketchup</option>#} |
||||||
{# <option>Relish</option>#} |
{# <option>Relish</option>#} |
||||||
{# </select>#} |
{# </select>#} |
||||||
</div> |
</div> |
||||||
</div> |
</div> |
||||||
<div class="titleF1 titleF2 disTab"> |
<div class="titleF1 titleF2 disTab"> |
||||||
<div class="col-lg-4">Бюджет</div> |
<div class="col-lg-4">Бюджет</div> |
||||||
<div class="col-lg-8"></div> |
<div class="col-lg-8"></div> |
||||||
</div> |
</div> |
||||||
<div class="searchF1 polsF1 polsFF"> |
<div class="searchF1 polsF1 polsFF"> |
||||||
<div class="col-lg-4"> |
<div class="col-lg-4"> |
||||||
<input type="text" name="{{ project_form.price.name }}" class="box-sizing surr"> |
<input type="text" name="{{ project_form.price.name }}" class="box-sizing surr"> |
||||||
<select class="selectpicker2 valul"> |
<select class="selectpicker2 valul"> |
||||||
<option>$</option> |
<option>$</option> |
||||||
<option>$</option> |
<option>$</option> |
||||||
<option>$</option> |
<option>$</option> |
||||||
</select> |
</select> |
||||||
</div> |
</div> |
||||||
<div class="col-lg-3"> |
<div class="col-lg-3"> |
||||||
<select class="selectpicker"> |
<select class="selectpicker"> |
||||||
<option>За проект</option> |
<option>За проект</option> |
||||||
<option>Ketchup</option> |
<option>Ketchup</option> |
||||||
<option>Relish</option> |
<option>Relish</option> |
||||||
</select> |
</select> |
||||||
</div> |
</div> |
||||||
<div class="col-lg-5 dog-new"> |
<div class="col-lg-5 dog-new"> |
||||||
<label><input type="checkbox" name="dogovor"><span></span></label> |
<label><input type="checkbox" name="dogovor"><span></span></label> |
||||||
<p>или по договоренности</p> |
<p>или по договоренности</p> |
||||||
</div> |
</div> |
||||||
</div> |
</div> |
||||||
<div class="searchF1 polsF1 polsFF make-new"> |
<div class="searchF1 polsF1 polsFF make-new"> |
||||||
<label><input type="checkbox" name="dogovor"><span></span></label> |
<label><input type="checkbox" name="dogovor"><span></span></label> |
||||||
<p>Сделать для исполнителей обязательным для заполнения поля цена и срок</p> |
<p>Сделать для исполнителей обязательным для заполнения поля цена и срок</p> |
||||||
</div> |
</div> |
||||||
<div class="titleF1 titleF2 disTab"> |
<div class="titleF1 titleF2 disTab"> |
||||||
<div class="col-lg-12">Способ оплаты</div> |
<div class="col-lg-12">Способ оплаты</div> |
||||||
</div> |
</div> |
||||||
<div class="searchF1 polsF1 polsFF radio-afer"> |
<div class="searchF1 polsF1 polsFF radio-afer"> |
||||||
<div class="col-lg-6"> |
<div class="col-lg-6"> |
||||||
<label><input type="radio" name="afer"><span></span></label> |
<label><input type="radio" name="afer"><span></span></label> |
||||||
<p class="text-afer"> |
<p class="text-afer"> |
||||||
Безопасная сделка (с резервированием бюджета) |
Безопасная сделка (с резервированием бюджета) |
||||||
</p> |
</p> |
||||||
<p class="des-afer"> |
<p class="des-afer"> |
||||||
Текст |
Текст |
||||||
</p> |
</p> |
||||||
</div> |
</div> |
||||||
<div class="col-lg-6"> |
<div class="col-lg-6"> |
||||||
<label><input type="radio" name="afer"><span></span></label> |
<label><input type="radio" name="afer"><span></span></label> |
||||||
<p class="text-afer"> |
<p class="text-afer"> |
||||||
Прямая оплата Исполнителю на его кошелек/счет |
Прямая оплата Исполнителю на его кошелек/счет |
||||||
</p> |
</p> |
||||||
<p class="des-afer"> |
<p class="des-afer"> |
||||||
Текст |
Текст |
||||||
</p> |
</p> |
||||||
</div> |
</div> |
||||||
</div> |
</div> |
||||||
<div class="resSearchF1"> |
<div class="resSearchF1"> |
||||||
<div class="col-lg-3"> |
<div class="col-lg-3"> |
||||||
<p class="titleResF1">Расширенный поиск</p> |
<p class="titleResF1">Расширенный поиск</p> |
||||||
<button class="resButtonF1"> |
<button class="resButtonF1"> |
||||||
<span class="glyphicon glyphicon-arrow-up" aria-hidden="true"></span> |
<span class="glyphicon glyphicon-arrow-up" aria-hidden="true"></span> |
||||||
</button> |
</button> |
||||||
</div> |
</div> |
||||||
<div class="col-lg-9"> |
<div class="col-lg-9"> |
||||||
<div class="borderS1"></div> |
<div class="borderS1"></div> |
||||||
</div> |
</div> |
||||||
</div> |
</div> |
||||||
<div class="slideRes disTab activeSlide"> |
<div class="slideRes disTab activeSlide"> |
||||||
<div class="titleF1 disTab"> |
<div class="titleF1 disTab"> |
||||||
<div class="col-lg-3">Выбор объекта:</div> |
<div class="col-lg-3">Выбор объекта:</div> |
||||||
<div class="col-lg-3">Наименование:</div> |
<div class="col-lg-3">Наименование:</div> |
||||||
<div class="col-lg-3">Классификация здания:</div> |
<div class="col-lg-3">Классификация здания:</div> |
||||||
<div class="col-lg-3">Вид строительства:</div> |
<div class="col-lg-3">Вид строительства:</div> |
||||||
</div> |
</div> |
||||||
<div class="polsF1 polsF2 disTab"> |
<div class="polsF1 polsF2 disTab"> |
||||||
<div class="col-lg-3"> |
<div class="col-lg-3"> |
||||||
<select class="selectpicker" > |
<select class="selectpicker"> |
||||||
<option>Mustard</option> |
<option>Mustard</option> |
||||||
<option>Ketchup</option> |
<option>Ketchup</option> |
||||||
<option>Relish</option> |
<option>Relish</option> |
||||||
</select> |
</select> |
||||||
</div> |
</div> |
||||||
<div class="col-lg-3"> |
<div class="col-lg-3"> |
||||||
<input type="text" class="box-sizing surr surr2" name="{{ realty_form.name.name }}"> |
<input type="text" class="box-sizing surr surr2" name="{{ realty_form.name.name }}"> |
||||||
</div> |
</div> |
||||||
<div class="col-lg-3"> |
<div class="col-lg-3"> |
||||||
<select class="selectpicker" name="{{ realty_form.building_classification.name }}"> |
<select class="selectpicker" name="{{ realty_form.building_classification.name }}"> |
||||||
<option>Mustard</option> |
<option>Mustard</option> |
||||||
<option>Ketchup</option> |
<option>Ketchup</option> |
||||||
<option>Relish</option> |
<option>Relish</option> |
||||||
</select> |
</select> |
||||||
</div> |
</div> |
||||||
<div class="col-lg-3"> |
<div class="col-lg-3"> |
||||||
<select class="selectpicker" name="{{ realty_form.type_construction.name }}"> |
<select class="selectpicker" name="{{ realty_form.type_construction.name }}"> |
||||||
<option>Mustard</option> |
<option>Mustard</option> |
||||||
<option>Ketchup</option> |
<option>Ketchup</option> |
||||||
<option>Relish</option> |
<option>Relish</option> |
||||||
</select> |
</select> |
||||||
</div> |
</div> |
||||||
</div> |
</div> |
||||||
<div class="titleF1 disTab"> |
<div class="titleF1 disTab"> |
||||||
<div class="col-lg-12">Местоположение:</div> |
<div class="col-lg-12">Местоположение:</div> |
||||||
</div> |
</div> |
||||||
<div class="polsF1 polsF2 disTab"> |
<div class="polsF1 polsF2 disTab"> |
||||||
<div class="col-lg-3"> |
<div class="col-lg-3"> |
||||||
<select class="selectpicker" name="{{ realty_form.country.name }}"> |
<select class="selectpicker" name="{{ realty_form.country.name }}"> |
||||||
<option>Страна</option> |
<option>Страна</option> |
||||||
<option>Ketchup</option> |
<option>Ketchup</option> |
||||||
<option>Relish</option> |
<option>Relish</option> |
||||||
</select> |
</select> |
||||||
</div> |
</div> |
||||||
<div class="col-lg-3"> |
<div class="col-lg-3"> |
||||||
<select class="selectpicker" {{ realty_form.city.name }}> |
<select class="selectpicker" {{ realty_form.city.name }}> |
||||||
<option>Город</option> |
<option>Город</option> |
||||||
<option>Ketchup</option> |
<option>Ketchup</option> |
||||||
<option>Relish</option> |
<option>Relish</option> |
||||||
</select> |
</select> |
||||||
</div> |
</div> |
||||||
<div class="col-lg-6 make-new"> |
<div class="col-lg-6 make-new"> |
||||||
<label><input type="checkbox" name="dogovor"><span></span></label> |
<label><input type="checkbox" name="dogovor"><span></span></label> |
||||||
<p>Требуется допуск СРО</p> |
<p>Требуется допуск СРО</p> |
||||||
</div> |
</div> |
||||||
</div> |
</div> |
||||||
|
|
||||||
<div class="searchF1 polsF1 polsFF links-filter"> |
<div class="searchF1 polsF1 polsFF links-filter"> |
||||||
<input style="border-radius: 40px; |
<input style="border-radius: 40px; |
||||||
font-family: 'pfdintextcomppro-regular', sans-serif;color: black;font-size: 16px;padding: 17px 33px 17px 33px; |
font-family: 'pfdintextcomppro-regular', sans-serif;color: black;font-size: 16px;padding: 17px 33px 17px 33px; |
||||||
float: left;margin: 0 15px 48px 15px;border: 1px solid #DFDFDF;text-transform: uppercase; |
float: left;margin: 0 15px 48px 15px;border: 1px solid #DFDFDF;text-transform: uppercase; |
||||||
letter-spacing: 2px;color: #42B476;border: 1px solid #42B476" type="submit" value="Разместить проект" /> |
letter-spacing: 2px;color: #42B476;border: 1px solid #42B476" type="submit" value="Разместить проект"/> |
||||||
<a href="javascript:void(0)">Сохранить</a> |
<a href="javascript:void(0)">Сохранить</a> |
||||||
|
|
||||||
</div> |
</div> |
||||||
|
|
||||||
</div> |
|
||||||
</div> |
|
||||||
|
|
||||||
</div> |
</div> |
||||||
|
</div> |
||||||
|
|
||||||
|
</div> |
||||||
|
|
||||||
|
|
||||||
</form> |
</form> |
||||||
|
|
||||||
{% endblock %} |
{% endblock %} |
||||||
{% block js_block %} |
{% block js_block %} |
||||||
<script type="text/javascript"> |
<script type="text/javascript"> |
||||||
$(function () { |
$(function () { |
||||||
|
|
||||||
|
function updateSelectData() { |
||||||
|
|
||||||
function updateSelectData(){ |
|
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
} |
$.ajax({ |
||||||
$.ajax({ |
url: '/api/specializations?parent=1', |
||||||
url: '/api/specializations?parent=1', |
type: 'GET', |
||||||
type: 'GET', |
dataType: 'json', |
||||||
dataType: 'json', |
success: function (json) { |
||||||
success: function (json) { |
|
||||||
|
|
||||||
console.log(json.results); |
console.log(json.results); |
||||||
var out = '' |
var out = '' |
||||||
$.each(json.results, function (i, v) { |
$.each(json.results, function (i, v) { |
||||||
$('#specialization1') |
$('#specialization1') |
||||||
.append($("<option></option>") |
.append($("<option></option>") |
||||||
.attr("value", v.name) |
.attr("value", v.name) |
||||||
.text(v.name)); |
.text(v.name)); |
||||||
}); |
}); |
||||||
|
|
||||||
$("#specialization1").addClass("selectpicker"); |
$("#specialization1").addClass("selectpicker"); |
||||||
$('.selectpicker').selectpicker({ |
$('.selectpicker').selectpicker({ |
||||||
style: 'btn-info', |
style: 'btn-info', |
||||||
size: 4, |
size: 4, |
||||||
width: '237px' |
width: '237px' |
||||||
}); |
}); |
||||||
} |
} |
||||||
}); |
}); |
||||||
|
|
||||||
$("#specialization1").on("change",function(){ |
$("#specialization1").on("change", function () { |
||||||
|
|
||||||
}); |
}); |
||||||
}); |
}); |
||||||
</script> |
</script> |
||||||
{% endblock %} |
{% endblock %} |
||||||
|
|||||||
@ -1,18 +1,18 @@ |
|||||||
<form method="post" action="">{% csrf_token %} |
<form method="post" action="">{% csrf_token %} |
||||||
{{ form.as_p }} |
{{ form.as_p }} |
||||||
|
|
||||||
<fieldset> |
<fieldset> |
||||||
<legend>Photos</legend> |
<legend>Photos</legend> |
||||||
{{ portfolio_photo_form.management_form }} |
{{ portfolio_photo_form.management_form }} |
||||||
{{ portfolio_photo_form.non_form_errors }} |
{{ portfolio_photo_form.non_form_errors }} |
||||||
{% for form in portfolio_photo_form %} |
{% for form in portfolio_photo_form %} |
||||||
{{ form.id }} |
{{ form.id }} |
||||||
<div class="inline {{ portfolio_photo_form.prefix }}"> |
<div class="inline {{ portfolio_photo_form.prefix }}"> |
||||||
{{ form.img.errors }} |
{{ form.img.errors }} |
||||||
{{ form.img.label_tag }} |
{{ form.img.label_tag }} |
||||||
{{ form.img }} |
{{ form.img }} |
||||||
</div> |
</div> |
||||||
{% endfor %} |
{% endfor %} |
||||||
</fieldset> |
</fieldset> |
||||||
<input type="submit" value="Add portfolio" class="submit" /> |
<input type="submit" value="Add portfolio" class="submit"/> |
||||||
</form> |
</form> |
||||||
|
|||||||
@ -1,177 +1,184 @@ |
|||||||
{% extends 'partials/base.html' %} |
{% extends 'partials/base.html' %} |
||||||
|
|
||||||
{% load thumbnail %} |
{% load thumbnail %} |
||||||
|
{% load i18n %} |
||||||
|
|
||||||
{% block head_css %} |
{% block head_css %} |
||||||
<style> |
<style> |
||||||
.-live-image-upload-container .-position-relative-parent {position: relative} |
.-live-image-upload-container .-position-relative-parent { |
||||||
|
position: relative |
||||||
.-live-image-upload-container .-image-delete, |
} |
||||||
.-live-image-upload-container .-live-image-delete { |
|
||||||
position: absolute; |
.-live-image-upload-container .-image-delete, |
||||||
top: 0; |
.-live-image-upload-container .-live-image-delete { |
||||||
right: 0; |
position: absolute; |
||||||
background-color: white; |
top: 0; |
||||||
} |
right: 0; |
||||||
</style> |
background-color: white; |
||||||
|
} |
||||||
|
</style> |
||||||
{% endblock %} |
{% endblock %} |
||||||
|
|
||||||
{% block content %} |
{% block content %} |
||||||
{% include 'partials/header.html' %} |
{% include 'partials/header.html' %} |
||||||
|
|
||||||
<div class="container mainScore"> |
<div class="container mainScore"> |
||||||
<div class="row"> |
<div class="row"> |
||||||
<div class="col-lg-12 allProjects"> |
<div class="col-lg-12 allProjects"> |
||||||
<p class="titleScore">Изменение портфолио</p> |
<p class="titleScore">Изменение портфолио</p> |
||||||
</div> |
</div> |
||||||
|
|
||||||
<form method="post" enctype="multipart/form-data" id="worksell-add-form" class="-spec-work-type-combo-container"> |
<form method="post" enctype="multipart/form-data" id="worksell-add-form" class="-spec-work-type-combo-container"> |
||||||
{% csrf_token %} |
{% csrf_token %} |
||||||
|
|
||||||
{{ form.errors }} |
{{ form.errors }} |
||||||
|
|
||||||
<div class="textAreaBlock2 text-nn box-sizing disTab"> |
<div class="textAreaBlock2 text-nn box-sizing disTab"> |
||||||
<p>Название <span style="color: red">{{ form.name.errors.as_text }}</span></p> |
<p>Название <span style="color: red">{{ form.name.errors.as_text }}</span></p> |
||||||
<input type="text" class="box-sizing" name="{{ form.name.html_name }}" value="{{ form.name.value }}"> |
<input type="text" class="box-sizing" name="{{ form.name.html_name }}" value="{{ form.name.value }}"> |
||||||
<input type="hidden" name="{{ form.contractor.html_name }}" value="{{ form.contractor.value }}" /> |
<input type="hidden" name="{{ form.contractor.html_name }}" value="{{ form.contractor.value }}"/> |
||||||
</div> |
</div> |
||||||
|
|
||||||
<div class="textAreaBlock2 text-nn box-sizing disTab"> |
<div class="textAreaBlock2 text-nn box-sizing disTab"> |
||||||
<p>Описание<span style="color: red">{{ form.description.errors.as_text }}</span></p> |
<p>Описание<span style="color: red">{{ form.description.errors.as_text }}</span></p> |
||||||
<textarea name="{{ form.description.html_name }}" id="text-new">{{ form.description.value }}</textarea> |
<textarea name="{{ form.description.html_name }}" id="text-new">{{ form.description.value }}</textarea> |
||||||
</div> |
</div> |
||||||
|
|
||||||
<div class="textAreaBlock2 text-nn box-sizing disTab"> |
<div class="textAreaBlock2 text-nn box-sizing disTab"> |
||||||
<p>Тип работы <span style="color: red">{{ form.work_type.errors.as_text }}</span></p> |
<p>{% trans 'project_stage0' %} <span style="color: red">{{ form.work_type.errors.as_text }}</span></p> |
||||||
</div> |
</div> |
||||||
|
|
||||||
<div class="col-lg-3"> |
<div class="col-lg-3"> |
||||||
<div class="polsF1 disTab" style="padding:0;"> |
<div class="polsF1 disTab" style="padding:0;"> |
||||||
{{ form.work_type }} |
{{ form.work_type }} |
||||||
</div> |
</div> |
||||||
</div> |
</div> |
||||||
|
|
||||||
<div class="textAreaBlock2 text-nn box-sizing disTab"> |
<div class="textAreaBlock2 text-nn box-sizing disTab"> |
||||||
</div> |
</div> |
||||||
|
|
||||||
<div class="col-lg-3 -single-spec-select"> |
<div class="col-lg-3 -single-spec-select"> |
||||||
<div class="-bold">Стадия проекта <span style="color: red">{{ form.specialization.errors.as_text }}</span></div> |
<div class="-bold">{% trans 'project_stage1' %} <span |
||||||
<input type='hidden' class="-spec-select -spec-select-level-1" style="width: 100%"> |
style="color: red">{{ form.specialization.errors.as_text }}</span></div> |
||||||
</div> |
<input type='hidden' class="-spec-select -spec-select-level-1" style="width: 100%"> |
||||||
|
</div> |
||||||
|
|
||||||
<div class="col-lg-3 -single-spec-select"> |
<div class="col-lg-3 -single-spec-select"> |
||||||
<div class="-bold"><span class="-dynamic-label">Стадия проекта</span></div> |
<div class="-bold"><span class="-dynamic-label">{% trans 'project_stage2' %}</span></div> |
||||||
<input type='hidden' class="-spec-select -spec-select-level-2" style="width: 100%"> |
<input type='hidden' class="-spec-select -spec-select-level-2" style="width: 100%"> |
||||||
</div> |
</div> |
||||||
|
|
||||||
<div class="col-lg-3 -single-spec-select"> |
<div class="col-lg-3 -single-spec-select"> |
||||||
<div class="-bold">Раздел</div> |
<div class="-bold">{% trans 'project_stage3' %}</div> |
||||||
<input type='hidden' class="-spec-select -spec-select-level-3" style="width: 100%"> |
<input type='hidden' class="-spec-select -spec-select-level-3" style="width: 100%"> |
||||||
</div> |
</div> |
||||||
|
|
||||||
<div class="col-lg-3 -single-spec-select"> |
<div class="col-lg-3 -single-spec-select"> |
||||||
<div class="-bold">Подраздел</div> |
<div class="-bold">{% trans 'project_stage4' %}</div> |
||||||
<input type='hidden' class="-spec-select -spec-select-level-4" style="width: 100%"> |
<input type='hidden' class="-spec-select -spec-select-level-4" style="width: 100%"> |
||||||
</div> |
</div> |
||||||
|
|
||||||
<input type="hidden" class="-chosen-spec-id" name="{{ form.specialization.html_name }}" |
<input type="hidden" class="-chosen-spec-id" name="{{ form.specialization.html_name }}" |
||||||
value="{{ form.specialization.value }}"> |
value="{{ form.specialization.value }}"> |
||||||
|
|
||||||
<div class="textAreaBlock2 text-nn box-sizing disTab"> |
<div class="textAreaBlock2 text-nn box-sizing disTab"> |
||||||
<p>Бюджет{{ form.budget.errors.as_text }}</p> |
<p>Бюджет{{ form.budget.errors.as_text }}</p> |
||||||
<div class="row"> |
<div class="row"> |
||||||
<div class="col-lg-8"> |
<div class="col-lg-8"> |
||||||
<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 class="col-lg-4"> |
|
||||||
{{ form.currency}} |
|
||||||
</div> |
|
||||||
</div> |
</div> |
||||||
</div> |
<div class="col-lg-4"> |
||||||
|
{{ form.currency }} |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
|
||||||
<div class="textAreaBlock2 text-nn box-sizing disTab"> |
<div class="textAreaBlock2 text-nn box-sizing disTab"> |
||||||
<p>Срок выполнения{{ form.budget.errors.as_text }}</p> |
<p>Срок выполнения{{ form.budget.errors.as_text }}</p> |
||||||
<div class="row"> |
<div class="row"> |
||||||
<div class="col-lg-8"> |
<div class="col-lg-8"> |
||||||
<input type="text" class="box-sizing" name="{{ form.term.html_name }}" value="{{ form.term.value }}"> |
<input type="text" class="box-sizing" name="{{ form.term.html_name }}" value="{{ form.term.value }}"> |
||||||
</div> |
|
||||||
<div class="col-lg-4"> |
|
||||||
{{ form.term_type }} |
|
||||||
</div> |
|
||||||
</div> |
</div> |
||||||
</div> |
<div class="col-lg-4"> |
||||||
|
{{ form.term_type }} |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
|
||||||
<div class="textAreaBlock2 text-nn box-sizing disTab"> |
<div class="textAreaBlock2 text-nn box-sizing disTab"> |
||||||
</div> |
</div> |
||||||
<div class="polsF1 polsF2 disTab"> |
<div class="polsF1 polsF2 disTab"> |
||||||
<p>Вид строительства</p> |
<p>Вид строительства</p> |
||||||
{{ form.construction_type}} |
{{ form.construction_type }} |
||||||
</div> |
</div> |
||||||
|
|
||||||
<div class="polsF1 polsF2 disTab"> |
<div class="polsF1 polsF2 disTab"> |
||||||
<p>Классификация здания</p> |
<p>Классификация здания</p> |
||||||
{{ form.building_classification}} |
{{ form.building_classification }} |
||||||
|
|
||||||
</div> |
</div> |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="textAreaBlock2 text-nn box-sizing disTab -live-image-upload-container"> |
<div class="textAreaBlock2 text-nn box-sizing disTab -live-image-upload-container"> |
||||||
<p>Фотографии</p> |
<p>Фотографии</p> |
||||||
|
|
||||||
{% for photo in form.photos.field.queryset.all %} |
{% for photo in form.photos.field.queryset.all %} |
||||||
<div class="col-lg-3 -image-widget"> |
<div class="col-lg-3 -image-widget"> |
||||||
<div class="-position-relative-parent" style="display: inline-block"> |
<div class="-position-relative-parent" style="display: inline-block"> |
||||||
<a href="#" onclick="return false" class="btn close -image-delete">×</a> |
<a href="#" onclick="return false" class="btn close -image-delete">×</a> |
||||||
|
|
||||||
{% thumbnail photo.img "200x200" crop="center" as img %} |
{% thumbnail photo.img "200x200" crop="center" as img %} |
||||||
<img src="{{ img.url }}"> |
<img src="{{ img.url }}"> |
||||||
{% endthumbnail %} |
{% endthumbnail %} |
||||||
</div> |
</div> |
||||||
|
|
||||||
<input type="checkbox" name="{{ form.photos.html_name }}" value="{{ photo.pk }}" checked style='display: none'> |
<input type="checkbox" name="{{ form.photos.html_name }}" value="{{ photo.pk }}" checked |
||||||
</div> |
style='display: none'> |
||||||
{% endfor %} |
|
||||||
|
|
||||||
<script type="text/x-template" class="-templ"> |
|
||||||
<% images.forEach(function(image) { %> |
|
||||||
<div class="col-lg-3"> |
|
||||||
<div class="-position-relative-parent" style="display: inline-block"> |
|
||||||
<a href="#" onclick="return false" data-image-id="<%- image.id %>" class="btn close -live-image-delete">×</a> |
|
||||||
<img src="<%- image.smallThumbnailUrl %>"> |
|
||||||
</div> |
|
||||||
|
|
||||||
<input type="checkbox" name="{{ form.live_images.html_name }}" value="<%- image.id %>" checked style='display: none'> |
|
||||||
</div> |
|
||||||
<% }) %> |
|
||||||
</script> |
|
||||||
|
|
||||||
<div class="-res"></div> |
|
||||||
|
|
||||||
<div class="col-xs-12"> |
|
||||||
<input type="file" name="image" multiple class="-live-image-upload-field" style="display: none"> |
|
||||||
|
|
||||||
<a href="#" onclick="$(this).closest('.-live-image-upload-container').find('.-live-image-upload-field').first().click(); return false" class="btn btn-default add_file_to_port"> |
|
||||||
Выберите файлы |
|
||||||
</a> |
|
||||||
</div> |
</div> |
||||||
</div> |
{% endfor %} |
||||||
|
|
||||||
|
<script type="text/x-template" class="-templ"> |
||||||
|
<% images.forEach(function(image) { %> |
||||||
|
<div class="col-lg-3"> |
||||||
|
<div class="-position-relative-parent" style="display: inline-block"> |
||||||
|
<a href="#" onclick="return false" data-image-id="<%- image.id %>" |
||||||
|
class="btn close -live-image-delete">×</a> |
||||||
|
<img src="<%- image.smallThumbnailUrl %>"> |
||||||
|
</div> |
||||||
|
|
||||||
|
<input type="checkbox" name="{{ form.live_images.html_name }}" value="<%- image.id %>" checked |
||||||
|
style='display: none'> |
||||||
|
</div> |
||||||
|
<% }) %> |
||||||
|
</script> |
||||||
|
|
||||||
|
<div class="-res"></div> |
||||||
|
|
||||||
|
<div class="col-xs-12"> |
||||||
|
<input type="file" name="image" multiple class="-live-image-upload-field" style="display: none"> |
||||||
|
|
||||||
|
<a href="#" |
||||||
|
onclick="$(this).closest('.-live-image-upload-container').find('.-live-image-upload-field').first().click(); return false" |
||||||
|
class="btn btn-default add_file_to_port"> |
||||||
|
Выберите файлы |
||||||
|
</a> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
|
||||||
|
|
||||||
<div class="textAreaBlock2 text-nn box-sizing disTab"> |
<div class="textAreaBlock2 text-nn box-sizing disTab"> |
||||||
|
|
||||||
</div> |
</div> |
||||||
<div class="searchF1 polsF1 polsFF links-filter"> |
<div class="searchF1 polsF1 polsFF links-filter"> |
||||||
<input type="submit" value="Сохранить" class="btn-submit-link add_file_to_port"> |
<input type="submit" value="Сохранить" class="btn-submit-link add_file_to_port"> |
||||||
<a href="{% url 'users:contractor-profile' request.user.pk %}" class="btn-submit-link add_file_to_port">Отмена</a> |
<a href="{% url 'users:contractor-profile' request.user.pk %}" |
||||||
|
class="btn-submit-link add_file_to_port">Отмена</a> |
||||||
|
|
||||||
</div> |
|
||||||
|
|
||||||
</form> |
|
||||||
{% include 'partials/footer.html' %} |
|
||||||
</div> |
</div> |
||||||
|
|
||||||
|
</form> |
||||||
|
{% include 'partials/footer.html' %} |
||||||
</div> |
</div> |
||||||
|
</div> |
||||||
{% endblock %} |
{% endblock %} |
||||||
|
|||||||
@ -1,346 +1,410 @@ |
|||||||
{% extends 'partials/base.html' %} |
{% extends 'partials/base.html' %} |
||||||
|
{% load i18n %} |
||||||
|
|
||||||
{% block head_css %} |
{% block head_css %} |
||||||
<style> |
<style> |
||||||
.-error, .errorlist {color: red} |
.-error, .errorlist { |
||||||
</style> |
color: red |
||||||
|
} |
||||||
|
</style> |
||||||
{% endblock %} |
{% endblock %} |
||||||
|
|
||||||
|
|
||||||
{% block content %} |
{% block content %} |
||||||
{% include 'partials/modals/project_work_type_suggestion.html' %} |
{% include 'partials/modals/project_work_type_suggestion.html' %} |
||||||
{% include 'partials/header.html' %} |
{% include 'partials/header.html' %} |
||||||
|
|
||||||
|
<div class="container mainScore"> |
||||||
|
<div class="row"> |
||||||
|
<div class="col-lg-12 allProjects"> |
||||||
|
<p class="titleScore">Новый заказ</p> |
||||||
|
</div> |
||||||
|
|
||||||
|
<form action="{% url 'projects:customer-project-create' %}" method="POST" enctype="multipart/form-data" novalidate |
||||||
|
class="-spec-work-type-combo-container"> |
||||||
|
{% csrf_token %} |
||||||
|
|
||||||
|
<input type="hidden" id="extraFields" name="extra_fields" value=""> |
||||||
|
|
||||||
|
<div class="chatBlock new-rass new-rass2 disTab"> |
||||||
|
<div class="col-lg-9"> |
||||||
|
<p class="new-pp new-pp3">Формирование заказа</p> |
||||||
|
|
||||||
|
{% if form.non_field_errors %} |
||||||
|
<div class="new-pp3" style="color: red; margin-top: 70px">{{ form.non_field_errors }}</div> |
||||||
|
{% endif %} |
||||||
|
|
||||||
|
<div class="textAreaBlock2 text-nn box-sizing disTab"> |
||||||
|
<p class="titleResF1">Название заказа <span data-tooltip data-placement="{% tooltip_placement pk=4 %}" |
||||||
|
title="{% tooltip pk=4 %}" |
||||||
|
class="-green-glyphicon glyphicon glyphicon-question-sign"></span> |
||||||
|
<span id="{% random_ident %}" class="-validation-error" |
||||||
|
style="color: red">{{ form.name.errors.as_text }}</span></p> |
||||||
|
<input type="text" class="box-sizing" name="{{ form.name.html_name }}" value="{{ form.name.value }}"> |
||||||
|
</div> |
||||||
|
|
||||||
<div class="container mainScore"> |
<div class="textAreaBlock2 text-nn box-sizing disTab"> |
||||||
<div class="row"> |
<p class="titleResF1">Подробно опишите задание <span data-tooltip |
||||||
<div class="col-lg-12 allProjects"> |
data-placement="{% tooltip_placement pk=5 %}" |
||||||
<p class="titleScore">Новый заказ</p> |
title="{% tooltip pk=5 %}" |
||||||
|
class="-green-glyphicon glyphicon glyphicon-question-sign"></span> |
||||||
|
<span id="{% random_ident %}" class="-validation-error" |
||||||
|
style="color: red">{{ form.text.errors.as_text }}</span></p> |
||||||
|
<textarea name="{{ form.text.html_name }}" id="text-new" |
||||||
|
style="margin-top:0;">{{ form.text.value }}</textarea> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div class="col-lg-3 wrChat1"> |
||||||
|
<div class="messageBlock box-sizing disTab"> |
||||||
|
<p>Дополнительно</p> |
||||||
|
</div> |
||||||
|
<div id="fileUploadContainer" class="col-lg-12 documentsChat"> |
||||||
|
<div class="upload"> |
||||||
|
<p id="fileUploadAddBtn" style="margin: 0">+ добавить файл (до 100 файлов)</p> |
||||||
|
</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"> |
||||||
|
<p class="file-upload-label"></p> |
||||||
|
<div class="file-upload-remove-btn"></div> |
||||||
|
</li> |
||||||
|
</ul> |
||||||
</div> |
</div> |
||||||
|
|
||||||
<form action="{% url 'projects:customer-project-create' %}" method="POST" enctype="multipart/form-data" novalidate class="-spec-work-type-combo-container"> |
<p class="type-work">{% trans 'project_stage0' %} <span data-tooltip |
||||||
{% csrf_token %} |
data-placement="{% tooltip_placement pk=6 %}" |
||||||
|
title="{% tooltip pk=6 %}" |
||||||
<input type="hidden" id="extraFields" name="extra_fields" value=""> |
class="-green-glyphicon glyphicon glyphicon-question-sign"></span> |
||||||
|
<span id="{% random_ident %}" class="-validation-error" |
||||||
<div class="chatBlock new-rass new-rass2 disTab"> |
style="color: red">{{ form.work_type.errors.as_text }}</span></p> |
||||||
<div class="col-lg-9"> |
<div class="mail-block type-work-inset -project-work-type-radios-container"> |
||||||
<p class="new-pp new-pp3">Формирование заказа</p> |
{% for id, text in form.work_type.field.choices %} |
||||||
|
<div class="inset-mb"> |
||||||
{% if form.non_field_errors %} |
<label> |
||||||
<div class="new-pp3" style="color: red; margin-top: 70px">{{ form.non_field_errors }}</div> |
<input |
||||||
{% endif %} |
type="radio" |
||||||
|
value="{{ id }}" |
||||||
<div class="textAreaBlock2 text-nn box-sizing disTab"> |
{% if form.work_type.value|int == id %}checked{% endif %} |
||||||
<p class="titleResF1">Название заказа <span data-tooltip data-placement="{% tooltip_placement pk=4 %}" title="{% tooltip pk=4 %}" class="-green-glyphicon glyphicon glyphicon-question-sign"></span> <span id="{% random_ident %}" class="-validation-error" style="color: red">{{ form.name.errors.as_text }}</span></p> |
name="{{ form.work_type.html_name }}"> |
||||||
<input type="text" class="box-sizing" name="{{ form.name.html_name }}" value="{{ form.name.value }}"> |
|
||||||
</div> |
<span></span> |
||||||
|
</label> |
||||||
<div class="textAreaBlock2 text-nn box-sizing disTab"> |
|
||||||
<p class="titleResF1">Подробно опишите задание <span data-tooltip data-placement="{% tooltip_placement pk=5 %}" title="{% tooltip pk=5 %}" class="-green-glyphicon glyphicon glyphicon-question-sign"></span> <span id="{% random_ident %}" class="-validation-error" style="color: red">{{ form.text.errors.as_text }}</span></p> |
<p>{{ text }}</p> |
||||||
<textarea name="{{ form.text.html_name }}" id="text-new" style="margin-top:0;">{{ form.text.value }}</textarea> |
|
||||||
</div> |
|
||||||
</div> |
|
||||||
<div class="col-lg-3 wrChat1"> |
|
||||||
<div class="messageBlock box-sizing disTab"> |
|
||||||
<p>Дополнительно</p> |
|
||||||
</div> |
|
||||||
<div id="fileUploadContainer" class="col-lg-12 documentsChat"> |
|
||||||
<div class="upload"> |
|
||||||
<p id="fileUploadAddBtn" style="margin: 0">+ добавить файл (до 100 файлов)</p> |
|
||||||
</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"> |
|
||||||
<p class="file-upload-label"></p> |
|
||||||
<div class="file-upload-remove-btn"></div> |
|
||||||
</li> |
|
||||||
</ul> |
|
||||||
</div> |
|
||||||
|
|
||||||
<p class="type-work">Тип работы <span data-tooltip data-placement="{% tooltip_placement pk=6 %}" title="{% tooltip pk=6 %}" class="-green-glyphicon glyphicon glyphicon-question-sign"></span> <span id="{% random_ident %}" class="-validation-error" style="color: red">{{ form.work_type.errors.as_text }}</span></p> |
|
||||||
<div class="mail-block type-work-inset -project-work-type-radios-container"> |
|
||||||
{% for id, text in form.work_type.field.choices %} |
|
||||||
<div class="inset-mb"> |
|
||||||
<label> |
|
||||||
<input |
|
||||||
type="radio" |
|
||||||
value="{{ id }}" |
|
||||||
{% if form.work_type.value|int == id %}checked{% endif %} |
|
||||||
name="{{ form.work_type.html_name }}"> |
|
||||||
|
|
||||||
<span></span> |
|
||||||
</label> |
|
||||||
|
|
||||||
<p>{{ text }}</p> |
|
||||||
</div> |
|
||||||
{% endfor %} |
|
||||||
</div> |
|
||||||
<div class="textAreaBlock2 box-sizing disTab"> |
|
||||||
<a href="#" onclick="return false" data-toggle="modal" data-target="#projectWorkTypeSuggestionModal" class="new-link new-lw">+ Добавить раздел</a> |
|
||||||
</div> |
|
||||||
</div> |
|
||||||
</div> |
</div> |
||||||
<div class="col-lg-12 new-filter"> |
{% endfor %} |
||||||
<div class="filter clearfix"> |
</div> |
||||||
<div class="polsF1 disTab"> |
<div class="textAreaBlock2 box-sizing disTab"> |
||||||
<div class="col-lg-3 -single-spec-select"> |
<a href="#" onclick="return false" data-toggle="modal" data-target="#projectWorkTypeSuggestionModal" |
||||||
<div class="-bold">Стадия проекта <span data-tooltip data-placement="{% tooltip_placement pk=7 %}" title="{% tooltip pk=7 %}" class="-green-glyphicon glyphicon glyphicon-question-sign"></span> <span id="{% random_ident %}" class="-validation-error" style="color: red">{{ form.specialization.errors.as_text }}</span></div> |
class="new-link new-lw">+ Добавить раздел</a> |
||||||
<input type="hidden" class="-spec-select -spec-select-level-1" style="width: 100%"> |
</div> |
||||||
</div> |
</div> |
||||||
|
</div> |
||||||
<div class="col-lg-3 -single-spec-select"> |
<div class="col-lg-12 new-filter"> |
||||||
<div class="-bold"><span class="-dynamic-label">Стадия проекта</span></div> |
<div class="filter clearfix"> |
||||||
<input type="hidden" class="-spec-select -spec-select-level-2" style="width: 100%"> |
<div class="polsF1 disTab"> |
||||||
</div> |
<div class="col-lg-3 -single-spec-select"> |
||||||
|
<div class="-bold">{% trans 'project_stage1' %} <span data-tooltip |
||||||
<div class="col-lg-3 -single-spec-select"> |
data-placement="{% tooltip_placement pk=7 %}" |
||||||
<div class="-bold">Раздел</div> |
title="{% tooltip pk=7 %}" |
||||||
<input type="hidden" class="-spec-select -spec-select-level-3" style="width: 100%"> |
class="-green-glyphicon glyphicon glyphicon-question-sign"></span> |
||||||
</div> |
<span id="{% random_ident %}" class="-validation-error" |
||||||
|
style="color: red">{{ form.specialization.errors.as_text }}</span></div> |
||||||
<div class="col-lg-3 -single-spec-select"> |
<input type="hidden" class="-spec-select -spec-select-level-1" style="width: 100%"> |
||||||
<div class="-bold">Подраздел</div> |
</div> |
||||||
<input type="hidden" class="-spec-select -spec-select-level-4" style="width: 100%"> |
|
||||||
</div> |
<div class="col-lg-3 -single-spec-select"> |
||||||
|
<div class="-bold"><span class="-dynamic-label">{% trans 'project_stage2' %}</span></div> |
||||||
<input type="hidden" name="{{ form.specialization.html_name }}" value="{{ form.specialization.value }}" class="-chosen-spec-id"> |
<input type="hidden" class="-spec-select -spec-select-level-2" style="width: 100%"> |
||||||
</div> |
</div> |
||||||
<div class="titleF1 titleF2 disTab"> |
|
||||||
<div class="col-lg-12">Бюджет <span data-tooltip data-placement="{% tooltip_placement pk=8 %}" title="{% tooltip pk=8 %}" class="-green-glyphicon glyphicon glyphicon-question-sign"></span> <span id="{% random_ident %}" class="-validation-error" style="color: red">{{ form.budget.errors.as_text }}</span></div> |
<div class="col-lg-3 -single-spec-select"> |
||||||
<!--<div class="col-lg-8"></div>--> |
<div class="-bold">{% trans 'project_stage3' %}</div> |
||||||
</div> |
<input type="hidden" class="-spec-select -spec-select-level-3" style="width: 100%"> |
||||||
<div class="searchF1 polsF1 polsFF"> |
</div> |
||||||
<div class="col-lg-4"> |
|
||||||
<input type="text" class="box-sizing surr" name="{{ form.budget.html_name }}" value="{{ form.budget.value }}"> |
<div class="col-lg-3 -single-spec-select"> |
||||||
{{ form.currency }} |
<div class="-bold">{% trans 'project_stage4' %}</div> |
||||||
</div> |
<input type="hidden" class="-spec-select -spec-select-level-4" style="width: 100%"> |
||||||
<div class="col-lg-3"> |
</div> |
||||||
{{ form.term_type }} |
|
||||||
</div> |
<input type="hidden" name="{{ form.specialization.html_name }}" value="{{ form.specialization.value }}" |
||||||
<div class="col-lg-5 dog-new"> |
class="-chosen-spec-id"> |
||||||
<label> |
</div> |
||||||
<input |
<div class="titleF1 titleF2 disTab"> |
||||||
type="checkbox" |
<div class="col-lg-12">Бюджет <span data-tooltip data-placement="{% tooltip_placement pk=8 %}" |
||||||
{% if form.budget_by_agreement.value %}checked{% endif %} |
title="{% tooltip pk=8 %}" |
||||||
name="{{ form.budget_by_agreement.html_name }}"> |
class="-green-glyphicon glyphicon glyphicon-question-sign"></span> |
||||||
|
<span id="{% random_ident %}" class="-validation-error" |
||||||
<span></span> |
style="color: red">{{ form.budget.errors.as_text }}</span></div> |
||||||
</label> |
<!--<div class="col-lg-8"></div>--> |
||||||
|
</div> |
||||||
<p>или по договоренности <span data-tooltip data-placement="{% tooltip_placement pk=9 %}" title="{% tooltip pk=9 %}" class="-green-glyphicon glyphicon glyphicon-question-sign"></span></p> |
<div class="searchF1 polsF1 polsFF"> |
||||||
</div> |
<div class="col-lg-4"> |
||||||
</div> |
<input type="text" class="box-sizing surr" name="{{ form.budget.html_name }}" |
||||||
<div class="searchF1 polsF1 polsFF make-new"> |
value="{{ form.budget.value }}"> |
||||||
<label> |
{{ form.currency }} |
||||||
<input |
</div> |
||||||
type="checkbox" |
<div class="col-lg-3"> |
||||||
{% if form.price_and_term_required.value %}checked{% endif %} |
{{ form.term_type }} |
||||||
name="{{ form.price_and_term_required.html_name }}"> |
</div> |
||||||
|
<div class="col-lg-5 dog-new"> |
||||||
<span></span> |
<label> |
||||||
</label> |
<input |
||||||
|
type="checkbox" |
||||||
<p>Сделать для исполнителей обязательным для заполнения поля цена и срок</p> |
{% if form.budget_by_agreement.value %}checked{% endif %} |
||||||
</div> |
name="{{ form.budget_by_agreement.html_name }}"> |
||||||
<div class="titleF1 titleF2 disTab"> |
|
||||||
<div class="col-lg-12">Способ оплаты <span id="{% random_ident %}" class="-validation-error" style="color: red">{{ form.deal_type.errors.as_text }}</span></div> |
<span></span> |
||||||
</div> |
</label> |
||||||
<div class="searchF1 polsF1 polsFF radio-afer"> |
|
||||||
<div class="col-lg-6"> |
<p>или по договоренности <span data-tooltip data-placement="{% tooltip_placement pk=9 %}" |
||||||
<label> |
title="{% tooltip pk=9 %}" |
||||||
<input |
class="-green-glyphicon glyphicon glyphicon-question-sign"></span></p> |
||||||
type="radio" |
</div> |
||||||
name="{{ form.deal_type.html_name }}" |
</div> |
||||||
{% if form.deal_type.value == 'secure_deal' %}checked{% endif %} |
<div class="searchF1 polsF1 polsFF make-new"> |
||||||
value="secure_deal"> |
<label> |
||||||
|
<input |
||||||
<span></span> |
type="checkbox" |
||||||
</label> |
{% if form.price_and_term_required.value %}checked{% endif %} |
||||||
|
name="{{ form.price_and_term_required.html_name }}"> |
||||||
<p class="text-afer"> |
|
||||||
Безопасная сделка (с резервированием бюджета) |
<span></span> |
||||||
</p> |
</label> |
||||||
|
|
||||||
<p class="des-afer"> |
<p>Сделать для исполнителей обязательным для заполнения поля цена и срок</p> |
||||||
{% tooltip pk=10 as tooltip10 %}{{ tooltip10|linebreaksbr }} |
</div> |
||||||
</p> |
<div class="titleF1 titleF2 disTab"> |
||||||
</div> |
<div class="col-lg-12">Способ оплаты <span id="{% random_ident %}" class="-validation-error" |
||||||
|
style="color: red">{{ form.deal_type.errors.as_text }}</span> |
||||||
<div class="col-lg-6"> |
</div> |
||||||
<label> |
</div> |
||||||
<input |
<div class="searchF1 polsF1 polsFF radio-afer"> |
||||||
type="radio" |
<div class="col-lg-6"> |
||||||
name="{{ form.deal_type.html_name }}" |
<label> |
||||||
{% if form.deal_type.value == 'direct_payment' %}checked{% endif %} |
<input |
||||||
value="direct_payment"> |
type="radio" |
||||||
|
name="{{ form.deal_type.html_name }}" |
||||||
<span></span> |
{% if form.deal_type.value == 'secure_deal' %}checked{% endif %} |
||||||
</label> |
value="secure_deal"> |
||||||
|
|
||||||
<p class="text-afer"> |
<span></span> |
||||||
Прямая оплата Исполнителю на его кошелек/счет |
</label> |
||||||
</p> |
|
||||||
|
<p class="text-afer"> |
||||||
<p class="des-afer"> |
Безопасная сделка (с резервированием бюджета) |
||||||
{% tooltip pk=11 as tooltip11 %}{{ tooltip11|linebreaksbr }} |
</p> |
||||||
</p> |
|
||||||
</div> |
<p class="des-afer"> |
||||||
</div> |
{% tooltip pk=10 as tooltip10 %}{{ tooltip10|linebreaksbr }} |
||||||
|
</p> |
||||||
|
</div> |
||||||
|
|
||||||
|
<div class="col-lg-6"> |
||||||
|
<label> |
||||||
|
<input |
||||||
<div class="resSearchF1"> |
type="radio" |
||||||
<div class="col-lg-3"> |
name="{{ form.deal_type.html_name }}" |
||||||
<p class="titleResF1">Расширенный поиск</p> |
{% if form.deal_type.value == 'direct_payment' %}checked{% endif %} |
||||||
<button data-tooltip data-placement="{% tooltip_placement pk=12 %}" title="{% tooltip pk=12 %}" class="resButtonF1"> |
value="direct_payment"> |
||||||
<span class="glyphicon glyphicon-arrow-up" aria-hidden="true"></span> |
|
||||||
</button> |
<span></span> |
||||||
</div> |
</label> |
||||||
<div class="col-lg-9"> |
|
||||||
<div class="borderS1"></div> |
<p class="text-afer"> |
||||||
</div> |
Прямая оплата Исполнителю на его кошелек/счет |
||||||
</div> |
</p> |
||||||
|
|
||||||
<div class="slideRes disTab activeSlide"> |
<p class="des-afer"> |
||||||
<div class="titleF1 disTab"> |
{% tooltip pk=11 as tooltip11 %}{{ tooltip11|linebreaksbr }} |
||||||
<div class="col-lg-3">Выбор объекта <span data-tooltip data-placement="{% tooltip_placement pk=13 %}" title="{% tooltip pk=13 %}" class="-green-glyphicon glyphicon glyphicon-question-sign"></span><br><span id="{% random_ident %}" class="-validation-error" style="color: red">{{ form.realty.errors.as_text }}</span></div> |
</p> |
||||||
<div class="col-lg-3">Наименование <span data-tooltip data-placement="{% tooltip_placement pk=14 %}" title="{% tooltip pk=14 %}" class="-green-glyphicon glyphicon glyphicon-question-sign"></span><br><span id="{% random_ident %}" class="-validation-error" style="color: red">{{ realty_form.name.errors.as_text }}</span></div> |
</div> |
||||||
<div class="col-lg-3">Классификация здания <span data-tooltip data-placement="{% tooltip_placement pk=15 %}" title="{% tooltip pk=15 %}" class="-green-glyphicon glyphicon glyphicon-question-sign"></span><br><span id="{% random_ident %}" class="-validation-error" style="color: red">{{ realty_form.building_classification.errors.as_text }}</span></div> |
</div> |
||||||
<div class="col-lg-3">Вид строительства <span data-tooltip data-placement="{% tooltip_placement pk=16 %}" title="{% tooltip pk=16 %}" class="-green-glyphicon glyphicon glyphicon-question-sign"></span><br><span id="{% random_ident %}" class="-validation-error" style="color: red">{{ realty_form.construction_type.errors.as_text }}</span></div> |
|
||||||
</div> |
|
||||||
|
<div class="resSearchF1"> |
||||||
<div class="polsF1 polsF2 disTab"> |
<div class="col-lg-3"> |
||||||
<div class="col-lg-3"> |
<p class="titleResF1">Расширенный поиск</p> |
||||||
<select |
<button data-tooltip data-placement="{% tooltip_placement pk=12 %}" title="{% tooltip pk=12 %}" |
||||||
class="selectpicker" |
class="resButtonF1"> |
||||||
id="realtyId" |
<span class="glyphicon glyphicon-arrow-up" aria-hidden="true"></span> |
||||||
name="{{ form.realty.html_name }}"> |
</button> |
||||||
<option value="" {% if not form.realty.value %}selected="selected"{% endif %}>Создать новый</option> |
</div> |
||||||
|
<div class="col-lg-9"> |
||||||
{% for r in form.realty.field.queryset %} |
<div class="borderS1"></div> |
||||||
<option value="{{ r.pk }}" {% if form.realty.value|int == r.pk %}selected="selected"{% endif %}>{{ r.name }}</option> |
</div> |
||||||
{% endfor %} |
</div> |
||||||
</select> |
|
||||||
</div> |
<div class="slideRes disTab activeSlide"> |
||||||
<div class="col-lg-3"> |
<div class="titleF1 disTab"> |
||||||
<input |
<div class="col-lg-3">Выбор объекта <span data-tooltip data-placement="{% tooltip_placement pk=13 %}" |
||||||
type="text" |
title="{% tooltip pk=13 %}" |
||||||
id="realtyName" |
class="-green-glyphicon glyphicon glyphicon-question-sign"></span><br><span |
||||||
name="{{ realty_form.name.html_name }}" |
id="{% random_ident %}" class="-validation-error" |
||||||
class="box-sizing surr surr2" |
style="color: red">{{ form.realty.errors.as_text }}</span></div> |
||||||
value="{{ realty_form.name.value }}"> |
<div class="col-lg-3">Наименование <span data-tooltip data-placement="{% tooltip_placement pk=14 %}" |
||||||
</div> |
title="{% tooltip pk=14 %}" |
||||||
<div class="col-lg-3"> |
class="-green-glyphicon glyphicon glyphicon-question-sign"></span><br><span |
||||||
{{ realty_form.building_classification }} |
id="{% random_ident %}" class="-validation-error" |
||||||
{# <select#} |
style="color: red">{{ realty_form.name.errors.as_text }}</span></div> |
||||||
{# id="realtyBuildingClassificationId"#} |
<div class="col-lg-3">Классификация здания <span data-tooltip |
||||||
{# #} |
data-placement="{% tooltip_placement pk=15 %}" |
||||||
{# name="{{ realty_form.building_classification.html_name }}">#} |
title="{% tooltip pk=15 %}" |
||||||
{# {% for c in realty_form.building_classification.field.queryset %}#} |
class="-green-glyphicon glyphicon glyphicon-question-sign"></span><br><span |
||||||
{# <option value="{{ c.pk }}" {% if realty_form.building_classification.value|int == c.pk %}selected="selected"{% endif %}>{{ c.name }}</option>#} |
id="{% random_ident %}" class="-validation-error" |
||||||
{# {% endfor %}#} |
style="color: red">{{ realty_form.building_classification.errors.as_text }}</span></div> |
||||||
{# </select>#} |
<div class="col-lg-3">Вид строительства <span data-tooltip |
||||||
</div> |
data-placement="{% tooltip_placement pk=16 %}" |
||||||
<div class="col-lg-3"> |
title="{% tooltip pk=16 %}" |
||||||
<select |
class="-green-glyphicon glyphicon glyphicon-question-sign"></span><br><span |
||||||
id="realtyConstructionTypeId" |
id="{% random_ident %}" class="-validation-error" |
||||||
class="selectpicker" |
style="color: red">{{ realty_form.construction_type.errors.as_text }}</span></div> |
||||||
name="{{ realty_form.construction_type.html_name }}"> |
</div> |
||||||
{% for t in realty_form.construction_type.field.queryset %} |
|
||||||
<option value="{{ t.pk }}" {% if realty_form.construction_type.value|int == t.pk %}selected="selected"{% endif %}>{{ t.name }}</option> |
<div class="polsF1 polsF2 disTab"> |
||||||
{% endfor %} |
<div class="col-lg-3"> |
||||||
</select> |
<select |
||||||
</div> |
class="selectpicker" |
||||||
</div> |
id="realtyId" |
||||||
<div class="titleF1 disTab"> |
name="{{ form.realty.html_name }}"> |
||||||
<div class="col-lg-12">Местоположение <span data-tooltip data-placement="{% tooltip_placement pk=18 %}" title="{% tooltip pk=18 %}" class="-green-glyphicon glyphicon glyphicon-question-sign"></span> <span id="{% random_ident %}" class="-validation-error" style="color: red">{{ realty_form.location.errors.as_text }}</span></div> |
<option value="" {% if not form.realty.value %}selected="selected"{% endif %}>Создать новый</option> |
||||||
</div> |
|
||||||
<div class="polsF1 polsF2 disTab"> |
{% for r in form.realty.field.queryset %} |
||||||
<div> |
<option value="{{ r.pk }}" |
||||||
<div class="col-lg-3"> |
{% if form.realty.value|int == r.pk %}selected="selected"{% endif %}>{{ r.name }}</option> |
||||||
<input type="hidden" class="-location-select -location-select-country" style="width: 100%"> |
{% endfor %} |
||||||
</div> |
</select> |
||||||
|
</div> |
||||||
<div class="col-lg-3"> |
<div class="col-lg-3"> |
||||||
<input type="hidden" class="-location-select -location-select-region" style="width: 100%"> |
<input |
||||||
</div> |
type="text" |
||||||
|
id="realtyName" |
||||||
<div class="col-lg-3"> |
name="{{ realty_form.name.html_name }}" |
||||||
<input type="hidden" class="-location-select -location-select-city" style="width: 100%"> |
class="box-sizing surr surr2" |
||||||
</div> |
value="{{ realty_form.name.value }}"> |
||||||
</div> |
</div> |
||||||
|
<div class="col-lg-3"> |
||||||
<input type="hidden" id="chosenLocationId" name="{{ realty_form.location.html_name }}" value="{{ realty_form.location.value }}"> |
{{ realty_form.building_classification }} |
||||||
|
{# <select#} |
||||||
<div class="col-lg-3 make-new"> |
{# id="realtyBuildingClassificationId"#} |
||||||
<label>{{ form.cro }}<span></span></label> |
{# #} |
||||||
<p>Требуется допуск (СРО) <span data-tooltip data-placement="{% tooltip_placement pk=17 %}" title="{% tooltip pk=17 %}" class="-green-glyphicon glyphicon glyphicon-question-sign"></span></p> |
{# name="{{ realty_form.building_classification.html_name }}">#} |
||||||
</div> |
{# {% for c in realty_form.building_classification.field.queryset %}#} |
||||||
</div> |
{# <option value="{{ c.pk }}" {% if realty_form.building_classification.value|int == c.pk %}selected="selected"{% endif %}>{{ c.name }}</option>#} |
||||||
</div> |
{# {% endfor %}#} |
||||||
|
{# </select>#} |
||||||
|
</div> |
||||||
<div class="searchF1 polsF1 polsFF links-filter"> |
<div class="col-lg-3"> |
||||||
<input class="btn-submit-link" type="submit" value="Разместить проект"> |
<select |
||||||
</div> |
id="realtyConstructionTypeId" |
||||||
</div> |
class="selectpicker" |
||||||
|
name="{{ realty_form.construction_type.html_name }}"> |
||||||
|
{% for t in realty_form.construction_type.field.queryset %} |
||||||
|
<option value="{{ t.pk }}" |
||||||
|
{% if realty_form.construction_type.value|int == t.pk %}selected="selected"{% endif %}>{{ t.name }}</option> |
||||||
|
{% endfor %} |
||||||
|
</select> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div class="titleF1 disTab"> |
||||||
|
<div class="col-lg-12">Местоположение <span data-tooltip data-placement="{% tooltip_placement pk=18 %}" |
||||||
|
title="{% tooltip pk=18 %}" |
||||||
|
class="-green-glyphicon glyphicon glyphicon-question-sign"></span> |
||||||
|
<span id="{% random_ident %}" class="-validation-error" |
||||||
|
style="color: red">{{ realty_form.location.errors.as_text }}</span></div> |
||||||
|
</div> |
||||||
|
<div class="polsF1 polsF2 disTab"> |
||||||
|
<div> |
||||||
|
<div class="col-lg-3"> |
||||||
|
<input type="hidden" class="-location-select -location-select-country" style="width: 100%"> |
||||||
|
</div> |
||||||
|
|
||||||
|
<div class="col-lg-3"> |
||||||
|
<input type="hidden" class="-location-select -location-select-region" style="width: 100%"> |
||||||
|
</div> |
||||||
|
|
||||||
|
<div class="col-lg-3"> |
||||||
|
<input type="hidden" class="-location-select -location-select-city" style="width: 100%"> |
||||||
|
</div> |
||||||
</div> |
</div> |
||||||
</form> |
|
||||||
|
|
||||||
{% include 'partials/footer.html' %} |
<input type="hidden" id="chosenLocationId" name="{{ realty_form.location.html_name }}" |
||||||
|
value="{{ realty_form.location.value }}"> |
||||||
|
|
||||||
|
<div class="col-lg-3 make-new"> |
||||||
|
<label>{{ form.cro }}<span></span></label> |
||||||
|
<p>Требуется допуск (СРО) <span data-tooltip data-placement="{% tooltip_placement pk=17 %}" |
||||||
|
title="{% tooltip pk=17 %}" |
||||||
|
class="-green-glyphicon glyphicon glyphicon-question-sign"></span></p> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
|
||||||
|
|
||||||
|
<div class="searchF1 polsF1 polsFF links-filter"> |
||||||
|
<input class="btn-submit-link" type="submit" value="Разместить проект"> |
||||||
|
</div> |
||||||
|
</div> |
||||||
</div> |
</div> |
||||||
|
</form> |
||||||
|
|
||||||
|
{% include 'partials/footer.html' %} |
||||||
</div> |
</div> |
||||||
|
</div> |
||||||
{% endblock %} |
{% endblock %} |
||||||
|
|
||||||
|
|
||||||
{% block js_block %} |
{% block js_block %} |
||||||
<script> |
<script> |
||||||
// Project work type suggestion modal --------------------------------- |
// Project work type suggestion modal --------------------------------- |
||||||
|
|
||||||
|
|
||||||
;(function() { |
; |
||||||
var $modal = $('#projectWorkTypeSuggestionModal') |
(function () { |
||||||
var $form = $modal.find('.-project-work-type-suggestion-form').first() |
var $modal = $('#projectWorkTypeSuggestionModal') |
||||||
var workTypeSuggestionUrl = '/projects/suggest-work-type/' |
var $form = $modal.find('.-project-work-type-suggestion-form').first() |
||||||
|
var workTypeSuggestionUrl = '/projects/suggest-work-type/' |
||||||
$modal.find('.-action-button').first().on('click', function($evt) { |
|
||||||
$.post(workTypeSuggestionUrl, $form.serialize()) |
$modal.find('.-action-button').first().on('click', function ($evt) { |
||||||
.then(function(res) { |
$.post(workTypeSuggestionUrl, $form.serialize()) |
||||||
if (res.status === 'success') { |
.then(function (res) { |
||||||
$form.trigger('reset') |
if (res.status === 'success') { |
||||||
$('.-error').text('') |
$form.trigger('reset') |
||||||
$modal.modal('hide') |
$('.-error').text('') |
||||||
$.jGrowl('Предложение успешно отправлено') |
$modal.modal('hide') |
||||||
} else if (res.status === 'error') { |
$.jGrowl('Предложение успешно отправлено') |
||||||
_.flow( |
} else if (res.status === 'error') { |
||||||
_.toPairs, |
_.flow( |
||||||
|
_.toPairs, |
||||||
_.each(function(pair) { |
|
||||||
var cssSelector = pair[0] |
_.each(function (pair) { |
||||||
var errors = pair[1] |
var cssSelector = pair[0] |
||||||
|
var errors = pair[1] |
||||||
$(cssSelector).first().text(_.join(' ', errors)) |
|
||||||
}) |
$(cssSelector).first().text(_.join(' ', errors)) |
||||||
)(res.form_errors) |
|
||||||
} |
|
||||||
}) |
}) |
||||||
|
)(res.form_errors) |
||||||
|
} |
||||||
}) |
}) |
||||||
}()) |
}) |
||||||
|
}()) |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Scroll to first form validation error --------------------------- |
// Scroll to first form validation error --------------------------- |
||||||
|
|
||||||
|
|
||||||
;(function() { |
; |
||||||
var hash = $('.-validation-error').filter(function(i, el) {return $(el).text()}).first().attr('id') |
(function () { |
||||||
|
var hash = $('.-validation-error').filter(function (i, el) { |
||||||
|
return $(el).text() |
||||||
|
}).first().attr('id') |
||||||
|
|
||||||
if (hash) |
if (hash) |
||||||
window.location.hash = hash |
window.location.hash = hash |
||||||
}()) |
}()) |
||||||
</script> |
</script> |
||||||
{% endblock %} |
{% endblock %} |
||||||
|
|||||||
@ -1,362 +1,397 @@ |
|||||||
{% extends 'partials/base.html' %} |
{% extends 'partials/base.html' %} |
||||||
|
{% load i18n %} |
||||||
|
|
||||||
{% block head_css %} |
{% block head_css %} |
||||||
<style> |
<style> |
||||||
.-error, .errorlist {color: red} |
.-error, .errorlist { |
||||||
</style> |
color: red |
||||||
|
} |
||||||
|
</style> |
||||||
{% endblock %} |
{% endblock %} |
||||||
|
|
||||||
|
|
||||||
{% block content %} |
{% block content %} |
||||||
{% include 'partials/modals/project_work_type_suggestion.html' %} |
{% include 'partials/modals/project_work_type_suggestion.html' %} |
||||||
{% include 'partials/header.html' %} |
{% include 'partials/header.html' %} |
||||||
|
|
||||||
|
<div class="container mainScore"> |
||||||
|
<div class="row"> |
||||||
|
<div class="col-lg-12 allProjects"> |
||||||
|
<p class="titleScore">Изменение проекта</p> |
||||||
|
</div> |
||||||
|
|
||||||
|
<form action="{% url 'projects:customer-project-edit' pk=pk %}" method="POST" enctype="multipart/form-data" |
||||||
|
novalidate class="-spec-work-type-combo-container"> |
||||||
|
{% csrf_token %} |
||||||
|
|
||||||
|
<input type="hidden" name="next" value="{% url 'projects:detail' pk=pk %}"> |
||||||
|
<input type="hidden" id="extraFields" name="extra_fields" value=""> |
||||||
|
|
||||||
|
<div class="chatBlock new-rass new-rass2 disTab"> |
||||||
|
<div class="col-lg-9"> |
||||||
|
<p class="new-pp new-pp3">Формирование заказа</p> |
||||||
|
|
||||||
|
{% if form.non_field_errors %} |
||||||
|
<div class="new-pp3" style="color: red; margin-top: 70px">{{ form.non_field_errors }}</div> |
||||||
|
{% endif %} |
||||||
|
|
||||||
|
<div class="textAreaBlock2 text-nn box-sizing disTab"> |
||||||
|
<p>Название заказа <span id="{% random_ident %}" class="-validation-error" |
||||||
|
style="color: red">{{ form.name.errors.as_text }}</span></p> |
||||||
|
<input type="text" class="box-sizing" name="{{ form.name.html_name }}" value="{{ form.name.value }}"> |
||||||
|
</div> |
||||||
|
|
||||||
|
<div class="textAreaBlock2 text-nn box-sizing disTab"> |
||||||
|
<p>Подробно опишите задание <span id="{% random_ident %}" class="-validation-error" |
||||||
|
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 wrChat1"> |
||||||
|
<div class="messageBlock box-sizing disTab"> |
||||||
|
<p>Дополнительно</p> |
||||||
|
</div> |
||||||
|
|
||||||
|
<div id="fileUploadContainer" class="col-lg-12 documentsChat"> |
||||||
|
<div class="upload"> |
||||||
|
<p id="fileUploadAddBtn" style="margin: 0">+ добавить файл (до 100 файлов)</p> |
||||||
|
</div> |
||||||
|
|
||||||
|
<ul class="list-new-new"> |
||||||
|
{% for file in form.files.field.queryset.all %} |
||||||
|
<li class="existing-file-widget"> |
||||||
|
<input type="checkbox" name="{{ form.files.html_name }}" value="{{ file.pk }}" checked |
||||||
|
style='display: none'> |
||||||
|
<p class="file-upload-label">{{ file.file.name|basename }} {{ file.file.size|filesizeformat }}</p> |
||||||
|
<div class="existing-file-remove-btn"></div> |
||||||
|
</li> |
||||||
|
{% endfor %} |
||||||
|
|
||||||
|
<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"> |
||||||
|
<p class="file-upload-label"></p> |
||||||
|
<div class="file-upload-remove-btn"></div> |
||||||
|
</li> |
||||||
|
</ul> |
||||||
|
</div> |
||||||
|
|
||||||
|
<p class="type-work">{% trans 'project_stage0' %} <span id="{% random_ident %}" class="-validation-error" |
||||||
|
style="color: red">{{ form.work_type.errors.as_text }}</span> |
||||||
|
</p> |
||||||
|
<div class="mail-block type-work-inset -project-work-type-radios-container"> |
||||||
|
{% for id, text in form.work_type.field.choices %} |
||||||
|
<div class="inset-mb"> |
||||||
|
<label> |
||||||
|
<input |
||||||
|
type="radio" |
||||||
|
value="{{ id }}" |
||||||
|
{% if form.work_type.value|int == id %}checked{% endif %} |
||||||
|
name="{{ form.work_type.html_name }}"> |
||||||
|
|
||||||
|
<span></span> |
||||||
|
</label> |
||||||
|
|
||||||
|
<p>{{ text }}</p> |
||||||
|
</div> |
||||||
|
{% endfor %} |
||||||
|
</div> |
||||||
|
<div class="textAreaBlock2 box-sizing disTab"> |
||||||
|
<a href="#" onclick="return false" data-toggle="modal" data-target="#projectWorkTypeSuggestionModal" |
||||||
|
class="new-link new-lw">+ Добавить раздел</a> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div class="col-lg-12 new-filter"> |
||||||
|
<div class="filter clearfix"> |
||||||
|
<div class="polsF1 disTab"> |
||||||
|
<div class="col-lg-3 -single-spec-select"> |
||||||
|
<div class="-bold">{% trans 'project_stage1' %} <span data-tooltip |
||||||
|
data-placement="{% tooltip_placement pk=7 %}" |
||||||
|
title="{% tooltip pk=7 %}" |
||||||
|
class="-green-glyphicon glyphicon glyphicon-question-sign"></span> |
||||||
|
<span id="{% random_ident %}" class="-validation-error" |
||||||
|
style="color: red">{{ form.specialization.errors.as_text }}</span></div> |
||||||
|
<input type="hidden" class="-spec-select -spec-select-level-1" style="width: 100%"> |
||||||
|
</div> |
||||||
|
|
||||||
|
<div class="col-lg-3 -single-spec-select"> |
||||||
|
<div class="-bold"><span class="-dynamic-label">{% trans 'project_stage2' %}</span></div> |
||||||
|
<input type="hidden" class="-spec-select -spec-select-level-2" style="width: 100%"> |
||||||
|
</div> |
||||||
|
|
||||||
|
<div class="col-lg-3 -single-spec-select"> |
||||||
|
<div class="-bold">{% trans 'project_stage3' %}</div> |
||||||
|
<input type="hidden" class="-spec-select -spec-select-level-3" style="width: 100%"> |
||||||
|
</div> |
||||||
|
|
||||||
|
<div class="col-lg-3 -single-spec-select"> |
||||||
|
<div class="-bold">{% trans 'project_stage4' %}</div> |
||||||
|
<input type="hidden" class="-spec-select -spec-select-level-4" style="width: 100%"> |
||||||
|
</div> |
||||||
|
|
||||||
|
<input type="hidden" name="{{ form.specialization.html_name }}" value="{{ form.specialization.value }}" |
||||||
|
class="-chosen-spec-id"> |
||||||
|
</div> |
||||||
|
<div class="titleF1 titleF2 disTab"> |
||||||
|
<div class="col-lg-12">Бюджет <span id="{% random_ident %}" class="-validation-error" |
||||||
|
style="color: red">{{ form.budget.errors.as_text }}</span></div> |
||||||
|
<!--<div class="col-lg-8"></div>--> |
||||||
|
</div> |
||||||
|
<div class="searchF1 polsF1 polsFF"> |
||||||
|
<div class="col-lg-4"> |
||||||
|
<input type="text" class="box-sizing surr" name="{{ form.budget.html_name }}" |
||||||
|
value="{{ form.budget.value }}"> |
||||||
|
{{ form.currency }} |
||||||
|
</div> |
||||||
|
<div class="col-lg-3"> |
||||||
|
{{ form.term_type }} |
||||||
|
</div> |
||||||
|
<div class="col-lg-5 dog-new"> |
||||||
|
<label> |
||||||
|
<input |
||||||
|
type="checkbox" |
||||||
|
{% if form.budget_by_agreement.value %}checked{% endif %} |
||||||
|
name="{{ form.budget_by_agreement.html_name }}"> |
||||||
|
|
||||||
|
<span></span> |
||||||
|
</label> |
||||||
|
|
||||||
|
<p>или по договоренности</p> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div class="searchF1 polsF1 polsFF make-new"> |
||||||
|
<label> |
||||||
|
<input |
||||||
|
type="checkbox" |
||||||
|
{% if form.price_and_term_required.value %}checked{% endif %} |
||||||
|
name="{{ form.price_and_term_required.html_name }}"> |
||||||
|
|
||||||
|
<span></span> |
||||||
|
</label> |
||||||
|
|
||||||
<div class="container mainScore"> |
<p>Сделать для исполнителей обязательным для заполнения поля цена и срок</p> |
||||||
<div class="row"> |
|
||||||
<div class="col-lg-12 allProjects"> |
|
||||||
<p class="titleScore">Изменение проекта</p> |
|
||||||
</div> |
</div> |
||||||
|
<div class="titleF1 titleF2 disTab"> |
||||||
|
<div class="col-lg-12">Способ оплаты <span id="{% random_ident %}" class="-validation-error" |
||||||
|
style="color: red">{{ form.deal_type.errors.as_text }}</span> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div class="searchF1 polsF1 polsFF radio-afer"> |
||||||
|
<div class="col-lg-6"> |
||||||
|
<label> |
||||||
|
<input |
||||||
|
type="radio" |
||||||
|
name="{{ form.deal_type.html_name }}" |
||||||
|
{% if form.deal_type.value == 'secure_deal' %}checked{% endif %} |
||||||
|
value="secure_deal"> |
||||||
|
|
||||||
|
<span></span> |
||||||
|
</label> |
||||||
|
|
||||||
|
<p class="text-afer"> |
||||||
|
Безопасная сделка (с резервированием бюджета) |
||||||
|
</p> |
||||||
|
|
||||||
|
<p class="des-afer"> |
||||||
|
{% tooltip pk=10 as tooltip10 %}{{ tooltip10|linebreaksbr }} |
||||||
|
</p> |
||||||
|
</div> |
||||||
|
|
||||||
|
<div class="col-lg-6"> |
||||||
|
<label> |
||||||
|
<input |
||||||
|
type="radio" |
||||||
|
name="{{ form.deal_type.html_name }}" |
||||||
|
{% if form.deal_type.value == 'direct_payment' %}checked{% endif %} |
||||||
|
value="direct_payment"> |
||||||
|
|
||||||
|
<span></span> |
||||||
|
</label> |
||||||
|
|
||||||
|
<p class="text-afer"> |
||||||
|
Прямая оплата Исполнителю на его кошелек/счет |
||||||
|
</p> |
||||||
|
|
||||||
|
<p class="des-afer"> |
||||||
|
{% tooltip pk=11 as tooltip11 %}{{ tooltip11|linebreaksbr }} |
||||||
|
</p> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
|
||||||
|
|
||||||
<form action="{% url 'projects:customer-project-edit' pk=pk %}" method="POST" enctype="multipart/form-data" novalidate class="-spec-work-type-combo-container"> |
<div class="resSearchF1"> |
||||||
{% csrf_token %} |
<div class="col-lg-3"> |
||||||
|
<p class="titleResF1">Расширенный поиск</p> |
||||||
<input type="hidden" name="next" value="{% url 'projects:detail' pk=pk %}"> |
<button class="resButtonF1"> |
||||||
<input type="hidden" id="extraFields" name="extra_fields" value=""> |
<span class="glyphicon glyphicon-arrow-up" aria-hidden="true"></span> |
||||||
|
</button> |
||||||
<div class="chatBlock new-rass new-rass2 disTab"> |
</div> |
||||||
<div class="col-lg-9"> |
<div class="col-lg-9"> |
||||||
<p class="new-pp new-pp3">Формирование заказа</p> |
<div class="borderS1"></div> |
||||||
|
</div> |
||||||
{% if form.non_field_errors %} |
</div> |
||||||
<div class="new-pp3" style="color: red; margin-top: 70px">{{ form.non_field_errors }}</div> |
<div class="slideRes disTab activeSlide"> |
||||||
{% endif %} |
<div class="titleF1 disTab"> |
||||||
|
<div class="col-lg-3">Выбор объекта<br><span id="{% random_ident %}" class="-validation-error" |
||||||
<div class="textAreaBlock2 text-nn box-sizing disTab"> |
style="color: red">{{ form.realty.errors.as_text }}</span> |
||||||
<p>Название заказа <span id="{% random_ident %}" class="-validation-error" style="color: red">{{ form.name.errors.as_text }}</span></p> |
</div> |
||||||
<input type="text" class="box-sizing" name="{{ form.name.html_name }}" value="{{ form.name.value }}"> |
<div class="col-lg-3">Наименование<br><span id="{% random_ident %}" class="-validation-error" |
||||||
</div> |
style="color: red">{{ realty_form.name.errors.as_text }}</span> |
||||||
|
|
||||||
<div class="textAreaBlock2 text-nn box-sizing disTab"> |
|
||||||
<p>Подробно опишите задание <span id="{% random_ident %}" class="-validation-error" 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 wrChat1"> |
|
||||||
<div class="messageBlock box-sizing disTab"> |
|
||||||
<p>Дополнительно</p> |
|
||||||
</div> |
|
||||||
|
|
||||||
<div id="fileUploadContainer" class="col-lg-12 documentsChat"> |
|
||||||
<div class="upload"> |
|
||||||
<p id="fileUploadAddBtn" style="margin: 0">+ добавить файл (до 100 файлов)</p> |
|
||||||
</div> |
|
||||||
|
|
||||||
<ul class="list-new-new"> |
|
||||||
{% for file in form.files.field.queryset.all %} |
|
||||||
<li class="existing-file-widget"> |
|
||||||
<input type="checkbox" name="{{ form.files.html_name }}" value="{{ file.pk }}" checked style='display: none'> |
|
||||||
<p class="file-upload-label">{{ file.file.name|basename }} {{ file.file.size|filesizeformat }}</p> |
|
||||||
<div class="existing-file-remove-btn"></div> |
|
||||||
</li> |
|
||||||
{% endfor %} |
|
||||||
|
|
||||||
<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"> |
|
||||||
<p class="file-upload-label"></p> |
|
||||||
<div class="file-upload-remove-btn"></div> |
|
||||||
</li> |
|
||||||
</ul> |
|
||||||
</div> |
|
||||||
|
|
||||||
<p class="type-work">Тип работы <span id="{% random_ident %}" class="-validation-error" style="color: red">{{ form.work_type.errors.as_text }}</span></p> |
|
||||||
<div class="mail-block type-work-inset -project-work-type-radios-container"> |
|
||||||
{% for id, text in form.work_type.field.choices %} |
|
||||||
<div class="inset-mb"> |
|
||||||
<label> |
|
||||||
<input |
|
||||||
type="radio" |
|
||||||
value="{{ id }}" |
|
||||||
{% if form.work_type.value|int == id %}checked{% endif %} |
|
||||||
name="{{ form.work_type.html_name }}"> |
|
||||||
|
|
||||||
<span></span> |
|
||||||
</label> |
|
||||||
|
|
||||||
<p>{{ text }}</p> |
|
||||||
</div> |
|
||||||
{% endfor %} |
|
||||||
</div> |
|
||||||
<div class="textAreaBlock2 box-sizing disTab"> |
|
||||||
<a href="#" onclick="return false" data-toggle="modal" data-target="#projectWorkTypeSuggestionModal" class="new-link new-lw">+ Добавить раздел</a> |
|
||||||
</div> |
|
||||||
</div> |
|
||||||
</div> |
</div> |
||||||
<div class="col-lg-12 new-filter"> |
<div class="col-lg-3">Классификация здания<br><span id="{% random_ident %}" class="-validation-error" |
||||||
<div class="filter clearfix"> |
style="color: red">{{ realty_form.building_classification.errors.as_text }}</span> |
||||||
<div class="polsF1 disTab"> |
</div> |
||||||
<div class="col-lg-3 -single-spec-select"> |
<div class="col-lg-3">Вид строительства<br><span id="{% random_ident %}" class="-validation-error" |
||||||
<div class="-bold">Стадия проекта <span data-tooltip data-placement="{% tooltip_placement pk=7 %}" title="{% tooltip pk=7 %}" class="-green-glyphicon glyphicon glyphicon-question-sign"></span> <span id="{% random_ident %}" class="-validation-error" style="color: red">{{ form.specialization.errors.as_text }}</span></div> |
style="color: red">{{ realty_form.construction_type.errors.as_text }}</span> |
||||||
<input type="hidden" class="-spec-select -spec-select-level-1" style="width: 100%"> |
</div> |
||||||
</div> |
</div> |
||||||
|
|
||||||
<div class="col-lg-3 -single-spec-select"> |
<div class="polsF1 polsF2 disTab"> |
||||||
<div class="-bold"><span class="-dynamic-label">Стадия проекта</span></div> |
<div class="col-lg-3"> |
||||||
<input type="hidden" class="-spec-select -spec-select-level-2" style="width: 100%"> |
<select |
||||||
</div> |
class="selectpicker" |
||||||
|
id="realtyId" |
||||||
<div class="col-lg-3 -single-spec-select"> |
name="{{ form.realty.html_name }}"> |
||||||
<div class="-bold">Раздел</div> |
<option value="" {% if not form.realty.value %}selected="selected"{% endif %}>Создать новый</option> |
||||||
<input type="hidden" class="-spec-select -spec-select-level-3" style="width: 100%"> |
|
||||||
</div> |
{% for r in form.realty.field.queryset %} |
||||||
|
<option value="{{ r.pk }}" |
||||||
<div class="col-lg-3 -single-spec-select"> |
{% if form.realty.value|int == r.pk %}selected="selected"{% endif %}>{{ r.name }}</option> |
||||||
<div class="-bold">Подраздел</div> |
{% endfor %} |
||||||
<input type="hidden" class="-spec-select -spec-select-level-4" style="width: 100%"> |
</select> |
||||||
</div> |
</div> |
||||||
|
<div class="col-lg-3"> |
||||||
<input type="hidden" name="{{ form.specialization.html_name }}" value="{{ form.specialization.value }}" class="-chosen-spec-id"> |
<input |
||||||
</div> |
type="text" |
||||||
<div class="titleF1 titleF2 disTab"> |
id="realtyName" |
||||||
<div class="col-lg-12">Бюджет <span id="{% random_ident %}" class="-validation-error" style="color: red">{{ form.budget.errors.as_text }}</span></div> |
name="{{ realty_form.name.html_name }}" |
||||||
<!--<div class="col-lg-8"></div>--> |
class="box-sizing surr surr2" |
||||||
</div> |
value="{{ realty_form.name.value }}"> |
||||||
<div class="searchF1 polsF1 polsFF"> |
</div> |
||||||
<div class="col-lg-4"> |
<div class="col-lg-3"> |
||||||
<input type="text" class="box-sizing surr" name="{{ form.budget.html_name }}" value="{{ form.budget.value }}"> |
<select |
||||||
{{ form.currency }} |
id="realtyBuildingClassificationId" |
||||||
</div> |
class="selectpicker" |
||||||
<div class="col-lg-3"> |
name="{{ realty_form.building_classification.html_name }}"> |
||||||
{{ form.term_type }} |
{% for c in realty_form.building_classification.field.queryset %} |
||||||
</div> |
<option value="{{ c.pk }}" |
||||||
<div class="col-lg-5 dog-new"> |
{% if realty_form.building_classification.value|int == c.pk %}selected="selected"{% endif %}>{{ c.name }}</option> |
||||||
<label> |
{% endfor %} |
||||||
<input |
</select> |
||||||
type="checkbox" |
</div> |
||||||
{% if form.budget_by_agreement.value %}checked{% endif %} |
<div class="col-lg-3"> |
||||||
name="{{ form.budget_by_agreement.html_name }}"> |
<select |
||||||
|
id="realtyConstructionTypeId" |
||||||
<span></span> |
class="selectpicker" |
||||||
</label> |
name="{{ realty_form.construction_type.html_name }}"> |
||||||
|
{% for t in realty_form.construction_type.field.queryset %} |
||||||
<p>или по договоренности</p> |
<option value="{{ t.pk }}" |
||||||
</div> |
{% if realty_form.construction_type.value|int == t.pk %}selected="selected"{% endif %}>{{ t.name }}</option> |
||||||
</div> |
{% endfor %} |
||||||
<div class="searchF1 polsF1 polsFF make-new"> |
</select> |
||||||
<label> |
</div> |
||||||
<input |
</div> |
||||||
type="checkbox" |
<div class="titleF1 disTab"> |
||||||
{% if form.price_and_term_required.value %}checked{% endif %} |
<div class="col-lg-12">Местоположение <span id="{% random_ident %}" class="-validation-error" |
||||||
name="{{ form.price_and_term_required.html_name }}"> |
style="color: red">{{ realty_form.location.errors.as_text }}</span> |
||||||
|
</div> |
||||||
<span></span> |
</div> |
||||||
</label> |
<div class="polsF1 polsF2 disTab"> |
||||||
|
<div class="col-lg-3"> |
||||||
<p>Сделать для исполнителей обязательным для заполнения поля цена и срок</p> |
<input type="hidden" class="-location-select -location-select-country" style="width: 100%"> |
||||||
</div> |
|
||||||
<div class="titleF1 titleF2 disTab"> |
|
||||||
<div class="col-lg-12">Способ оплаты <span id="{% random_ident %}" class="-validation-error" style="color: red">{{ form.deal_type.errors.as_text }}</span></div> |
|
||||||
</div> |
|
||||||
<div class="searchF1 polsF1 polsFF radio-afer"> |
|
||||||
<div class="col-lg-6"> |
|
||||||
<label> |
|
||||||
<input |
|
||||||
type="radio" |
|
||||||
name="{{ form.deal_type.html_name }}" |
|
||||||
{% if form.deal_type.value == 'secure_deal' %}checked{% endif %} |
|
||||||
value="secure_deal"> |
|
||||||
|
|
||||||
<span></span> |
|
||||||
</label> |
|
||||||
|
|
||||||
<p class="text-afer"> |
|
||||||
Безопасная сделка (с резервированием бюджета) |
|
||||||
</p> |
|
||||||
|
|
||||||
<p class="des-afer"> |
|
||||||
{% tooltip pk=10 as tooltip10 %}{{ tooltip10|linebreaksbr }} |
|
||||||
</p> |
|
||||||
</div> |
|
||||||
|
|
||||||
<div class="col-lg-6"> |
|
||||||
<label> |
|
||||||
<input |
|
||||||
type="radio" |
|
||||||
name="{{ form.deal_type.html_name }}" |
|
||||||
{% if form.deal_type.value == 'direct_payment' %}checked{% endif %} |
|
||||||
value="direct_payment"> |
|
||||||
|
|
||||||
<span></span> |
|
||||||
</label> |
|
||||||
|
|
||||||
<p class="text-afer"> |
|
||||||
Прямая оплата Исполнителю на его кошелек/счет |
|
||||||
</p> |
|
||||||
|
|
||||||
<p class="des-afer"> |
|
||||||
{% tooltip pk=11 as tooltip11 %}{{ tooltip11|linebreaksbr }} |
|
||||||
</p> |
|
||||||
</div> |
|
||||||
</div> |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="resSearchF1"> |
|
||||||
<div class="col-lg-3"> |
|
||||||
<p class="titleResF1">Расширенный поиск</p> |
|
||||||
<button class="resButtonF1"> |
|
||||||
<span class="glyphicon glyphicon-arrow-up" aria-hidden="true"></span> |
|
||||||
</button> |
|
||||||
</div> |
|
||||||
<div class="col-lg-9"> |
|
||||||
<div class="borderS1"></div> |
|
||||||
</div> |
|
||||||
</div> |
|
||||||
<div class="slideRes disTab activeSlide"> |
|
||||||
<div class="titleF1 disTab"> |
|
||||||
<div class="col-lg-3">Выбор объекта<br><span id="{% random_ident %}" class="-validation-error" style="color: red">{{ form.realty.errors.as_text }}</span></div> |
|
||||||
<div class="col-lg-3">Наименование<br><span id="{% random_ident %}" class="-validation-error" style="color: red">{{ realty_form.name.errors.as_text }}</span></div> |
|
||||||
<div class="col-lg-3">Классификация здания<br><span id="{% random_ident %}" class="-validation-error" style="color: red">{{ realty_form.building_classification.errors.as_text }}</span></div> |
|
||||||
<div class="col-lg-3">Вид строительства<br><span id="{% random_ident %}" class="-validation-error" style="color: red">{{ realty_form.construction_type.errors.as_text }}</span></div> |
|
||||||
</div> |
|
||||||
|
|
||||||
<div class="polsF1 polsF2 disTab"> |
|
||||||
<div class="col-lg-3"> |
|
||||||
<select |
|
||||||
class="selectpicker" |
|
||||||
id="realtyId" |
|
||||||
name="{{ form.realty.html_name }}"> |
|
||||||
<option value="" {% if not form.realty.value %}selected="selected"{% endif %}>Создать новый</option> |
|
||||||
|
|
||||||
{% for r in form.realty.field.queryset %} |
|
||||||
<option value="{{ r.pk }}" {% if form.realty.value|int == r.pk %}selected="selected"{% endif %}>{{ r.name }}</option> |
|
||||||
{% endfor %} |
|
||||||
</select> |
|
||||||
</div> |
|
||||||
<div class="col-lg-3"> |
|
||||||
<input |
|
||||||
type="text" |
|
||||||
id="realtyName" |
|
||||||
name="{{ realty_form.name.html_name }}" |
|
||||||
class="box-sizing surr surr2" |
|
||||||
value="{{ realty_form.name.value }}"> |
|
||||||
</div> |
|
||||||
<div class="col-lg-3"> |
|
||||||
<select |
|
||||||
id="realtyBuildingClassificationId" |
|
||||||
class="selectpicker" |
|
||||||
name="{{ realty_form.building_classification.html_name }}"> |
|
||||||
{% for c in realty_form.building_classification.field.queryset %} |
|
||||||
<option value="{{ c.pk }}" {% if realty_form.building_classification.value|int == c.pk %}selected="selected"{% endif %}>{{ c.name }}</option> |
|
||||||
{% endfor %} |
|
||||||
</select> |
|
||||||
</div> |
|
||||||
<div class="col-lg-3"> |
|
||||||
<select |
|
||||||
id="realtyConstructionTypeId" |
|
||||||
class="selectpicker" |
|
||||||
name="{{ realty_form.construction_type.html_name }}"> |
|
||||||
{% for t in realty_form.construction_type.field.queryset %} |
|
||||||
<option value="{{ t.pk }}" {% if realty_form.construction_type.value|int == t.pk %}selected="selected"{% endif %}>{{ t.name }}</option> |
|
||||||
{% endfor %} |
|
||||||
</select> |
|
||||||
</div> |
|
||||||
</div> |
|
||||||
<div class="titleF1 disTab"> |
|
||||||
<div class="col-lg-12">Местоположение <span id="{% random_ident %}" class="-validation-error" style="color: red">{{ realty_form.location.errors.as_text }}</span></div> |
|
||||||
</div> |
|
||||||
<div class="polsF1 polsF2 disTab"> |
|
||||||
<div class="col-lg-3"> |
|
||||||
<input type="hidden" class="-location-select -location-select-country" style="width: 100%"> |
|
||||||
</div> |
|
||||||
|
|
||||||
<div class="col-lg-3"> |
|
||||||
<input type="hidden" class="-location-select -location-select-region" style="width: 100%"> |
|
||||||
</div> |
|
||||||
|
|
||||||
<div class="col-lg-3"> |
|
||||||
<input type="hidden" class="-location-select -location-select-city" style="width: 100%"> |
|
||||||
</div> |
|
||||||
|
|
||||||
<input type="hidden" id="chosenLocationId" name="{{ realty_form.location.html_name }}" value="{{ realty_form.location.value }}"> |
|
||||||
|
|
||||||
<div class="col-lg-3 make-new"> |
|
||||||
<label> |
|
||||||
<input |
|
||||||
type="checkbox" |
|
||||||
{% if form.cro.value %}checked{% endif %} |
|
||||||
name="{{ form.cro.html_name }}"> |
|
||||||
|
|
||||||
<span></span> |
|
||||||
</label> |
|
||||||
|
|
||||||
<p>Требуется допуск СРО</p> |
|
||||||
</div> |
|
||||||
</div> |
|
||||||
</div> |
|
||||||
|
|
||||||
<div class="searchF1 polsF1 polsFF links-filter"> |
|
||||||
<input class="btn-submit-link" type="submit" value="Сохранить"> |
|
||||||
</div> |
|
||||||
</div> |
|
||||||
</div> |
</div> |
||||||
</form> |
|
||||||
|
|
||||||
{% include 'partials/footer.html' %} |
<div class="col-lg-3"> |
||||||
|
<input type="hidden" class="-location-select -location-select-region" style="width: 100%"> |
||||||
|
</div> |
||||||
|
|
||||||
|
<div class="col-lg-3"> |
||||||
|
<input type="hidden" class="-location-select -location-select-city" style="width: 100%"> |
||||||
|
</div> |
||||||
|
|
||||||
|
<input type="hidden" id="chosenLocationId" name="{{ realty_form.location.html_name }}" |
||||||
|
value="{{ realty_form.location.value }}"> |
||||||
|
|
||||||
|
<div class="col-lg-3 make-new"> |
||||||
|
<label> |
||||||
|
<input |
||||||
|
type="checkbox" |
||||||
|
{% if form.cro.value %}checked{% endif %} |
||||||
|
name="{{ form.cro.html_name }}"> |
||||||
|
|
||||||
|
<span></span> |
||||||
|
</label> |
||||||
|
|
||||||
|
<p>Требуется допуск СРО</p> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
|
||||||
|
<div class="searchF1 polsF1 polsFF links-filter"> |
||||||
|
<input class="btn-submit-link" type="submit" value="Сохранить"> |
||||||
|
</div> |
||||||
|
</div> |
||||||
</div> |
</div> |
||||||
|
</form> |
||||||
|
|
||||||
|
{% include 'partials/footer.html' %} |
||||||
</div> |
</div> |
||||||
|
</div> |
||||||
{% endblock %} |
{% endblock %} |
||||||
|
|
||||||
|
|
||||||
{% block js_block %} |
{% block js_block %} |
||||||
<script> |
<script> |
||||||
// Project work type suggestion modal --------------------------------- |
// Project work type suggestion modal --------------------------------- |
||||||
|
|
||||||
|
|
||||||
;(function() { |
; |
||||||
var $modal = $('#projectWorkTypeSuggestionModal') |
(function () { |
||||||
var $form = $modal.find('.-project-work-type-suggestion-form').first() |
var $modal = $('#projectWorkTypeSuggestionModal') |
||||||
var workTypeSuggestionUrl = '/projects/suggest-work-type/' |
var $form = $modal.find('.-project-work-type-suggestion-form').first() |
||||||
|
var workTypeSuggestionUrl = '/projects/suggest-work-type/' |
||||||
$modal.find('.-action-button').first().on('click', function($evt) { |
|
||||||
$.post(workTypeSuggestionUrl, $form.serialize()) |
$modal.find('.-action-button').first().on('click', function ($evt) { |
||||||
.then(function(res) { |
$.post(workTypeSuggestionUrl, $form.serialize()) |
||||||
if (res.status === 'success') { |
.then(function (res) { |
||||||
console.log('Success') |
if (res.status === 'success') { |
||||||
$form.trigger('reset') |
console.log('Success') |
||||||
$('.-error').text('') |
$form.trigger('reset') |
||||||
$modal.modal('hide') |
$('.-error').text('') |
||||||
$.jGrowl('Предложение успешно отправлено') |
$modal.modal('hide') |
||||||
} else if (res.status === 'error') { |
$.jGrowl('Предложение успешно отправлено') |
||||||
console.log('Error') |
} else if (res.status === 'error') { |
||||||
|
console.log('Error') |
||||||
_.flow( |
|
||||||
_.toPairs, |
_.flow( |
||||||
|
_.toPairs, |
||||||
_.each(function(pair) { |
|
||||||
var cssSelector = pair[0] |
_.each(function (pair) { |
||||||
var errors = pair[1] |
var cssSelector = pair[0] |
||||||
|
var errors = pair[1] |
||||||
$(cssSelector).first().text(_.join(' ', errors)) |
|
||||||
}) |
$(cssSelector).first().text(_.join(' ', errors)) |
||||||
)(res.form_errors) |
|
||||||
} |
|
||||||
}) |
}) |
||||||
|
)(res.form_errors) |
||||||
|
} |
||||||
}) |
}) |
||||||
}()) |
}) |
||||||
|
}()) |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Scroll to first form validation error ------------------------------ |
// Scroll to first form validation error ------------------------------ |
||||||
|
|
||||||
|
|
||||||
;(function() { |
; |
||||||
var hash = $('.-validation-error').filter(function(i, el) {return $(el).text()}).first().attr('id') |
(function () { |
||||||
|
var hash = $('.-validation-error').filter(function (i, el) { |
||||||
|
return $(el).text() |
||||||
|
}).first().attr('id') |
||||||
|
|
||||||
if (hash) |
if (hash) |
||||||
window.location.hash = hash |
window.location.hash = hash |
||||||
}()) |
}()) |
||||||
</script> |
</script> |
||||||
{% endblock %} |
{% endblock %} |
||||||
|
|||||||
@ -1,55 +1,56 @@ |
|||||||
<div class="modal fade" id="projectWorkTypeSuggestionModal" tabindex="-1"> |
<div class="modal fade" id="projectWorkTypeSuggestionModal" tabindex="-1"> |
||||||
<div class="modal-dialog" role="document"> |
<div class="modal-dialog" role="document"> |
||||||
<div class="modal-content"> |
<div class="modal-content"> |
||||||
<div class="modal-header"> |
<div class="modal-header"> |
||||||
<button type="button" class="close" data-dismiss="modal"><span>×</span></button> |
<button type="button" class="close" data-dismiss="modal"><span>×</span></button> |
||||||
<h4 class="modal-title">Предложение нового типа работы</h4> |
<h4 class="modal-title">Предложение нового типа работы</h4> |
||||||
</div> |
</div> |
||||||
|
|
||||||
<div class="modal-body"> |
|
||||||
<form action="{% url 'projects:suggest-work-type' %}" method="POST" novalidate class="-project-work-type-suggestion-form"> |
|
||||||
{% csrf_token %} |
|
||||||
|
|
||||||
<div>{{ work_type_suggestion_form.non_field_errors }}</div> |
<div class="modal-body"> |
||||||
|
<form action="{% url 'projects:suggest-work-type' %}" method="POST" novalidate |
||||||
|
class="-project-work-type-suggestion-form"> |
||||||
|
{% csrf_token %} |
||||||
|
|
||||||
<div class="row"> |
<div>{{ work_type_suggestion_form.non_field_errors }}</div> |
||||||
<div class="col-xs-12 projectsBlock"> |
|
||||||
<div>{{ work_type_suggestion_form.name.label }}</div> |
|
||||||
<div>{{ work_type_suggestion_form.name }}</div> |
|
||||||
<div class="-error -error-{{ work_type_suggestion_form.name.html_name }}"></div> |
|
||||||
</div> |
|
||||||
</div> |
|
||||||
|
|
||||||
<div class="row"> |
<div class="row"> |
||||||
<div class="col-xs-12 projectsBlock"> |
<div class="col-xs-12 projectsBlock"> |
||||||
<div>{{ work_type_suggestion_form.commentary.label }}</div> |
<div>{{ work_type_suggestion_form.name.label }}</div> |
||||||
<div>{{ work_type_suggestion_form.commentary }}</div> |
<div>{{ work_type_suggestion_form.name }}</div> |
||||||
<div class="-error -error-{{ work_type_suggestion_form.commentary.html_name }}"></div> |
<div class="-error -error-{{ work_type_suggestion_form.name.html_name }}"></div> |
||||||
</div> |
</div> |
||||||
</div> |
</div> |
||||||
|
|
||||||
<div class="row"> |
<div class="row"> |
||||||
<div class="col-xs-12 projectsBlock"> |
<div class="col-xs-12 projectsBlock"> |
||||||
<div>{{ work_type_suggestion_form.email.label }}</div> |
<div>{{ work_type_suggestion_form.commentary.label }}</div> |
||||||
<div>{{ work_type_suggestion_form.email }}</div> |
<div>{{ work_type_suggestion_form.commentary }}</div> |
||||||
<div class="-error -error-{{ work_type_suggestion_form.email.html_name }}"></div> |
<div class="-error -error-{{ work_type_suggestion_form.commentary.html_name }}"></div> |
||||||
</div> |
</div> |
||||||
</div> |
</div> |
||||||
|
|
||||||
<div class="row"> |
<div class="row"> |
||||||
<div class="col-xs-12 projectsBlock"> |
<div class="col-xs-12 projectsBlock"> |
||||||
<div>{{ work_type_suggestion_form.username.label }}</div> |
<div>{{ work_type_suggestion_form.email.label }}</div> |
||||||
<div>{{ work_type_suggestion_form.username }}</div> |
<div>{{ work_type_suggestion_form.email }}</div> |
||||||
<div class="-error -error-{{ work_type_suggestion_form.username.html_name }}"></div> |
<div class="-error -error-{{ work_type_suggestion_form.email.html_name }}"></div> |
||||||
</div> |
|
||||||
</div> |
|
||||||
</form> |
|
||||||
</div> |
</div> |
||||||
|
</div> |
||||||
|
|
||||||
<div class="modal-footer"> |
<div class="row"> |
||||||
<button type="button" class="btn btn-default" data-dismiss="modal">Отмена</button> |
<div class="col-xs-12 projectsBlock"> |
||||||
<button type="button" class="btn btn-primary -action-button">Предложить</button> |
<div>{{ work_type_suggestion_form.username.label }}</div> |
||||||
|
<div>{{ work_type_suggestion_form.username }}</div> |
||||||
|
<div class="-error -error-{{ work_type_suggestion_form.username.html_name }}"></div> |
||||||
</div> |
</div> |
||||||
</div> |
</div> |
||||||
|
</form> |
||||||
|
</div> |
||||||
|
|
||||||
|
<div class="modal-footer"> |
||||||
|
<button type="button" class="btn btn-default" data-dismiss="modal">Отмена</button> |
||||||
|
<button type="button" class="btn btn-primary -action-button">Предложить</button> |
||||||
|
</div> |
||||||
</div> |
</div> |
||||||
|
</div> |
||||||
</div> |
</div> |
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@ -1,3 +1 @@ |
|||||||
from django.test import TestCase |
|
||||||
|
|
||||||
# Create your tests here. |
# Create your tests here. |
||||||
|
|||||||
@ -1,3 +1 @@ |
|||||||
from django.test import TestCase |
|
||||||
|
|
||||||
# Create your tests here. |
# Create your tests here. |
||||||
|
|||||||
@ -1,3 +1 @@ |
|||||||
from django.shortcuts import render |
|
||||||
|
|
||||||
# Create your views here. |
# Create your views here. |
||||||
|
|||||||
@ -1,4 +1,5 @@ |
|||||||
from django.contrib import admin |
from django.contrib import admin |
||||||
|
|
||||||
from .models import Review |
from .models import Review |
||||||
|
|
||||||
admin.site.register(Review) |
admin.site.register(Review) |
||||||
|
|||||||
@ -1,3 +1 @@ |
|||||||
from django.test import TestCase |
|
||||||
|
|
||||||
# Create your tests here. |
# Create your tests here. |
||||||
|
|||||||
@ -0,0 +1,21 @@ |
|||||||
|
# -*- coding: utf-8 -*- |
||||||
|
# Generated by Django 1.9.7 on 2016-10-14 20:06 |
||||||
|
from __future__ import unicode_literals |
||||||
|
|
||||||
|
from django.db import migrations, models |
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration): |
||||||
|
|
||||||
|
dependencies = [ |
||||||
|
('specializations', '0002_auto_20161005_0342'), |
||||||
|
] |
||||||
|
|
||||||
|
operations = [ |
||||||
|
migrations.AddField( |
||||||
|
model_name='specialization', |
||||||
|
name='order', |
||||||
|
field=models.PositiveIntegerField(default=0), |
||||||
|
preserve_default=False, |
||||||
|
), |
||||||
|
] |
||||||
@ -0,0 +1,24 @@ |
|||||||
|
# -*- coding: utf-8 -*- |
||||||
|
# Generated by Django 1.9.7 on 2016-10-14 20:44 |
||||||
|
from __future__ import unicode_literals |
||||||
|
|
||||||
|
from django.db import migrations, models |
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration): |
||||||
|
|
||||||
|
dependencies = [ |
||||||
|
('specializations', '0003_specialization_order'), |
||||||
|
] |
||||||
|
|
||||||
|
operations = [ |
||||||
|
migrations.AlterModelOptions( |
||||||
|
name='specialization', |
||||||
|
options={'get_latest_by': 'order', 'ordering': ['order'], 'verbose_name': 'Специализация', 'verbose_name_plural': 'Специализации'}, |
||||||
|
), |
||||||
|
migrations.AddField( |
||||||
|
model_name='specialization', |
||||||
|
name='selectable', |
||||||
|
field=models.BooleanField(default=True), |
||||||
|
), |
||||||
|
] |
||||||
@ -1,3 +1 @@ |
|||||||
from django.test import TestCase |
|
||||||
|
|
||||||
# Create your tests here. |
# Create your tests here. |
||||||
|
|||||||
Binary file not shown.
@ -0,0 +1,42 @@ |
|||||||
|
# SOME DESCRIPTIVE TITLE. |
||||||
|
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER |
||||||
|
# This file is distributed under the same license as the PACKAGE package. |
||||||
|
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. |
||||||
|
# |
||||||
|
msgid "" |
||||||
|
msgstr "" |
||||||
|
"Project-Id-Version: PACKAGE VERSION\n" |
||||||
|
"Report-Msgid-Bugs-To: \n" |
||||||
|
"POT-Creation-Date: 2016-10-14 22:49+0300\n" |
||||||
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" |
||||||
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" |
||||||
|
"Language-Team: LANGUAGE <LL@li.org>\n" |
||||||
|
"Language: \n" |
||||||
|
"MIME-Version: 1.0\n" |
||||||
|
"Content-Type: text/plain; charset=UTF-8\n" |
||||||
|
"Content-Transfer-Encoding: 8bit\n" |
||||||
|
|
||||||
|
#: templates/contractor_filter.html:27 templates/portfolio_create_form.html:25 |
||||||
|
#: templates/worksell_create_form.html:20 |
||||||
|
msgid "project_stage0" |
||||||
|
msgstr "Тип работы" |
||||||
|
|
||||||
|
#: templates/contractor_filter.html:46 templates/portfolio_create_form.html:37 |
||||||
|
#: templates/worksell_create_form.html:32 |
||||||
|
msgid "project_stage1" |
||||||
|
msgstr "Стадия проекта" |
||||||
|
|
||||||
|
#: templates/contractor_filter.html:50 templates/portfolio_create_form.html:42 |
||||||
|
#: templates/worksell_create_form.html:37 |
||||||
|
msgid "project_stage2" |
||||||
|
msgstr "Раздел" |
||||||
|
|
||||||
|
#: templates/contractor_filter.html:54 templates/portfolio_create_form.html:47 |
||||||
|
#: templates/worksell_create_form.html:42 |
||||||
|
msgid "project_stage3" |
||||||
|
msgstr "Подраздел" |
||||||
|
|
||||||
|
#: templates/contractor_filter.html:58 templates/portfolio_create_form.html:52 |
||||||
|
#: templates/worksell_create_form.html:47 |
||||||
|
msgid "project_stage4" |
||||||
|
msgstr "Подраздел ( доп. )" |
||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue