# Техническое задание АИС строительная
## Общее ТЗ описательное
1. Публикация проекта на серверах или хостингах Заказчика.
2. Доработка модуля добавления элементов, а именно:
Сортировка
Поиск
Разбиение на категории
3. Доработка роутинга проекта:
Возможность ссылки на проект (доступ по логину и паролю).
Возможность ссылки на клиента в системе (доступ по логину и паролю).
Напоминание о сохранении при переходе на другую страницу
4. Доработка модуля категорий
Категории остаются открытыми при создании категории
Категории остаются открытыми при создании элемента
5. Доработка модуля сметы и конструкци
Название видно полностью и над всеми блоками
Изменения стилистики названия этапа
Модальное окно на удаление конструкций, элементов
Модальное окно на добавление клиента
Скрытие в конструкциях элементов
6. Доработка модуля скачивания сметы:
Отразить все блоки
Отобразить наименование
7. Доработка модуля прайса:
Возможность импорта элементов
Возможность экспорта элементов
8. Возможность дублирования элемента в прайсе, шаблоне, конструкции, смете
## Общее ТЗ техническое
1. Публикация проекта на серверах и хостингах Заказчика, будет использоваться reg.ru, выделенное VPS
2. Доработка модуля добавления элементов, а именно:
**Сортировка
Поиск
Разбиение на категории**
Нужно доработать добавление элемента в прайсе. Добавить popup на добавление с возможность фильтрации элементов по категориям элементов в прайсе, с возможностью сортировки элементов по алфовиту, а также с возможностью поиска.

3. Доработка роутинга проекта:
**Возможность ссылки на проект (доступ по логину и паролю).** Необходимо сделать возможность ссылаться на смету в системе по уникальному id либо коду. Ссылка не публичная и будет от пользователя в любом случае требовать зайти (это можно не реализовывать, просто пользователь потом перезайдет)
**Возможность ссылки на клиента в системе (доступ по логину и паролю)**
Необходимо сделать возможность ссылкать на клиента в системе по уникальному id либо коду. Ссылка не публичная и будет от пользователя в любом случае требовать зайти в систему (это можно не реализовывать, просто пользователь потом перезайдет)
**Напоминание о сохранении при переходе на другую страницу**
Необходимо реализовать предупреждение при нажатии на любой пункт меню в системе, когда пользователь находится в сметах, конструкциях, шаблонах данного вида

4. Доработка модуля категорий
**Категории остаются открытыми при создании категории
Категории остаются открытыми при создании элемента**
При любом действии на странице Прайс и на странице Конструкции необходимо держать открытыми категории для удобства использования. На данный момент они перезагружаются и снова становятся закрытыми.

5. Доработка модуля сметы и конструкци
**Название видно полностью и над всеми блоками**. Проблема с большими названиями, либо их увеличить, либо сделать всплывающую подсказку при наведении на названия блока. Пока в дизайне, данная история выглядит так:

Изменения стилистики названия этапа

**Модальное окно на удаление конструкций, элементов**. Необходимо реализовать модальное окно при нажатии на удаление конструкции и элементов в конструкции на странице Конструкция, Шаблон, Смета
**Модальное окно на добавление клиента**. Необходимо реализовать модальное окно на добавление клиента с выводом списка клиентов, а также возможность поиска и сортировки по имени.
**Скрытие в конструкциях элементов**. Необходимо реализовать возможность скрытие элементов в конструкциях в Смете и в Шаблонах. Скрытие происходит по нажатию на значок. Раскрытие также происходит по нажатию.
Вид скрытого объекта:

Вид открытого объекта:

6. Доработка модуля скачивания сметы:
**Отразить все блоки
Отобразить наименование**
Главная история с данным заданием, это то, что не скачиваются не обходимые для сметы данные, в данном случае лучший пример это:

ПОДРОБНЕЕ ПО МОДУЛЮ СКАЧИВАНИЯ СМОТРЕТЬ ЛУЧШЕ ВИДЕО
7. Доработка модуля прайса:
**Возможность импорта элементов**. Необходимо добавить возможность импорта элементов в прайс через эксель. Данная функция реализована на клиенте, поэтому будет идти отдельным запросом, а не через админ django. Импорт данных происходит при нажатии на кнопку "Импортировать данные" на страннице Прайс.

При нажатие появляется popup:

Файл можно как переместить на данное модальное окно, так и загрузить с компьютера.
При загрузке появляется окно загрузки. Вид окна:

При успехе:

При ошибке должно выводиться окно ошибки
**Возможность экспорта элементов**. Необходимо реализовать возможность экспорта данных на странице Прайса. При загрузке появляется окно загрузки. Вид окна:

При успехе:

8. Возможность дублирования элемента в прайсе, шаблоне, конструкции, смете
Необходимо возможность дублирования элементов в прайсе, шаблонах, конструкции, смете. В смете, кострукции, шаблоне внутри них также нужно реализовать дублирование.
Дублирование производится по средством вызова окошка по значку:

Данное окошко выглядит следующим образом:

Дублирование происходит при нажатии на кнопку:

9. Реализовать возможность возвращение пользователя к сметам с конкретной сметы.
Данное действие также должно преследоваться окошком предупреждением об выходе со сметы (смотреть пункт выше).

Возвращение к списку смет происходит при нажатии на кнопку

