среда, 27 марта 2013 г.

Создание файловой библиотеки

Файловая библиотека создается загрузкой файлов в выбранный фолдер Plone. Для этого находясь внутри фолдера нужно создать  новый объект типа "Файл", дать ему имя и указать файл для загрузки. Для обслуживания библиотеки нужно создать пользовательский интерфейс, частной задачей для которого будет операция поиска файла с указанным идентификатором. ля этого в ZMI в папке custom создайте объект типа Script(Python) c содержимым:
request=container.REQUEST
id_file=request['file_item']
files = context.portal_catalog.searchResults(portal_type = 'File', id=id_file)
file = files[0].getObject()
data = file.get_data()

Строка 2 скрипта: производится получение значения переменной с ключем file_item из объекта request.Предполагается, что эта переменная уже есть в REQUEST после вызова сответствующей формы или передачи параметра  через GET-запрос.
Строка 3 скрипта: производится получение выборки из portal_catalog по запросу поиска
Строка 4 скрипта: предполагаем что  файл с нужным идентификатором существует. В этом случае выборка, представляющая собой список ссылок на найденные объекты, будет содержать только один элемент. С помощью метода getObject() преобразуем ссылку в реальный объект, представляющий нужный файл в Plone.
Строка 5 скрипта: получаем содержимое файла.
Получение значений, записанных в файл, зависит от структуры записей. Как минимум, нужно разбить содержимое файла на строки, а затем получать данные из каждой строки. Способы решения этой задачи неоднократно обсуждались на занятиях.

вторник, 5 марта 2013 г.

Выполнение запросов к каталогам Plone

В связи с трудностями использования ключевого слова portal в последних версиях Plone рекомендуется использовать следующий вариант выполнения запросов к portal_catalog и другим каталогам:
from Products.CMFCore.utils import getToolByName
from zope.site.hooks import getSite

#получаем сайт как объект       
site = getSite()   


#получаем объект каталога
catalog = getToolByName(site, 'portal_catalog')

#выполняем запрос и  #преобразуем его результата в список объектов
result = [i.getObject() for i in catalog.searchResults({'portal_type': 'Folder'})]

направления исследований для студентов

Проводятся научные исследования в области изучения использования технологий управления знаниями, проектирования информационных систем, разработки веб-приложений  и объектно-ориентированного программирования. Приглашаются для участия студенты 2-4 курсов.

Для научной деятельности студентов предлагаются следующие направления исследований:

1.Разработка семантических моделей для декларативного и генеративного программирования
2.Использование семантических моделей при проектировании программного обеспечения
3.Разработка языков DSL и редакторов для них
    Разработка  редактора онтологий
    Разработка  редактора онтологии задач
    Разработка  редактора моделирования программных компонент
    Разработка редактора разметки веб-страниц
    Разработка  редактора навигационной модели портала
    Разработка  редактора визуальных компонент
4.Использование объектной базы данных для хранения онтологий
    Разработка компонент для хранения онтологий
    Разработка компонент обеспечения запросов к онтологии
    Инструменты визуализации онтологий
5.Разработка инструментальной среды семантического проектирования программного обеспечения
6.Разработка веб-системы для сопровождения учебного процесса с использованием онтологий
    Разработка семантических моделей для использования в системе
    Разработка специальных компонент

По каждому из направлений есть разработки в разной степени готовности. Работы по этим направлениям  могут быть оформлены как курсовые работы с дальнейшим написанием диплома по соответствующей теме.

Желающим обращаться лично на кафедру ИТ:
  понедельник: 10.00 - 15.20
  четверг: 9.00 -14.00
Либо присылать письмо на адрес greger-se@yandex.ru с указанием темы письма "научная работа", своих личных данных и номера группы.

Лабиринт и разработка игр

 Лабиринт Алгоритм поиска пути в лабиринте и его реализация на Python 3.4 Задача на создание программы для виртуального робота, способно...