Skip to content

Commit

Permalink
Do not try to create scales on news article with no lead image
Browse files Browse the repository at this point in the history
  • Loading branch information
hvelarde committed Nov 3, 2016
1 parent 165659e commit a5af0d7
Show file tree
Hide file tree
Showing 5 changed files with 35 additions and 110 deletions.
5 changes: 3 additions & 2 deletions CHANGES.rst
Expand Up @@ -6,8 +6,9 @@ There's a frood who really knows where his towel is.
2.0b4 (unreleased)
^^^^^^^^^^^^^^^^^^

- Don't show image on tile collection if image attribute is None (fixes `#178`_).
[rodfersou]
- Do not try to create scales on news article with no lead image;
this was causing issues in some Collection view methods and in collective.cover's Collection tile (fixes `#178`_).
[hvelarde]


2.0b3 (2016-09-12)
Expand Down
10 changes: 0 additions & 10 deletions buildout.cfg
Expand Up @@ -18,16 +18,6 @@ parts +=
robot
zopepy

extensions +=
mr.developer

always-checkout = false
auto-checkout =
collective.cover

[sources]
collective.cover = git https://github.com/collective/collective.cover.git branch=nitf_issue_178

[code-analysis]
recipe = plone.recipe.codeanalysis[recommended]
directory = ${buildout:directory}/src/collective/nitf
Expand Down
19 changes: 10 additions & 9 deletions src/collective/nitf/browser/scaling.py
Expand Up @@ -32,12 +32,13 @@ def traverse(self, name, furtherPath):
raise TraversalError(self, name)

def scale(self, fieldname=None, scale=None, height=None, width=None, **kwargs):
"""Fix image generation on summary_view in collections."""
if fieldname == 'image':
image = self.context.image()
scales = image.restrictedTraverse('@@images')
return scales.scale(fieldname, scale, height, width, **kwargs)
else:
# XXX: check if we're getting here at some point
return super(ImageScaling, self).scale(
fieldname, scale, height, width, **kwargs)
"""Deal with issues created by our fake image field."""
if fieldname != 'image':
return None

image = self.context.image()
if image is None:
return None

scales = image.restrictedTraverse('@@images')
return scales.scale(fieldname, scale, height, width, **kwargs)
22 changes: 22 additions & 0 deletions src/collective/nitf/tests/test_collection.py
Expand Up @@ -12,6 +12,7 @@ class CollectionTypeTestCase(unittest.TestCase):

def setUp(self):
self.portal = self.layer['portal']
self.request = self.layer['request']

with api.env.adopt_roles(['Manager']):
self.folder = api.content.create(
Expand Down Expand Up @@ -108,3 +109,24 @@ def test_urgency_filter(self, ):
self.assertEqual(len(self.c1.queryCatalog()), 2)
expected = [b.getObject() for b in self.c1.queryCatalog()]
self.assertEqual([n2, n3], expected)

def test_render_view_methods(self, ):
# https://github.com/collective/collective.nitf/issues/178
from collective.nitf.testing import get_image
from collective.nitf.testing import IMAGES
from collective.nitf.tests.api_hacks import set_image_field

# news article with lead image
obj = api.content.create(self.folder, 'collective.nitf.content', 'n1')
api.content.create(obj, 'Image', 'img1')
set_image_field(obj['img1'], get_image(IMAGES[0]), 'image/jpeg')
# news article without lead image
api.content.create(self.folder, 'collective.nitf.content', 'n2')
assert len(self.c1.queryCatalog()) == 2

# traverse view methods and assert they are rendered without errors
types = self.portal['portal_types']
view_methods = types['Collection'].view_methods
for view in view_methods:
rendered = self.c1.restrictedTraverse(view)()
self.assertIsInstance(rendered, unicode)
89 changes: 0 additions & 89 deletions src/collective/nitf/tests/test_collection_tile.py

This file was deleted.

0 comments on commit a5af0d7

Please sign in to comment.