source: publico/PortalInterlegis/produtos/il.portalinterlegis/trunk/src/il/portalinterlegis/browser/boxes/interfaces.py @ 6540

Última Alteração nesse arquivo desde 6540 foi 6540, incluída por mazza, 9 anos atrás

inicio da edicao do carrossel (falta concluir a interface)

File size: 2.0 KB
Linha 
1# -*- coding: utf-8 -*-
2import sys, inspect
3
4from plone.app.z3cform.wysiwyg import WysiwygFieldWidget
5from plone.autoform.interfaces import WIDGETS_KEY
6from plone.directives import form
7from plone.formwidget.autocomplete import AutocompleteFieldWidget
8from plone.formwidget.contenttree import PathSourceBinder
9from zope import schema
10
11
12class BoxSchema(form.Schema):
13    """Marker interface for box schemas.
14    """
15
16
17# decorator
18def rich(*args, **kwargs):
19    def f(cls):
20        cls.setTaggedValue(WIDGETS_KEY,
21                           dict([(k, WysiwygFieldWidget) for k in args],
22                                **kwargs))
23        return cls
24    return f
25
26
27@rich('text', target=AutocompleteFieldWidget)
28class ISimpleBox(BoxSchema):
29    title = schema.TextLine(title=u"Título", required=True)
30    subtitle = schema.TextLine(title=u"Subtítulo", required=True)
31    text = schema.Text(title=u"Texto", required=False)
32    target = schema.Choice(title=u"Conteúdo relacionado",
33                           source=PathSourceBinder(),
34                           required=False)
35    # TODO: imagem !!!
36
37
38# TODO: remover esse copiar-e-colar entre esse e ISimpleBox: extrair uma classe base comum?
39@rich('text', target=AutocompleteFieldWidget)
40class ICarouselItem(BoxSchema):
41    target = schema.Choice(title=u"Conteúdo relacionado",
42                           source=PathSourceBinder(),
43                           required=False)
44    image = schema.TextLine(title=u"URL da imagem", required=False) # TODO: imagem de verdade !!!
45    title = schema.TextLine(title=u"Título", required=True)
46    text = schema.Text(title=u"Texto", required=False)
47
48
49class ICalendar(BoxSchema):
50    pass
51
52
53class IAcompanheOInterlegis(BoxSchema):
54    pass
55
56
57class ITabsPilares(BoxSchema):
58    pass
59
60
61class IHighlight(BoxSchema):
62    pass
63
64
65def box_schemas():
66    """Returns all the BoxSchema's in this module.
67    """
68    return [cls for name, cls in inspect.getmembers(sys.modules[__name__])
69            if hasattr(cls, 'extends') and cls.extends(BoxSchema)]
Note: Veja TracBrowser para ajuda no uso do navegador do trac.
 

The contents and data of this website are published under license:
Creative Commons 4.0 Brasil - Atribuir Fonte - Compartilhar Igual.