import zope.interface
from zope.schema import Container
class ISite(zope.interface.Interface):
"""Локальный сайт"""
catalogs = Container(title=u"Каталог справочников",
description=u"Тут содержатся справочники глобальные для всех",
required=True)
homes = Container(title=u"Домашние контейнеры пользователей",
description=u"Тут содержатся контейнеры для пользовательских
данных и справочников",
required=True)
Дальше в ice.control я их не вижу из-за того, что нет доступа к
методам __len__.
вот ZCML
<configure
xmlns="http://namespaces.zope.org/zope"
i18n_domain="bbtutorial">
<interface
interface=".interfaces.ISite"
type="zope.app.content.interfaces.IContentType"
/>
<class class=".Site">
<require
interface=".interfaces.ISite"
permission="zope.Public"
/>
<require
set_schema=".interfaces.ISite"
permission="zope.ManageContent"
/>
<require
interface="zope.container.interfaces.IReadContainer"
permission="zope.Public"
/>
<allow attributes="getSiteManager" />
<allow attributes="homes" />
<require
interface="zope.container.interfaces.IWriteContainer"
permission="zope.ManageContent"
/>
</class>
<subscriber
for=".interfaces.ISite
zope.app.container.interfaces.IObjectAddedEvent"
handler=".config.createNewSite"
/>
</configure>
<allow attributes="homes" /> делает его неработоспособным. Как
правильно расписать такое?
Я попробовал сделать чтобы у некоего объекта ВСЕГДА были в
обязательном порядке некоторые подконтейнеры:
import zope.interface
from zope.schema import Container
class ISite(zope.interface.Interface):
"""Локальный сайт"""
catalogs = Container(title=u"Каталог справочников",
description=u"Тут содержатся справочники глобальные для всех",
required=True)
homes = Container(title=u"Домашние контейнеры пользователей",
description=u"Тут содержатся контейнеры для пользовательских
данных и справочников",
required=True)
Дальше в ice.control я их не вижу из-за того, что нет доступа к
методам __len__.
--
Russian Zope3 group http://zope3.ru/
Для отправки сообщений zope...@googlegroups.com
Отписаться zope3-ru-u...@googlegroups.com
Архив http://groups.google.com/group/zope3-ru
On 25 авг, 20:24, Ilshad Khabibullin <astoon....@gmail.com> wrote:
> 25 августа 2010 г. 21:46 пользователь demm...@gmail.com
> <demm...@gmail.com>написал:
>
> > Я попробовал сделать чтобы у некоего объекта ВСЕГДА были в
> > обязательном порядке некоторые подконтейнеры:
>
> > import zope.interface
> > from zope.schema import Container
> > class ISite(zope.interface.Interface):
> > """Локальный сайт"""
> > catalogs = Container(title=u"Каталог справочников",
> > description=u"Тут содержатся справочники
> > глобальные для всех",
> > required=True)
> > homes = Container(title=u"Домашние контейнеры пользователей",
> > description=u"Тут содержатся контейнеры для
> > пользовательских
> > данных и справочников",
> > required=True)
>
> > Дальше в ice.control я их не вижу из-за того, что нет доступа к
> > методам __len__.
>
> И не будете видеть, но не и за __len__.
> Нужно использовать контейнер как контейнер. А в данном случае это
> специфические атрибуты. Если действительно надо их видеть в дереве админки,
> но нужно написать заказной адаптер к
Но я их для этого еще и присвоил как
container[u'children']=container.children
Вот тут как быть-то?
На самом деле я пока конечно играюсь, но интерестно.