Conjunto de mudanças 6493 no repositório publico


Ignorar:
Timestamp:
13/06/2012 21:22:43 (9 anos atrás)
Autor:
mazza
Mensagem:

boxes: campo conteudo relacionado

Localização:
PortalInterlegis/produtos/il.portalinterlegis/trunk
Arquivos:
7 editados

Legenda:

Não Modificado
Adicionado
Removido
  • PortalInterlegis/produtos/il.portalinterlegis/trunk/inspecao.py

    r6492 r6493  
    1111boxmanager = BoxManager(ISimpleBox)
    1212boxmanager.box_content(context, 1)
     13
     14from Testing.ZopeTestCase.utils import startZServer
     15startZServer()
     16
     17with open("out", "w+") as f: f.write(browser.contents)
  • PortalInterlegis/produtos/il.portalinterlegis/trunk/setup.py

    r6489 r6493  
    3131          'five.grok',
    3232          'plone.app.theming',
    33           'z3c.form',
    3433          'plone.directives.form',
     34          'plone.app.z3cform',
     35          'plone.formwidget.contenttree',
     36          'plone.formwidget.autocomplete',
    3537      ],
    3638      extras_require={'test': ['plone.app.testing', 'mock']},
  • PortalInterlegis/produtos/il.portalinterlegis/trunk/src/il/portalinterlegis/browser/interfaces.py

    r6489 r6493  
    33from plone.autoform.interfaces import WIDGETS_KEY
    44from plone.directives import form
     5from plone.formwidget.autocomplete import AutocompleteFieldWidget
     6from plone.formwidget.contenttree import PathSourceBinder
    57from zope import schema
    68from zope.interface import Interface
     
    1820
    1921# decorator
    20 def with_widget(**kwargs):
     22def rich(*args, **kwargs):
    2123    def f(cls):
    22         cls.setTaggedValue(WIDGETS_KEY, kwargs)
     24        cls.setTaggedValue(WIDGETS_KEY,
     25                           dict([(k, WysiwygFieldWidget) for k in args],
     26                                **kwargs))
    2327        return cls
    2428    return f
     
    5054# BOX INTERFACES
    5155
    52 
    5356@template('''
    5457      <div class="simple-box">
    55         <h2>%(title)s</h2>
    56         <h3 class="icon-news"><a href="">%(subtitle)s</a></h3>
    57         <p>
    58           %(text)s
    59         </p>
     58        <a href="/portal/%(target)s">
     59          <h2>%(title)s</h2>
     60          <h3 class="icon-news">%(subtitle)s</h3>
     61          <p>
     62            %(text)s
     63          </p>
     64        </a>
    6065      </div>''')
    61 @with_widget(text=WysiwygFieldWidget)
     66@rich('text', target=AutocompleteFieldWidget)
    6267class ISimpleBox(form.Schema):
    6368    title = schema.TextLine(title=u"Título", required=True)
    6469    subtitle = schema.TextLine(title=u"Subtítulo", required=True)
    6570    text = schema.Text(title=u"Texto", required=False)
     71    target = schema.Choice(title=u"Conteúdo relacionado",
     72                            source=PathSourceBinder(),
     73                            required=False)
    6674
    6775@template('''
     
    108116          </div>
    109117''')
     118@rich('text', target=AutocompleteFieldWidget)
    110119class ICarousel(Interface):
    111     pass
     120    title = schema.TextLine(title=u"Título", required=True)
     121    text = schema.Text(title=u"Texto", required=False)
     122    target = schema.Choice(title=u"Conteúdo relacionado",
     123                           source=PathSourceBinder(portal_type='Document'))
    112124
    113125@template('''
  • PortalInterlegis/produtos/il.portalinterlegis/trunk/src/il/portalinterlegis/profiles/default/metadata.xml

    r6394 r6493  
    44  <dependencies>
    55    <dependency>profile-plone.app.theming:default</dependency>
     6    <dependency>profile-plone.formwidget.contenttree:default</dependency>
     7    <dependency>profile-plone.formwidget.autocomplete:default</dependency>
    68  </dependencies>
    79</metadata>
  • PortalInterlegis/produtos/il.portalinterlegis/trunk/src/il/portalinterlegis/tests/fixtures.py

    r6485 r6493  
    3434        import il.portalinterlegis
    3535        xmlconfig.file('configure.zcml',
     36                       plone.formwidget.contenttree,
     37                       context=configurationContext)
     38        import il.portalinterlegis
     39        xmlconfig.file('configure.zcml',
    3640                       il.portalinterlegis,
    3741                       context=configurationContext)
  • PortalInterlegis/produtos/il.portalinterlegis/trunk/src/il/portalinterlegis/tests/testintegration.py

    r6486 r6493  
    7979        boxmanager = BoxManager(ISimpleBox)
    8080
    81         def use_box_form(title, subtitle, text, num):
     81        def use_box_form(title, subtitle, text, target, num):
    8282            browser = self.layer.manager_browser()
    8383            browser.open(self.url(boxmanager._box_name_for_url(num)))
     
    8585            browser.getControl(name='form.widgets.subtitle').value = subtitle
    8686            browser.getControl(name='form.widgets.text').value = text
     87            # TODO: nao sei como testar um AutocompleteFieldWidget com o zope.testbrowser (tem javascript)
     88            # browser.getControl(label=u'Conteúdo relacionado').value = target
    8789            browser.getControl(name='form.buttons.apply').click()
    8890
    89         use_box_form('TIT_1', 'SUBTIT_1', 'TEXT_1', 1)
    90         use_box_form('TIT_2', 'SUBTIT_2', 'TEXT_2', 2)
    91         self.assertEqual({'title': 'TIT_1', 'subtitle': 'SUBTIT_1', 'text': 'TEXT_1'},
     91        use_box_form('TIT_1', 'SUBTIT_1', 'TEXT_1', 'ALVO_1', 1)
     92        use_box_form('TIT_2', 'SUBTIT_2', 'TEXT_2', 'ALVO_2', 2)
     93        self.assertEqual({'title': 'TIT_1', 'subtitle': 'SUBTIT_1', 'text': 'TEXT_1', 'target': None},
    9294                         boxmanager.box_content(context, 1))
    93         self.assertEqual({'title': 'TIT_2', 'subtitle': 'SUBTIT_2', 'text': 'TEXT_2'},
     95        self.assertEqual({'title': 'TIT_2', 'subtitle': 'SUBTIT_2', 'text': 'TEXT_2', 'target': None},
    9496                         boxmanager.box_content(context, 2))
    9597
  • PortalInterlegis/produtos/il.portalinterlegis/trunk/src/il/portalinterlegis/tests/testunitboxes.py

    r6484 r6493  
    2424    def test_html(self):
    2525        with patch.object(BoxManager, 'box_content') as mock:
    26             mock.return_value = {'title': 'TIT_1', 'subtitle': 'SUBTIT_1', 'text': 'TEXT_1'}
     26            mock.return_value = {'title': 'TIT_1', 'subtitle': 'SUBTIT_1', 'text': 'TEXT_1', 'target': 'alvo'}
    2727
    2828            boxmanager = BoxManager(ISimpleBox)
    2929            self.assertEqual('''
    3030      <div class="simple-box">
    31         <h2>TIT_1</h2>
    32         <h3 class="icon-news"><a href="">SUBTIT_1</a></h3>
    33         <p>
    34           TEXT_1
    35         </p>
     31        <a href="/portal/alvo">
     32          <h2>TIT_1</h2>
     33          <h3 class="icon-news">SUBTIT_1</h3>
     34          <p>
     35            TEXT_1
     36          </p>
     37        </a>
    3638      </div>
    3739        ''', boxmanager.html(_, _))
Note: Veja TracChangeset para ajuda no uso do visualizador de conjunto de mudanças.
 

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