# Техническое задание АИС строительная ## Общее ТЗ описательное 1. Публикация проекта на серверах или хостингах Заказчика. 2. Доработка модуля добавления элементов, а именно: Сортировка Поиск Разбиение на категории 3. Доработка роутинга проекта: Возможность ссылки на проект (доступ по логину и паролю). Возможность ссылки на клиента в системе (доступ по логину и паролю). Напоминание о сохранении при переходе на другую страницу 4. Доработка модуля категорий Категории остаются открытыми при создании категории Категории остаются открытыми при создании элемента 5. Доработка модуля сметы и конструкци Название видно полностью и над всеми блоками Изменения стилистики названия этапа Модальное окно на удаление конструкций, элементов Модальное окно на добавление клиента Скрытие в конструкциях элементов 6. Доработка модуля скачивания сметы: Отразить все блоки Отобразить наименование 7. Доработка модуля прайса: Возможность импорта элементов Возможность экспорта элементов 8. Возможность дублирования элемента в прайсе, шаблоне, конструкции, смете ## Общее ТЗ техническое 1. Публикация проекта на серверах и хостингах Заказчика, будет использоваться reg.ru, выделенное VPS 2. Доработка модуля добавления элементов, а именно: **Сортировка Поиск Разбиение на категории** Нужно доработать добавление элемента в прайсе. Добавить popup на добавление с возможность фильтрации элементов по категориям элементов в прайсе, с возможностью сортировки элементов по алфовиту, а также с возможностью поиска. ![](https://i.imgur.com/GfReJPK.png) 3. Доработка роутинга проекта: **Возможность ссылки на проект (доступ по логину и паролю).** Необходимо сделать возможность ссылаться на смету в системе по уникальному id либо коду. Ссылка не публичная и будет от пользователя в любом случае требовать зайти (это можно не реализовывать, просто пользователь потом перезайдет) **Возможность ссылки на клиента в системе (доступ по логину и паролю)** Необходимо сделать возможность ссылкать на клиента в системе по уникальному id либо коду. Ссылка не публичная и будет от пользователя в любом случае требовать зайти в систему (это можно не реализовывать, просто пользователь потом перезайдет) **Напоминание о сохранении при переходе на другую страницу** Необходимо реализовать предупреждение при нажатии на любой пункт меню в системе, когда пользователь находится в сметах, конструкциях, шаблонах данного вида ![](https://i.imgur.com/PT3QfYc.png) 4. Доработка модуля категорий **Категории остаются открытыми при создании категории Категории остаются открытыми при создании элемента** При любом действии на странице Прайс и на странице Конструкции необходимо держать открытыми категории для удобства использования. На данный момент они перезагружаются и снова становятся закрытыми. ![](https://i.imgur.com/z5S12KJ.png) 5. Доработка модуля сметы и конструкци **Название видно полностью и над всеми блоками**. Проблема с большими названиями, либо их увеличить, либо сделать всплывающую подсказку при наведении на названия блока. Пока в дизайне, данная история выглядит так: ![](https://i.imgur.com/xWNKl1C.png) Изменения стилистики названия этапа ![](https://i.imgur.com/UFlqejx.png) **Модальное окно на удаление конструкций, элементов**. Необходимо реализовать модальное окно при нажатии на удаление конструкции и элементов в конструкции на странице Конструкция, Шаблон, Смета **Модальное окно на добавление клиента**. Необходимо реализовать модальное окно на добавление клиента с выводом списка клиентов, а также возможность поиска и сортировки по имени. **Скрытие в конструкциях элементов**. Необходимо реализовать возможность скрытие элементов в конструкциях в Смете и в Шаблонах. Скрытие происходит по нажатию на значок. Раскрытие также происходит по нажатию. Вид скрытого объекта: ![](https://i.imgur.com/TIwMuEj.png) Вид открытого объекта: ![](https://i.imgur.com/kUkLhLX.png) 6. Доработка модуля скачивания сметы: **Отразить все блоки Отобразить наименование** Главная история с данным заданием, это то, что не скачиваются не обходимые для сметы данные, в данном случае лучший пример это: ![](https://i.imgur.com/qfVnuiY.png) ПОДРОБНЕЕ ПО МОДУЛЮ СКАЧИВАНИЯ СМОТРЕТЬ ЛУЧШЕ ВИДЕО 7. Доработка модуля прайса: **Возможность импорта элементов**. Необходимо добавить возможность импорта элементов в прайс через эксель. Данная функция реализована на клиенте, поэтому будет идти отдельным запросом, а не через админ django. Импорт данных происходит при нажатии на кнопку "Импортировать данные" на страннице Прайс. ![](https://i.imgur.com/xYzKtfJ.png) При нажатие появляется popup: ![](https://i.imgur.com/UfFKDT3.png) Файл можно как переместить на данное модальное окно, так и загрузить с компьютера. При загрузке появляется окно загрузки. Вид окна: ![](https://i.imgur.com/GnzODkQ.png) При успехе: ![](https://i.imgur.com/BTgGve1.png) При ошибке должно выводиться окно ошибки **Возможность экспорта элементов**. Необходимо реализовать возможность экспорта данных на странице Прайса. При загрузке появляется окно загрузки. Вид окна: ![](https://i.imgur.com/GnzODkQ.png) При успехе: ![](https://i.imgur.com/BTgGve1.png) 8. Возможность дублирования элемента в прайсе, шаблоне, конструкции, смете Необходимо возможность дублирования элементов в прайсе, шаблонах, конструкции, смете. В смете, кострукции, шаблоне внутри них также нужно реализовать дублирование. Дублирование производится по средством вызова окошка по значку: ![](https://i.imgur.com/dmpQDji.png) Данное окошко выглядит следующим образом: ![](https://i.imgur.com/I1TTAt7.png) Дублирование происходит при нажатии на кнопку: ![](https://i.imgur.com/hNGA4qI.png) 9. Реализовать возможность возвращение пользователя к сметам с конкретной сметы. Данное действие также должно преследоваться окошком предупреждением об выходе со сметы (смотреть пункт выше). ![](https://i.imgur.com/Z1EA1V0.png) Возвращение к списку смет происходит при нажатии на кнопку ![](https://i.imgur.com/BOE1ibG.png) 10. Изменить отображение элементов на странице Прайс Переобразовать данный вид: ![](https://i.imgur.com/14i78qc.png) В вид, который необходимо: ![](https://i.imgur.com/qjwJuFz.png) ## Файлы экспортов 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) **ПОЯСНЕНИЕ ПО ПОЛЯМ:** Лист: *Смета* * Наименование ![](https://i.imgur.com/GeksgTt.png) Это поле под title * Описание ![](https://i.imgur.com/gMzgt7s.png) Это поле под original_title * Ед. измерения ![](https://i.imgur.com/R9dcJEo.png) Это поле под единицы измерения * Кол-во ![](https://i.imgur.com/tiS0k9z.png) Это поле под количество необходимых единиц элементов прайса в единицах измерения Лист: *Смета(сокр)* * Наименование ![](https://i.imgur.com/GeksgTt.png) Это поле под title * Описание ![](https://i.imgur.com/gMzgt7s.png) Это поле под original_title * Ед. измерения ![](https://i.imgur.com/R9dcJEo.png) Это поле под единицы измерения * Кол-во ![](https://i.imgur.com/tiS0k9z.png) Это поле под количество необходимых единиц элементов прайса в единицах измерения 3. Смета для бригадира [Ссылка](https://disk.yandex.ru/i/WJ4MOl4YcYwcyA) **ПОЯСНЕНИЕ ПО ПОЛЯМ:** Лист: *Список работ (Бригадир)* * Наименование ![](https://i.imgur.com/GeksgTt.png) Это поле под title * Описание ![](https://i.imgur.com/gMzgt7s.png) Это поле под original_title * Ед. измерения ![](https://i.imgur.com/R9dcJEo.png) Это поле под единицы измерения * Кол-во ![](https://i.imgur.com/tiS0k9z.png) Это поле под количество необходимых единиц элементов прайса в единицах измерения Лист: *Список материалов (Бригадир)* * Наименование ![](https://i.imgur.com/GeksgTt.png) Это поле под title * Описание ![](https://i.imgur.com/gMzgt7s.png) Это поле под original_title * Ед. измерения ![](https://i.imgur.com/R9dcJEo.png) Это поле под единицы измерения * Кол-во ![](https://i.imgur.com/tiS0k9z.png) Это поле под количество необходимых единиц элементов прайса в единицах измерения * Доп ед. измерения ![](https://i.imgur.com/R9dcJEo.png) Это поле под дополнительные единицы измерения * Кол-во ![](https://i.imgur.com/tiS0k9z.png) Это поле под количество необходимых дополнительных единиц элементов прайса в дополнительных единицах измерения * Вес ![](https://i.imgur.com/fbh8jRK.png) Это поле под вес * Объем ![](https://i.imgur.com/F3DOuBv.png) Это поле под объем Лист: *Список общий (Бригадир)* * Наименование ![](https://i.imgur.com/GeksgTt.png) Это поле под title * Описание ![](https://i.imgur.com/gMzgt7s.png) Это поле под original_title * Ед. измерения ![](https://i.imgur.com/R9dcJEo.png) Это поле под единицы измерения * Кол-во ![](https://i.imgur.com/tiS0k9z.png) Это поле под количество необходимых единиц элементов прайса в единицах измерения * Доп ед. измерения ![](https://i.imgur.com/R9dcJEo.png) Это поле под дополнительные единицы измерения * Кол-во ![](https://i.imgur.com/tiS0k9z.png) Это поле под количество необходимых дополнительных единиц элементов прайса в дополнительных единицах измерения * Вес ![](https://i.imgur.com/fbh8jRK.png) Это поле под вес * Объем ![](https://i.imgur.com/F3DOuBv.png) Это поле под объем **Как вычислять кол-во доп ед. измерения?** Формула: Кол-во ед. изм. * норма конвертации = кол-во доп ед. измерения Формула в полях модели: count * conversion_rate 4. Смета для закупщика [Ссылка](https://disk.yandex.ru/i/ag71oRB5wqTZiQ) **ПОЯСНЕНИЕ ПО ПОЛЯМ:** Лист: *Список материалов по этапам(Закупщик)* * Наименование ![](https://i.imgur.com/GeksgTt.png) Это поле под title * Описание ![](https://i.imgur.com/gMzgt7s.png) Это поле под original_title * Ед. измерения ![](https://i.imgur.com/R9dcJEo.png) Это поле под единицы измерения * Кол-во ![](https://i.imgur.com/tiS0k9z.png) Это поле под количество необходимых единиц элементов прайса в единицах измерения * Доп ед. измерения ![](https://i.imgur.com/R9dcJEo.png) Это поле под дополнительные единицы измерения * Кол-во ![](https://i.imgur.com/tiS0k9z.png) Это поле под количество необходимых дополнительных единиц элементов прайса в дополнительных единицах измерения * Вес ![](https://i.imgur.com/fbh8jRK.png) Это поле под вес * Объем ![](https://i.imgur.com/F3DOuBv.png) Это поле под объем * Цена/ед ![](https://i.imgur.com/KeEDEOU.png) Это себестоимость единицы элемента прайса * Сумма ![](https://i.imgur.com/rACz1SD.png) Это сумма * Размер ![](https://i.imgur.com/qXt81Ma.png) Это доп. размерность **Как вычислять кол-во доп ед. измерения?** Формула: Кол-во ед. изм. * норма конвертации = кол-во доп ед. измерения Формула в полях модели: count * conversion_rate **Как вычислять сумму?** Формула: Кол-во едю изм * цена/ед = сумма Формула в полях модели: count * cost **Что за размер?** Это поле в элементе dimension