03 Задания.txt
2008-01-12 12:00Обертка объекта для отображения в Zope; Контейнер в Zope; явно указывающую namespace для текущего объекта (автоматической генерацией траверсера к нему). ...
Темы заданий для практической работы:
1. Объект на питоне;
2. Обертка объекта для хранения в ZODB;
3. Инкременты атрибутов объекта и конфликты транзакций;
4. Обертка объекта для отображения в Zope;
5. Обертка объекта для сохранения состояния в postgresql;
6. Контейнер в Zope;
7. Обертывания контейнера стандартными представлениями;
8. Написать свое предствление контейнера;
9. Настройка объекта с использованием аннотаций;
10. Сделать каталог объектов;
10. Новостной объект: статья + анонс, анонс генерируется автоматически:
-- Отбираются предложения с ключевыми словами;
11. Сделать классификатор объектов;
Классификатор работает по дереву правил выбора. Существуют
две версии классификатора:
-- Объект классифицируется в момент размещения;
-- Объект классифицируется с использованием аналога ZCatalog;
-- Объект классифицируется в момент отображения (при траверсе иерархии создается фильтр для
базы данных и в момент отображения фильтр применяется);
12. Сделать кеш форматируемых объектов;
-- отслеживать даты и изменять в момент обращения;
-- отслеживать сохранение и изменять в момент изменения;
12. Сделать свою директиву zcml;
13. Исправить существующую директиву ZCML;
14. Что-то про траверс хинт;
15. Что-то про работу с пользователями;
Результирующее задание:
Собрать из того, что получилось, новостную службу:
- Новости вводятся thru the web;
- Формат новости -- анонс + текст;
- Существует каталог непросмотренных url-ов (например, что бы сделать спайдер);
- Новости автоматически классифицируются;
- Новости автоматически форматируются;
Задание собирается несколькими способами из разработанных компонент
16. Нечеткий траверсер - выполняет траверс, даже если каталог набран с
ошибками (сваливается к наиболее похожему). Для оценки похожести
использовать difflib (SequenceMatcher(None,
"qwerty","qwety").ratio())
17. Задания на AJAX интерфейсы (KSS, http://kukit.org/):
- Добавление тегов (пример на Flickr)
- Поле с autocomplete
- Голосование без перезагузки страницы (установка галочки)
- Проверка на заполнение формы основанной на схеме без перезагрузки страницы (сложное)
- Заливка файла со скролбаром
18. Реализовать прокси вокруг объекта, благодаря которому (1) значение любого атрибута проксируемого
объекта получается как строковое, (2) результат вызова любого метода превращается в строку.
19. Реализовать прокси, кеширующий обращения к объекту.
20. Написать zcml-директиву. явно указывающую namespace для текущего объекта (автоматической генерацией траверсера к нему).
21. Написать индекс для каталога, позволяющий искать сходные картинки.
22. Написать zcml-директиву, позволяющую быстро составлять представления для
аннотаций.
23. Написать траверсер, предоставляющий вместо текущего объекта, специальную обертку, снабженную интерфейсами редактирования
аннотаций.
24. Доработатать zcml-директиву, составляющую представлеиния для аннотаций так, что бы она создавала
адаптер.
25. Доработать viewletManager наличием фильтра (как у menuItem).



