2007-11-10

Zope3 продукты ng.lib ng.utility

ng.schema

Андрей Орлов  2007-11-10 16:06

Этот продукт содержит разработанные нами поля и виджеты для них. Может быть какие-то из них окажутся полезны для вас.

Продукт

Название:
ng.schema
Выложен на PyPI
Репозиторий
Описание продукта ng.schema

Описание продукта ng.schema

Продукт ng.schema предоставляет поля схем интерфейсов и виджеты для них.

interfaceswitcher

Модуль предоставляет два поля, которые могут быть использованы для динамического назначения интерфейсов:

InterfaceChoice
Назначение одного интерефейса из списка;
InterfaceSet
Назначение нескольких интерфейсов из списка.

Интерфейсы выбираются из числа субинтерфейсов интерфейса, передаваемого полю в качестве параметра.

Пример использования:

from ng.schema.interfaceswitcher.interfacechoicefield import InterfaceChoice
from ng.schema.interfaceswitcher.interfacesetfield import InterfaceSet

class IA(Interface) :
    pass

class IA1(IA) :
    pass

class IA2(IA) :
    pass

class IOb(Interface) :

    ifc = InterfaceChoice(
        title=u'Interface of IA',
        interface = IA,
        )

    ifs = InterfaceSet(
        title=u'Interface of IA',
        interface = IA,
        with_title=True
        )

В приведенном примере аргумент interface используется, чтобы передать базовый интерфейс для коллекции переключаемых интерфейсов, а флаг with_title управляет способом формирования словаря интерфейсов: истинное значение вызовет формирование словаря с названиями элементов, взятыми из строки документации (__doc__) в интерфейсе, в противном случае название формируется точечным синтаксисом пути к интерфейсу.

regexp

Модуль предоставляет поля, выполняющие проверку текста регулярным выражением и его преобразование правилами переписывания. Каждое правило переписывания состоит из регулярного выражения, собирающим словарь из фрагментов текста, и строки формата, использумой, чтобы распечатать словарь.

Пример использования:

from ng.schema.regexp.regexpfield import Regexp
class IOb(Interface) :
    title = Regexp(title = u'Title',
        description = u'Title',
        default = u'',
        required = True,
        regexp = (
              (False, u"^.*/.*$", u"Title do not content symbol '/'"),
            ),
        rewrite = (
            (u"^\s*(?P<name>\w+)\s*-\s*(?P<number>[0-9]+)\s*$", u"%(name)s-%(number)s"),
            (u"^\s*(?P<name>[^\s])\s*$", u"%(name)s"),
            )
        )

Поле, определенное в этом примере, позволяет ввести строку, не содержащую символ "/", и вырезает из нее пробелы вокруг тире между названием и номером, затем концевые пробелы.

floatdaytime

Поле позволяет представить атрибут, содержащий число с плавающей запятой, в форме строки времени в формате "HH:MM:SS".

Пример использования:

from ng.schema.floatdaytime.floatdaytime import FloatDayTime
class IOb(Interface) :
    time = FloatDayTime(
        title = u"Time",
        description = u"Time of day",
        required = False,
        min=u'00:00',
        max=u'24:00',
        default=u'00:00'
        )

principalidwidget

Виджет позволяет автоматически заполнять текстовое поле идентификатором пользователя, сохраняющего ее на сервере. Поле отображается как нередактируемое и заполненое именем пользователя. Имя и идентификатор пользователя берутся из атрибутов запроса.

Пример использования:

<addform
    label="Add Article"
    name="AddArticle.html"
    schema="ng.content.article.interfaces.IDocShortLogo"
    content_factory="ng.content.article.article.article.Article"
    class=".nexturl.NextUrl"
    permission="zope.ManageContent"
        layer="...interfaces.GreenpsySkin"
    set_before_add="title"
        >
        <widget
                field="author"
                class="ng.schema.principalidwidget.principalidwidget.PrincipalIdWidget" />
</addform>

dropdowndatewidget

Виджет позволяет вводить дату выбором значения из трех выпадающих списков для дня, месяца и года.

Пример использования:

 <editform
     schema="..interfaces.IProfileAnnotation"
     for="..interfaces.IProfileAnnotation"
     label="Profile"
     name="profileannotation.html"
     permission="zope.ManageContent"
     menu="zmi_views" title="ProfileAnnotation"
     >
     <widget field="birthday" class="ng.schema.dropdowndatewidget.dropdowndatewidget.DropDownDateWidget" />
</editform>

Вложено:

ng.schema README.txt 2008-10-23 11:36 Stepan Lomov 

This product provide a few fields and widgets.

Эпицентр Zope3 Учат тут Нейросети Репозиторий Статистика Редакторам Проекты
Подписаться на RSS Feed Официальный сайт Zope3 Московская группа изучения реактивного движения The Dream Bot Site noooxml