Skip to content

Commit

Permalink
add banner tile that will replace image and link tiles (closes #218)
Browse files Browse the repository at this point in the history
  • Loading branch information
hvelarde committed May 30, 2013
1 parent 5b540eb commit c6aa35b
Show file tree
Hide file tree
Showing 10 changed files with 280 additions and 18 deletions.
4 changes: 4 additions & 0 deletions docs/HISTORY.rst
Expand Up @@ -4,6 +4,9 @@ There's a frood who really knows where his towel is
1.0a4 (unreleased)
^^^^^^^^^^^^^^^^^^

- Add banner tile that will replace image and link tiles. (closes `#218`_).
[hvelarde]

- Refactor image tile to use original image and scales, when possible.
[ericof, hvelarde]

Expand Down Expand Up @@ -180,3 +183,4 @@ There's a frood who really knows where his towel is
.. _`#191`: https://github.com/collective/collective.cover/issues/191
.. _`#198`: https://github.com/collective/collective.cover/issues/198
.. _`#206`: https://github.com/collective/collective.cover/issues/206
.. _`#218`: https://github.com/collective/collective.cover/issues/218
11 changes: 8 additions & 3 deletions src/collective/cover/locales/collective.cover.pot
@@ -1,7 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: collective.cover\n"
"POT-Creation-Date: 2013-05-29 21:16+0000\n"
"POT-Creation-Date: 2013-05-30 20:41+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI +ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
Expand Down Expand Up @@ -143,6 +143,10 @@ msgstr ""
msgid "Drag&amp;drop an image here to populate the tile."
msgstr ""

#: collective/cover/tiles/templates/banner.pt:8
msgid "Drag&amp;drop an image or link here to populate the tile."
msgstr ""

#: collective/cover/layout_templates/tile.pt:47
msgid "Edit"
msgstr ""
Expand Down Expand Up @@ -180,9 +184,9 @@ msgstr ""
msgid "HTML tag"
msgstr ""

#: collective/cover/tiles/banner.py:23
#: collective/cover/tiles/basic.py:36
#: collective/cover/tiles/image.py:18
#: collective/cover/tiles/link.py:27
msgid "Image"
msgstr ""

Expand Down Expand Up @@ -346,12 +350,13 @@ msgstr ""
msgid "Tile saved"
msgstr ""

#: collective/cover/tiles/banner.py:18
#: collective/cover/tiles/basic.py:26
#: collective/cover/tiles/embed.py:19
#: collective/cover/tiles/file.py:41
msgid "Title"
msgstr ""

#: collective/cover/tiles/banner.py:28
#: collective/cover/tiles/link.py:32
msgid "URL"
msgstr ""
Expand Down
13 changes: 9 additions & 4 deletions src/collective/cover/locales/es/LC_MESSAGES/collective.cover.po
Expand Up @@ -3,8 +3,8 @@
msgid ""
msgstr ""
"Project-Id-Version: collective.cover\n"
"POT-Creation-Date: 2013-05-29 21:16+0000\n"
"PO-Revision-Date: 2013-05-29 18:19-0300\n"
"POT-Creation-Date: 2013-05-30 20:41+0000\n"
"PO-Revision-Date: 2013-05-30 17:42-0300\n"
"Last-Translator: Héctor Velarde <hector.velarde@gmail.com>\n"
"Language-Team: Spanish <https://github.com/collective>\n"
"MIME-Version: 1.0\n"
Expand Down Expand Up @@ -146,6 +146,10 @@ msgstr "Enlace de descarga"
msgid "Drag&amp;drop an image here to populate the tile."
msgstr "Arrastre y suelte una imagen aquí."

#: collective/cover/tiles/templates/banner.pt:8
msgid "Drag&amp;drop an image or link here to populate the tile."
msgstr "Arrastre y suelte una imagen o un enlace aquí."

#: collective/cover/layout_templates/tile.pt:47
msgid "Edit"
msgstr "Editar"
Expand Down Expand Up @@ -183,9 +187,9 @@ msgstr "Filtrar elementos"
msgid "HTML tag"
msgstr "Tag HTML"

#: collective/cover/tiles/banner.py:23
#: collective/cover/tiles/basic.py:36
#: collective/cover/tiles/image.py:18
#: collective/cover/tiles/link.py:27
msgid "Image"
msgstr "Imagen"

Expand Down Expand Up @@ -349,12 +353,13 @@ msgstr "Configuración del tile guardada."
msgid "Tile saved"
msgstr "Tile guardado"

#: collective/cover/tiles/banner.py:18
#: collective/cover/tiles/basic.py:26
#: collective/cover/tiles/embed.py:19
#: collective/cover/tiles/file.py:41
msgid "Title"
msgstr "Titulo"

#: collective/cover/tiles/banner.py:28
#: collective/cover/tiles/link.py:32
msgid "URL"
msgstr "URL"
Expand Down
11 changes: 8 additions & 3 deletions src/collective/cover/locales/fr/LC_MESSAGES/collective.cover.po
Expand Up @@ -4,7 +4,7 @@
msgid ""
msgstr ""
"Project-Id-Version: collective.cover\n"
"POT-Creation-Date: 2013-05-29 21:16+0000\n"
"POT-Creation-Date: 2013-05-30 20:41+0000\n"
"PO-Revision-Date: 2013-05-29 18:20-0300\n"
"Last-Translator: Héctor Velarde <hector.velarde@gmail.com>\n"
"Language-Team: French <kde-i18n-doc@kde.org>\n"
Expand Down Expand Up @@ -148,6 +148,10 @@ msgstr "Lien de téléchargement"
msgid "Drag&amp;drop an image here to populate the tile."
msgstr "Veuillez glisser &amp; déposer une image ici (via le bouton 'Ajouter du contenu')"

#: collective/cover/tiles/templates/banner.pt:8
msgid "Drag&amp;drop an image or link here to populate the tile."
msgstr ""

#: collective/cover/layout_templates/tile.pt:47
msgid "Edit"
msgstr "Modifier"
Expand Down Expand Up @@ -185,9 +189,9 @@ msgstr "Filtrer les éléments"
msgid "HTML tag"
msgstr "Balise HTML"

#: collective/cover/tiles/banner.py:23
#: collective/cover/tiles/basic.py:36
#: collective/cover/tiles/image.py:18
#: collective/cover/tiles/link.py:27
msgid "Image"
msgstr "Image"

Expand Down Expand Up @@ -351,12 +355,13 @@ msgstr "Configuration de la tuile enregistrée."
msgid "Tile saved"
msgstr "Tuile enregistrée"

#: collective/cover/tiles/banner.py:18
#: collective/cover/tiles/basic.py:26
#: collective/cover/tiles/embed.py:19
#: collective/cover/tiles/file.py:41
msgid "Title"
msgstr "Titre"

#: collective/cover/tiles/banner.py:28
#: collective/cover/tiles/link.py:32
msgid "URL"
msgstr "URL"
Expand Down
17 changes: 11 additions & 6 deletions src/collective/cover/locales/pt_BR/LC_MESSAGES/collective.cover.po
@@ -1,8 +1,8 @@
msgid ""
msgstr ""
"Project-Id-Version: collective.cover\n"
"POT-Creation-Date: 2013-05-29 21:16+0000\n"
"PO-Revision-Date: 2013-05-29 18:19-0300\n"
"POT-Creation-Date: 2013-05-30 20:41+0000\n"
"PO-Revision-Date: 2013-05-30 17:46-0300\n"
"Last-Translator: Héctor Velarde <hector.velarde@gmail.com>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
Expand Down Expand Up @@ -141,7 +141,11 @@ msgstr "Link para download"

#: collective/cover/tiles/templates/image.pt:8
msgid "Drag&amp;drop an image here to populate the tile."
msgstr "Arraste e solte uma imagem aqui para popular este tile."
msgstr "Arraste e solte uma imagem aqui."

#: collective/cover/tiles/templates/banner.pt:8
msgid "Drag&amp;drop an image or link here to populate the tile."
msgstr "Arraste e solte uma imagem ou um link aqui."

#: collective/cover/layout_templates/tile.pt:47
msgid "Edit"
Expand Down Expand Up @@ -180,9 +184,9 @@ msgstr "Filtrar itens"
msgid "HTML tag"
msgstr "Tag HTML"

#: collective/cover/tiles/banner.py:23
#: collective/cover/tiles/basic.py:36
#: collective/cover/tiles/image.py:18
#: collective/cover/tiles/link.py:27
msgid "Image"
msgstr "Imagem"

Expand Down Expand Up @@ -262,7 +266,7 @@ msgstr "Arraste e solte um arquivo aqui."

#: collective/cover/tiles/templates/link.pt:8
msgid "Please drag&amp;drop a link here to populate the tile."
msgstr "Arraste e solte um link aqui para popular este tile"
msgstr "Arraste e solte um link aquie"

#: collective/cover/tiles/templates/basic.pt:9
#: collective/cover/tiles/templates/contentbody.pt:8
Expand Down Expand Up @@ -346,12 +350,13 @@ msgstr "Configuração do tile salva."
msgid "Tile saved"
msgstr "Tile salvo"

#: collective/cover/tiles/banner.py:18
#: collective/cover/tiles/basic.py:26
#: collective/cover/tiles/embed.py:19
#: collective/cover/tiles/file.py:41
msgid "Title"
msgstr "Título"

#: collective/cover/tiles/banner.py:28
#: collective/cover/tiles/link.py:32
msgid "URL"
msgstr "URL"
Expand Down
3 changes: 1 addition & 2 deletions src/collective/cover/profiles/default/registry.xml
Expand Up @@ -19,14 +19,13 @@

<record name="plone.app.tiles">
<value purge="false">
<element>collective.cover.banner</element>
<element>collective.cover.basic</element>
<element>collective.cover.carousel</element>
<element>collective.cover.collection</element>
<element>collective.cover.contentbody</element>
<element>collective.cover.embed</element>
<element>collective.cover.file</element>
<element>collective.cover.image</element>
<element>collective.cover.link</element>
<element>collective.cover.list</element>
<element>collective.cover.pfg</element>
<element>collective.cover.richtext</element>
Expand Down
83 changes: 83 additions & 0 deletions src/collective/cover/tests/test_banner_tile.py
@@ -0,0 +1,83 @@
# -*- coding: utf-8 -*-

from collective.cover.testing import INTEGRATION_TESTING
from collective.cover.tiles.base import IPersistentCoverTile
from collective.cover.tiles.banner import BannerTile
from plone.registry.interfaces import IRegistry
from plone.tiles.interfaces import ITileType
from zope.component import getUtility
from zope.interface.verify import verifyClass
from zope.interface.verify import verifyObject

import unittest


class LinkTileTestCase(unittest.TestCase):

layer = INTEGRATION_TESTING

def setUp(self):
self.portal = self.layer['portal']
self.request = self.layer['request']
self.name = 'collective.cover.banner'
self.tile = self.portal.restrictedTraverse(
'@@%s/%s' % (self.name, 'test-tile'))

def test_interface(self):
self.assertTrue(IPersistentCoverTile.implementedBy(BannerTile))
self.assertTrue(verifyClass(IPersistentCoverTile, BannerTile))

tile = BannerTile(None, None)
self.assertTrue(IPersistentCoverTile.providedBy(tile))
self.assertTrue(verifyObject(IPersistentCoverTile, tile))

def test_tile_registration(self):
tile_type = getUtility(ITileType, self.name)
self.assertIsNotNone(tile_type)
self.assertTrue(issubclass(tile_type.schema, IPersistentCoverTile))
registry = getUtility(IRegistry)
self.assertIn(self.name, registry['plone.app.tiles'])

def test_default_configuration(self):
self.assertTrue(self.tile.is_configurable)
self.assertTrue(self.tile.is_editable)
self.assertTrue(self.tile.is_droppable)

def test_accepted_content_types(self):
self.assertListEqual(
self.tile.accepted_ct(), ['Image', 'Link'])

def test_populate_with_image(self):
obj = self.portal['my-image']
self.tile.populate_with_object(obj)
self.assertEqual("Test image", self.tile.Title())
self.assertTrue(self.tile.has_image)
self.assertIsNone(self.tile.getRemoteUrl())

def test_populate_with_link(self):
obj = self.portal['my-link']
self.tile.populate_with_object(obj)
self.assertEqual('Test link', self.tile.data['title'])
self.assertFalse(self.tile.has_image)
# FIXME: set remote_url on the object
self.assertEqual(self.tile.getRemoteUrl(), 'http://')

def test_render_empty(self):
self.assertIn(
"Drag&amp;drop an image or link here to populate the tile.", self.tile())

def test_render_with_image(self):
obj = self.portal['my-image']
self.tile.populate_with_object(obj)
rendered = self.tile()
self.assertIn('<img ', rendered)
# https://github.com/collective/collective.cover/issues/182
self.assertIn('alt="Test image"', rendered)

def test_render_with_link(self):
obj = self.portal['my-link']
self.tile.populate_with_object(obj)
rendered = self.tile()
self.assertNotIn('<img ', rendered)
# FIXME: set remote_url on the object
self.assertIn('<a href="http://">Test link</a>', rendered)

0 comments on commit c6aa35b

Please sign in to comment.