Привет, мир! Сегодня мне нужен программист на symfony.
Для внутренней системы управления необходимо разработать дополнительный модуль. ТЗ прилагается:
1. Реализовать возможность выбора категории при создании/редактировании организации.
1.1. Создать модель «Категория организаций» с полями (техническая заметка: реализовать древовидную структуру с помощью NestedSet):
1.1.1. Название (текстовое поле).
1.2. Создать страницу для просмотра дерева категорий.
1.2.1. Реализовать просмотр при помощи виджета, использованного на странице просмотре групп пользователей.
1.2.2. Сохранить возможность создания новой корневой категории при помощи соответствующей кнопки в виджете.
1.3. Создать страницу для редактирования категорий, которая позволяет выполнить следующие действия:
1.3.1. Изменить название категории.
1.3.2. Добавить подкатегорию.
1.3.3. Удалить категорию.
1.4. Добавить поле «Связанная категория» в модель организации.
1.5. Добавить виджет выбора категории в формы создания и редактирования организации.
2. Вынести данные полей «Род деятельности», «Специфика рода деятельности» из таблицы организаций в таблицу категорий при помощи миграции:
2.1. Для каждой различной записи в поле «Род деятельности» создать одноименную корневую категорию (техническая заметка: название категории должно начинаться с прописной буквы).
2.2. Для каждой непустой записи в поле «Специфика рода деятельности» создать одноименную подкатегорию в категории, созданной на основании поля «Род деятельности».
2.3. Связать организацию с соответствующей ей категорией.
2.3.1. Если поле «Специфика рода деятельности» пусто, связать организацию с корневой категорией, созданной на основании поля «Род деятельности».
2.4. Удалить поля «Род деятельности» и «Специфика рода деятельности» из модели и таблицы организации.
3. Обновить настройки политики безопасности:
3.1. Добавить в систему следующие права:
3.1.1. «Может просматривать категории организаций».
3.1.2. «Может редактировать категории организаций».
3.1.3. «Может создавать категории организаций».
3.1.4. «Может удалять категории организаций».
3.2. Добавить вышеперечисленные права в группу «Суперпользователи».
3.3. Написать миграцию для реализации предыдущих обновлений на рабочем сервере.
3.4. Наложить следующие ограничения:
3.4.1. Запретить пользователям, не имеющим права «Может просматривать категории», доступ к странице просмотра категорий.
3.4.2. Запретить пользователям, не имеющим права «Может редактировать категории», редактировать категории.
3.4.2.1. Если данное право отсутствует, клик на категорию в дереве не должен открывать страницу редактирования.
3.4.3. Запретить пользователям, не имеющим права «Может создавать категории», создавать категории.
3.4.3.1. Если данное право отсутствует, кнопка «Создать корневую категорию» на странице просмотра категорий должна отсутствовать.
3.4.3.2. Если данное право отсутствует, ссылка «Добавить подкатегорию» на странице редактирования категории не должна отображаться.
3.4.4. Запретить пользователям, не имеющим права «Может удалять категории», удалять категории.
3.4.4.1. Если данное право отсутствует, ссылка «Удалить категорию» на странице редактирования категории не должна отображаться.
4. Разработать автоматические тесты для проверки написанного функционала.
4.1. Протестировать процесс миграции данных в таблицу категорий.
4.2. Протестировать процесс создания/редактирования организаций с использованием виджета выбора категории.
4.3. Протестировать корректность работу следующих действий (заметка: по крайней мере по одному успешному и неудачному тесту на каждый пункт):
4.3.1. Просмотр списка категорий организаций.
4.3.2. Редактирование существующей категории организации.
4.3.3. Создание новой категории организации.
4.3.3.1. Создание корневой категории организации.
4.3.4. Удаление категории организации.
4.4. Протестировать обновленную политику безопасности.
Присылайте примеры кода и цену своей работы на Denis.Gorbachev@trueoffice.ru
Опубликован 29.05.2011 в 10:58