Skip to content

Latest commit

 

History

History
36 lines (26 loc) · 3.49 KB

backend-units-filter.md

File metadata and controls

36 lines (26 loc) · 3.49 KB

Тестовое задание от 18.10.2022 г. на позицию Python – разработчик (back-end)

Нужно реализовать систему выбора объектов в организации на Django 4, postgresql, JS, HTML5, bootstrap 5, ccs, без использования REST API (если есть желание можно и с ним). Вся суть задания, есть головное подразделение А, в которое входят объект Б, в свою очередь в объект Б может или не может входить объект В.

Объектов А много, в каждый объект А входят свои объекты Б без ограничений, так же в каждые объекты Б входят свои объекты В без ограничений. Пример: image

Объект А имеет дочерний объект Б, объект Б либо имеет либо нет дочерний объект В. У объекта А есть только дочерний объект, других полей нет. Для объекта А поля:

  • Имя объекта. Объект Б и В имеют дополнительные поля:
  • Имя объекта,
  • Число людей,
  • Ответственный должность (любая),
  • Ф.И.О ответственного,
  • Разряд. И ссылка на дочерний объект с произвольными данными, выводится в таблице, для каждого Б и В.

Необходимо реализовать на Django такую структуру: image

При выборе поля А, должно подгружаться поле Б, только те объекты которые входят в текущий выбранный объект А. Так же, если есть дочерние объекты В, для выбранного поля Б, то они тоже должны подгружаться. При выборе данных из формы, лишних данных не должно быть, только те, которые относятся к тем или иным объектам.

Очень важно, после выбора объектов А, Б и если есть дочерние объекты Б, то и В, после перезагрузки страницы (например пользователь нажал f5) должны поля select и другие в текущей момент поля text, number помнить свое состояние, то есть не сбрасываться (можно использовать localStorage в js), так же можно использовать постраничный вывод, например /1, /1/2, /1/2/3 (где 1, 2, 3 объекты А, Б, В).

Для заполнения полей объектов Б и В из БД:

  • Число людей,
  • Ответственный должность (любая),
  • Ф.И.О ответственного,
  • Разряд. использовать ajax, jQuery (будет плюсом), или возможности Django (на ваше усмотрение), вывод данных по страницам.