10. Изменить отображение элементов на странице Прайс
Переобразовать данный вид:

В вид, который необходимо:

## Файлы экспортов
1. Экспорт прайса
[Ссылка](https://disk.yandex.ru/i/BdpuYUzECK9yjQ)
2. Смета для клиента
[Ссылка](https://disk.yandex.ru/i/19oFLk07fbqx0Q)
3. Смета для бригадира
[Ссылка](https://disk.yandex.ru/i/WJ4MOl4YcYwcyA)
4. Смета для закупщика
[Ссылка](https://disk.yandex.ru/i/ag71oRB5wqTZiQ)
## Ссылки на Google таблицы
1. Экспорт прайса
[Ссылка](https://docs.google.com/spreadsheets/d/1svzZD1Hj1vLCW_f2pncHH0iRUMo-GbnA/edit?usp=sharing&ouid=110231757223758895508&rtpof=true&sd=true)
2. Смета для клиента
[Ссылка](https://docs.google.com/spreadsheets/d/1kbJZyxYcV2hFJXGZOHEjn861MU4bNnbM/edit?usp=sharing&ouid=110231757223758895508&rtpof=true&sd=true)
3. Смета для бригадира
[Ссылка](https://docs.google.com/spreadsheets/d/1XBdYUxDa415zQrfMQa6KtMPbiFYQjg77/edit?usp=sharing&ouid=110231757223758895508&rtpof=true&sd=true)
4. Смета для закупщика
[Ссылка](https://docs.google.com/spreadsheets/d/1psv4-LeVdq2zC9SAUFViXKWart_lKSi1/edit?usp=sharing&ouid=110231757223758895508&rtpof=true&sd=true)
## Примеры экспортов
1. Экспорт прайса
[Ссылка](https://disk.yandex.ru/i/BdpuYUzECK9yjQ)
2. Смета для клиента
[Ссылка](https://disk.yandex.ru/i/19oFLk07fbqx0Q)
**ПОЯСНЕНИЕ ПО ПОЛЯМ:**
Лист: *Смета*
* Наименование

Это поле под title
* Описание

Это поле под original_title
* Ед. измерения

Это поле под единицы измерения
* Кол-во

Это поле под количество необходимых единиц элементов прайса в единицах измерения
Лист: *Смета(сокр)*
* Наименование

Это поле под title
* Описание

Это поле под original_title
* Ед. измерения

Это поле под единицы измерения
* Кол-во

Это поле под количество необходимых единиц элементов прайса в единицах измерения
3. Смета для бригадира
[Ссылка](https://disk.yandex.ru/i/WJ4MOl4YcYwcyA)
**ПОЯСНЕНИЕ ПО ПОЛЯМ:**
Лист: *Список работ (Бригадир)*
* Наименование

Это поле под title
* Описание

Это поле под original_title
* Ед. измерения

Это поле под единицы измерения
* Кол-во

Это поле под количество необходимых единиц элементов прайса в единицах измерения
Лист: *Список материалов (Бригадир)*
* Наименование

Это поле под title
* Описание

Это поле под original_title
* Ед. измерения

Это поле под единицы измерения
* Кол-во

Это поле под количество необходимых единиц элементов прайса в единицах измерения
* Доп ед. измерения

Это поле под дополнительные единицы измерения
* Кол-во

Это поле под количество необходимых дополнительных единиц элементов прайса в дополнительных единицах измерения
* Вес

Это поле под вес
* Объем

Это поле под объем
Лист: *Список общий (Бригадир)*
* Наименование

Это поле под title
* Описание

Это поле под original_title
* Ед. измерения

Это поле под единицы измерения
* Кол-во

Это поле под количество необходимых единиц элементов прайса в единицах измерения
* Доп ед. измерения

Это поле под дополнительные единицы измерения
* Кол-во

Это поле под количество необходимых дополнительных единиц элементов прайса в дополнительных единицах измерения
* Вес

Это поле под вес
* Объем

Это поле под объем
**Как вычислять кол-во доп ед. измерения?**
Формула:
Кол-во ед. изм. * норма конвертации = кол-во доп ед. измерения
Формула в полях модели:
count * conversion_rate
4. Смета для закупщика
[Ссылка](https://disk.yandex.ru/i/ag71oRB5wqTZiQ)
**ПОЯСНЕНИЕ ПО ПОЛЯМ:**
Лист: *Список материалов по этапам(Закупщик)*
* Наименование

Это поле под title
* Описание

Это поле под original_title
* Ед. измерения

Это поле под единицы измерения
* Кол-во

Это поле под количество необходимых единиц элементов прайса в единицах измерения
* Доп ед. измерения

Это поле под дополнительные единицы измерения
* Кол-во

Это поле под количество необходимых дополнительных единиц элементов прайса в дополнительных единицах измерения
* Вес

Это поле под вес
* Объем

Это поле под объем
* Цена/ед

Это себестоимость единицы элемента прайса
* Сумма

Это сумма
* Размер

Это доп. размерность
**Как вычислять кол-во доп ед. измерения?**
Формула:
Кол-во ед. изм. * норма конвертации = кол-во доп ед. измерения
Формула в полях модели:
count * conversion_rate
**Как вычислять сумму?**
Формула:
Кол-во едю изм * цена/ед = сумма
Формула в полях модели:
count * cost
**Что за размер?**
Это поле в элементе dimension