Giter Club home page Giter Club logo

collective.plonetruegallery's Introduction

collective.plonetruegallery Documentation

https://secure.travis-ci.org/collective/collective.plonetruegallery.png

Introduction

collective.plonetruegallery is a Plone add-on that implements a very customizable and sophisticated gallery.

Plone Version Compatibility

Works with Plone 4.3 and earlier. For not-yet-working Plone 5 support, see the plone5 branch and issue #66.

How It Works

collective.plonetruegallery adds a Gallery View to Folders and Collections.

For any Folder or Collection containing or showing images, use the Display toolbar menu and select Gallery View.

Once that is done, a Gallery Settings toolbar menu is enabled for the type. With this, you can customize the various settings for the Gallery.

https://raw.githubusercontent.com/collective/collective.plonetruegallery/master/docs/collective.plonetruegallery-screenshot-01.jpg

https://raw.githubusercontent.com/collective/collective.plonetruegallery/master/docs/collective.plonetruegallery-screenshot-02.jpg

https://raw.githubusercontent.com/collective/collective.plonetruegallery/master/docs/collective.plonetruegallery-screenshot-03.jpg

https://raw.githubusercontent.com/collective/collective.plonetruegallery/master/docs/collective.plonetruegallery-screenshot-04.jpg

Supported Display Types

To install any of the various extra display types, you need to install the dependent package in buildout

  • galleria (included in default installation of collective.plonetruegallery)
  • contact sheet (collective.ptg.contactsheet)
  • thumbnail zoom gallery (collective.ptg.thumbnailzoom)
  • presentation (collective.ptg.presentation)
  • galleriffic (collective.ptg.galleriffic)
  • highslide (collective.ptg.highslide)
  • fancybox (collective.ptg.fancybox)
  • pikachoose (collective.ptg.pikachoose)
  • s3slider (collective.ptg.s3slider)
  • nivo slider (collective.ptg.nivoslider)
  • nivo gallery (collective.ptg.nivogallery)
  • content flow (collective.ptg.contentflow)
  • supersized (collective.ptg.supersized)

Buildout configuration

eggs =
  ...
  collective.plonetruegallery
  collective.ptg.highslide
  collective.ptg.fancybox
  collective.ptg.galleriffic
  collective.ptg.s3slider
  collective.ptg.pikachoose
  collective.ptg.nivoslider
  collective.ptg.nivogallery
  collective.ptg.contentflow
  collective.ptg.supersized
  collective.ptg.thumbnailzoom
  collective.ptg.contactsheet
  ...

Installing all galleries

If you want to install all available galleries, you could add

eggs =
  ...
  collective.plonetruegallery
  collective.ptg.allnewest
  ...

to buildout's egg section.

This will also install some galleries that are "under development".

Features

  • Flickr and Picasa Support!
  • Dexterity "Lead Image behaviour" support
  • Works with 'Image', 'News Item' and other content types that has a Image Field (provides IImageContent).
  • Also works with redturtle.smartlink and collective.contentleadimage (install http://pypi.python.org/pypi/collective.ptg.contentleadimage )
  • Customize gallery size, transition(limited transitions right now), timed and other settings
  • Can use nested galleries
  • searching and category selection for nested galleries
  • Galleria, Galleriffic, Highslide JS, s3slider, Pikachoose and Fancybox display types
  • display gallery inline
  • Products.Collage integration
  • Compatible with new-style Plone collections
  • Provides base settings configlet

Flickr and Picasa Web Album Support

  • to add support for these type of galleries you must install additional packages
  • install collective.ptg.flickr for Flickr support
  • install collective.ptg.picasa for Picasa Web Album Support(tested with 1.3.3 and 2.0.12)
  • on Plone 3.x you must also manually install hashlib for picasa support
  • these can just be added to your buildout or installed with easy_install or you can add the package to your egg section like

Displaying Gallery inline

A view (@@placegalleryview) can be used to place the gallery inside of other content.

Pop-up effect

you could do this:

1) Install http://plone.org/products/collective.prettyphoto
2) Mark the link to the gallery with "prettyPhoto" style (which
   has now been added) from Kupu or TinyMCE

Inline Gallery

For showing a gallery in another page, try something like this:

<object data="path/to/gallery/@@placegalleryview" height="400" width="500">
  <param name="data" value="path/to/gallery" />
</object>

Notes for successful inline object tag usage:

  • You will have to "whitelist" <object> and <param> in portal_transform safe-html.
  • When editing in Plone 4.2 you will have to switch your editor to Kupu since TinyMCE fracks up the object tag into a flash item.
  • If testing without Apache in front of your Plone you will need to make sure that the "path/to/gallery" path from the example above includes any levels above the Plone object in the Zope instance (eg. if your Plone object is inside of a folder named "version1", and the name of your gallery is "mygallery", then the path should read "/version1/Plone/mygallery". Of course, you will need to remove the "/version1/Plone" part when you put Apache in front of your Plone.

Or you can do the same with an iframe

Re-use gallery in page template

If you want to place the gallery in another page template, you can re-use the entire HTML as-is:

<tal:gallery tal:replace="structure context/fotos/@@placegalleryview" />

This has the advantage, over <object> embedding, that a modal (pop-up) showing the enlarged image will take up the entire screen, instead of just the <object> area.

Troubleshooting safe-html

If you have trouble, do this: Go to safe_html in portal_transforms tool Make sure param and object are valid tags (not nasty tag).

After that, you should flush the cache of ZODB by going to 1. Zope root app ZMI 2. Control Panel 3. Database 4. main (or whatever zodb you have) 5. Flush Cache tab 6. Press "Minimize" button

This will remove from ZODB cache all cooked texts. This procedure is mentioned at the top of safe_html in portal_transforms.

Upgrading

From 0.8*

The upgrade to version 0.8* is an important and large update. Basically, it gets rid of the Gallery type, replaces it with the regular Folder type along with a new view applied to the folder, namely the "Gallery View."

You can only successfully upgrade from the 0.8* series by first upgrading to a 1.x series release and then upgrading to the 2.x series.

From 1.x to 2.x

No longer support Slideshow 2 gallery which has been replaced with galleria.

From * to 3.x

You'll be required to change your respective collective.js dependencies to collective.ptg dependencies in buildout, re-run buildout.

Installation

Since this product depends on plone.app.z3cform, you'll need to add a few overrides for products versions in your buildout if you aren't using recent versions of Plone. Good news is that is you're using any other product that uses plone.app.z3cform, you'll already be good to go.

Basically, you'll need to add these to your buildout versions section ONLY IF you're running a plone < 4.1.

For Plone 4.0:

[versions]
z3c.form = 2.3.2
plone.app.z3cform = 0.5.0
plone.z3cform = 0.6.0
zope.schema = 3.6.0

and Plone 3.x:

[versions]
z3c.form = 1.9.0
plone.app.z3cform = 0.4.8
plone.z3cform = 0.5.10
zope.i18n = 3.4.0
zope.testing = 3.4.0
zope.component = 3.4.0
zope.securitypolicy = 3.4.0
zope.app.zcmlfiles = 3.4.3

These versions are not the exact versions plonetruegallery requires, it's just a known working set. If you already have plone.app.z3cform installed under different versions or wish to upgrade versions, you're fine doing so.

Then once you run buildout with this configuration, install collective.plonetruegallery via the the add-on product configuration. Also, make sure Plone z3cform support is installed too. If you experience issues where no settings appear in the Gallery Settings tab, reinstall Plone z3cform support.

Uninstall

First uninstall the collective.plonetruegallery product just like you would any other product. Then, go to portal_setup in the zmi and click on the Import tab. Once there, select the collective.plonetruegallery Uninstall Profile profile and run all the steps. Once that is done, you can remove the egg from your buildout.

Fetching of Images Explained

  • When rendering a picasa or flickr gallery, it checks if the images have been fetched within a day. If they have not, then it re-fetches the images for the gallery.
  • You can also force a specific gallery to be re-fetched by appending @@refresh to the gallery url
  • You can manually refresh all galleries on the site by typing in a url like mysite.com/@@refresh_all_galleries This means you can also setup a cron-like job to refresh all the galleries whenever you want to, just so it isn't done while a user is trying to render a page.

License Notes

This Plone product is under the GPL license; however, the Highslide JS display type uses the Creative Commons Attribution-NonCommercial 2.5 License and is only for non-commercial use unless you have purchased a commercial license from the Highslide website. collective.ptg.pixelentity gallery (under construction) also requires a license

Credits

Coding Contributions

  • Patrick Gerken - huge help with 0.8 release
  • Espen Moe-Nilssen
  • Harald Friessnegger
  • Sylvain Bouchard

Translations

  • French - Sylvain Boureliou
  • Norwegian - Espen Moe-Nilssen
  • Brazilian Portuguese - Diego Rubert
  • Finnish - Ilja Everila
  • German - Jens W. Klein, Harald Friessnegger
  • Italian - Mirto Silvio Busico
  • Spanish - Enrique Perez Arnaud
  • Dutch - Rob Gietema, Martijn Schenk, Fred van Dijk

SDG

collective.plonetruegallery's People

Contributors

bsuttor avatar erral avatar espenmn avatar fredvd avatar gbastien avatar hvelarde avatar isisdesign avatar jaroel avatar jensens avatar khink avatar kysr avatar lccruz avatar macagua avatar martronic-sa avatar mauritsvanrees avatar pbauer avatar petschki avatar sandrarum avatar staeff avatar thet avatar tkimnguyen avatar vangheem avatar witsch avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

collective.plonetruegallery's Issues

Master branch does not work on Plone 5

The master branch does not start on Plone 5. Tried on 5.1. I tried fixing things, starting with lots and lots of cleanup. See branch plone5.
I also enabled Travis, which has not run in a year.

The immediate problem was that since the last master commit 50ba82d by Jens, I get ImportError: cannot import name PTGMessageFactory on startup. I fixed that.

Current failure is that plone.app.form is missing. Tried fixing that too with zcml conditions, but too much would need to be switched off. The portlet would need to be switched to z3c.form, which should be relatively straightforward.

@jensens Your last commit has the message "make it start in Python 3 - won't work so far". Did the master branch actually start for you? How?

lineage compat

to make plonetruegallerie collective.lineage compatible its enough to edit ptg's settings.py and import and use
from zope.app.component.interfaces import ISite instead of IPloneSiteRoot

But this way one cant have global settings and override it by subsite.

So instead of using getSite I'd visit each parent to see if it provides ISite and if use it or visit the next parent and so on (traverse up). if its setting-less site it inherits the default_settings from its parent site (usally the plone root).

Support for Google Photos API in PTG? Picasa API will fail in Jan 2019

Picasa API calls will begin to fail in January, per Google's statement here:
https://developers.google.com/picasa-web/

Is there any activity to update PTG to call Google Photos instead?
Pulling in images from Picasa and Flickr Albums is a great feature, and I've been pretty dependent on it. However, we've known that Picasa has limited lifespan for some time, but I'm not aware of any work on the Google Photos API?

Happy to help if there's anything a non-developer can offer ;-)
Thanks
Peter

"Ken Burns" Effect in PTG 2.3.1

Hi,

I have a client who is fixated on the "Ken Burns" effect in "Slideshow 2", and I'm looking to upgrade his site to PTG 2.3.1, which I understand no longer uses "Slideshow 2".

Is there an option or configuration/recipe which will allow me to upgrade PTG whilst maintaining the "Ken Burns" effect?

Will go look at the support for the various JS slideshows that PTG now supports, but if anyone can point me in the right direction and save me some time I'd be very grateful - I suspect I'm not the only person who wants to keep this effect so will follow up here if I sort it myself...


Cheers,

PhilK

progress.gif appearing in every page if supersized.js is activated

I've installed all the javascript galleries for plonetruegallery.
After I've activated them in the Addons panel, a spinning image which indicates loading images appears in every page.
Using the browser inspector I found it's called by this div:

<div id="supersized-loader"></div>
<ul id="supersized"></ul>

So supersized.css is loaded (why? I've not set it in any gallery) and this is the css rule:
background: url(++resource++supersized/progress.gif) no-repeat center center;

I deactivated collective.supersized.js and the image disappeared.

I'm using the latest version of plonetruegallery (2.4b2).

Version Overview
Plone 4.1.5 (4114)
CMF 2.2.6
Zope 2.13.13
Python 2.7.3rc2 (default, Apr 22 2012, 22:35:38) [GCC 4.6.3]
PIL 1.1.7

Plone 5.1-latest installation

I've added version 3.4.8 to a fresh plone 5.1-latest buildout and get this traceback when starting the instance:

2017-11-15 07:20:29 INFO ZServer HTTP server started at Wed Nov 15 07:20:29 2017
	Hostname: 0.0.0.0
	Port: 8008
2017-11-15 07:20:32 INFO ZEO.ClientStorage zeostorage ClientStorage (pid=30610) created RW/normal for storage: '1'
2017-11-15 07:20:32 INFO ZEO.cache created temporary cache file '<fdopen>'
2017-11-15 07:20:32 INFO ZEO.asyncio.base Connected Protocol(('127.0.0.1', 8001), '1', False)
2017-11-15 07:20:32 INFO ZEO.ClientStorage zeostorage Connected to storage: ('localhost.localdomain', 8001)
Traceback (most recent call last):
  File "/home/plone/zope_buildout/parts/instance/bin/interpreter", line 322, in <module>
    exec(compile(__file__f.read(), __file__, "exec"))
  File "/home/plone/.buildout/eggs/Zope2-2.13.26-py2.7.egg/Zope2/Startup/run.py", line 76, in <module>
    run()
  File "/home/plone/.buildout/eggs/Zope2-2.13.26-py2.7.egg/Zope2/Startup/run.py", line 22, in run
    starter.prepare()
  File "/home/plone/.buildout/eggs/Zope2-2.13.26-py2.7.egg/Zope2/Startup/__init__.py", line 92, in prepare
    self.startZope()
  File "/home/plone/.buildout/eggs/Zope2-2.13.26-py2.7.egg/Zope2/Startup/__init__.py", line 268, in startZope
    Zope2.startup()
  File "/home/plone/.buildout/eggs/Zope2-2.13.26-py2.7.egg/Zope2/__init__.py", line 47, in startup
    _startup()
  File "/home/plone/.buildout/eggs/Zope2-2.13.26-py2.7.egg/Zope2/App/startup.py", line 120, in startup
    load_zcml()
  File "/home/plone/.buildout/eggs/Zope2-2.13.26-py2.7.egg/Zope2/App/startup.py", line 52, in load_zcml
    load_site()
  File "/home/plone/.buildout/eggs/Zope2-2.13.26-py2.7.egg/Zope2/App/zcml.py", line 46, in load_site
    _context = xmlconfig.file(site_zcml)
  File "/home/plone/.buildout/eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/xmlconfig.py", line 649, in file
    include(context, name, package)
  File "/home/plone/.buildout/eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/xmlconfig.py", line 548, in include
    processxmlfile(f, context)
  File "/home/plone/.buildout/eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/xmlconfig.py", line 380, in processxmlfile
    parser.parse(src)
  File "/home/plone/python-2.7.14/lib/python2.7/xml/sax/expatreader.py", line 111, in parse
    xmlreader.IncrementalParser.parse(self, source)
  File "/home/plone/python-2.7.14/lib/python2.7/xml/sax/xmlreader.py", line 123, in parse
    self.feed(buffer)
  File "/home/plone/python-2.7.14/lib/python2.7/xml/sax/expatreader.py", line 220, in feed
    self._parser.Parse(data, isFinal)
  File "/home/plone/python-2.7.14/lib/python2.7/xml/sax/expatreader.py", line 384, in end_element_ns
    self._cont_handler.endElementNS(pair, None)
  File "/home/plone/.buildout/eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/xmlconfig.py", line 359, in endElementNS
    self.context.end()
  File "/home/plone/.buildout/eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/config.py", line 558, in end
    self.stack.pop().finish()
  File "/home/plone/.buildout/eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/config.py", line 706, in finish
    actions = self.handler(context, **args)
  File "/home/plone/.buildout/eggs/Zope2-2.13.26-py2.7.egg/OFS/metaconfigure.py", line 46, in loadProducts
    xmlconfig.include(_context, zcml, package=product)
  File "/home/plone/.buildout/eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/xmlconfig.py", line 548, in include
    processxmlfile(f, context)
  File "/home/plone/.buildout/eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/xmlconfig.py", line 380, in processxmlfile
    parser.parse(src)
  File "/home/plone/python-2.7.14/lib/python2.7/xml/sax/expatreader.py", line 111, in parse
    xmlreader.IncrementalParser.parse(self, source)
  File "/home/plone/python-2.7.14/lib/python2.7/xml/sax/xmlreader.py", line 123, in parse
    self.feed(buffer)
  File "/home/plone/python-2.7.14/lib/python2.7/xml/sax/expatreader.py", line 220, in feed
    self._parser.Parse(data, isFinal)
  File "/home/plone/python-2.7.14/lib/python2.7/xml/sax/expatreader.py", line 373, in start_element_ns
    AttributesNSImpl(newattrs, qnames))
  File "/home/plone/.buildout/eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/xmlconfig.py", line 232, in startElementNS
    self.context.begin(name, data, info)
  File "/home/plone/.buildout/eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/config.py", line 555, in begin
    self.stack.append(self.stack[-1].contained(__name, __data, __info))
  File "/home/plone/.buildout/eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/config.py", line 856, in contained
    return RootStackItem.contained(self, name, data, info)
  File "/home/plone/.buildout/eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/config.py", line 727, in contained
    adapter = factory(self.context, data, info)
  File "/home/plone/.buildout/eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/config.py", line 1224, in factory
    return ComplexStackItem(self, context, data, info)
  File "/home/plone/.buildout/eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/config.py", line 970, in __init__
    args = toargs(newcontext, meta.schema, data)
  File "/home/plone/.buildout/eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/config.py", line 1397, in toargs
    args[str(name)] = field.fromUnicode(s)
  File "/home/plone/.buildout/eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/fields.py", line 137, in fromUnicode
    value = self.context.resolve(name)
  File "/home/plone/.buildout/eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/config.py", line 179, in resolve
    mod = __import__(mname, *_import_chickens)
  File "/home/plone/.buildout/eggs/Products.CMFDefault-2.3.0b2-py2.7.egg/Products/CMFDefault/SyndicationTool.py", line 31, in <module>
    from Products.CMFCore.interfaces import ISyndicationTool, ISyndicationInfo
zope.configuration.xmlconfig.ZopeXMLConfigurationError: File "/home/plone/zope_buildout/parts/instance/etc/site.zcml", line 16.2-16.23
    ZopeXMLConfigurationError: File "/home/plone/.buildout/eggs/Products.CMFDefault-2.3.0b2-py2.7.egg/Products/CMFDefault/configure.zcml", line 26.2
    ImportError: cannot import name ISyndicationInfo

when I remove the collective.plonetruegallery line from the eggs, everything works fine. Maybe an issue with the install_requires of setup.py?

Galleria is always present and cannot be disabled in plonetruegallery

We prefer to use a different slideshow library in our installations and not allow our users to choose a different library we don't support.

However collective.ptg.galleria is a hard dependency in the setup.py of collective.plonetruegallyer and the default value of display_type in IGallerySettings is galleria, thus Galleria is always there :-(

What would be the best route to support enabling this? We could make the dependency on galleria optional in the setup.py using an extras_require, but that would need an explicit warning on a new release that people should change the package include to collective.plonetruegallery[galleria].

Also the default value in IGallerySettings would have to be removed. The value list is already created using a vocabulary, so the default value would be the first item in the list of actually installed collective.ptg.* packages.

My idea is to add an extra option in the generic plonetruegallery control panel where you can select which of the found DisplayTypes should be activated and choosable. With an ordered in/out widget this could also solve the default item: move the default item to the top of the enabled list. (A similar construct is used in for example collective.cover to select from the found available tiles in the application should be available to the users. Sorry for the Dutch screen shot)

tilechooser

please set up a demo site

I think you should definitely have a demo site that has say 5 images that a displayed in the different available plone true galleries views. I think it is pretty common for ajaxy / visual add-ons to provide something like this to save its visitors/user valuable "evaluation time" (at least outside of the plone world).

The advantages are obvious:

  • convince/impress people in quick time (a picture says a thousand words)
  • in case you are convinced of plone true gallery, you can pick your one favourite view without the need to install and try them all first (takes every user at least one hour: install, set up test images, adjust views)

Could you make a new release please ?

Hello,

I use collective.upgrade, and this module need "destination" option in upgrade step for a correct use.
So, could you please make a release or give me right on pypi to make this release ?
my pypi user is bsuttor,

Best regards,

compatibility problems with Plone 5.1b2?

�]133;C;�Upgraded:
  zc.buildout version 2.8.0,
  setuptools version 34.3.0;
restarting.
Generated script '/Users/kim/PloneBuilds/Plone-5.1b2/simple-plone-buildout/bin/buildout'.
Develop: '/Users/kim/PloneBuilds/Plone-5.1b2/simple-plone-buildout/src/collective.plonetruegallery'
Traceback (most recent call last):
  File "/var/folders/nz/x0t781tx0674r3h71hg19jk80000gn/T/tmpuvyvpL", line 6, in <module>
    import os, setuptools
  File "/Users/kim/.buildout/eggs/setuptools-34.3.0-py2.7.egg/setuptools/__init__.py", line 10, in <module>
    from six.moves import filter, map
ImportError: No module named six.moves
While:
  Installing.
  Processing develop directory '/Users/kim/PloneBuilds/Plone-5.1b2/simple-plone-buildout/src/collective.plonetruegallery'.

An internal error occurred due to a bug in either zc.buildout or in a
recipe being used:
Traceback (most recent call last):
  File "/Users/kim/PloneBuilds/Plone-5.1b2/simple-plone-buildout/lib/python2.7/site-packages/zc/buildout/buildout.py", line 1995, in main
    getattr(buildout, command)(args)
  File "/Users/kim/PloneBuilds/Plone-5.1b2/simple-plone-buildout/lib/python2.7/site-packages/zc/buildout/buildout.py", line 528, in install
    installed_develop_eggs = self._develop()
  File "/Users/kim/PloneBuilds/Plone-5.1b2/simple-plone-buildout/lib/python2.7/site-packages/zc/buildout/buildout.py", line 770, in _develop
    zc.buildout.easy_install.develop(setup, dest)
  File "/Users/kim/PloneBuilds/Plone-5.1b2/simple-plone-buildout/lib/python2.7/site-packages/zc/buildout/easy_install.py", line 1020, in develop
    call_subprocess(args)
  File "/Users/kim/PloneBuilds/Plone-5.1b2/simple-plone-buildout/lib/python2.7/site-packages/zc/buildout/easy_install.py", line 160, in call_subprocess
    % repr(args)[1:-1])
Exception: Failed to run command:
'/Users/kim/PloneBuilds/Plone-5.1b2/simple-plone-buildout/bin/python', '/var/folders/nz/x0t781tx0674r3h71hg19jk80000gn/T/tmpuvyvpL', '-q', 'develop', '-mN', '-d', '/Users/kim/PloneBuilds/Plone-5.1b2/simple-plone-buildout/develop-eggs/tmpmYBQRtbuild'```

stack trace with Flickr or Picasa eggs

With Plone 4.3 and current PTG 3.3.2, collective.ptg.flickr 0.1.1 and collective.ptg.picasa 0.1.1 both cause this stack trace on client startup

2013-09-01 10:18:51 INFO ZServer HTTP server started at Sun Sep 1 10:18:51 2013
Hostname: 0.0.0.0
Port: 13080
2013-09-01 10:18:51 INFO Zope Set effective user to "plone_daemon"
2013-09-01 10:18:53 INFO Products.PloneHotfix20130618 Applied catalog patch
2013-09-01 10:18:53 INFO Products.PloneHotfix20130618 Applied cb_decode patch
2013-09-01 10:18:53 INFO Products.PloneHotfix20130618 Applied dataitems patch
2013-09-01 10:18:53 INFO Products.PloneHotfix20130618 Applied get patch
2013-09-01 10:18:53 INFO Products.PloneHotfix20130618 Applied imports patch
2013-09-01 10:18:53 INFO Products.PloneHotfix20130618 Applied in_portal patch
2013-09-01 10:18:53 INFO Products.PloneHotfix20130618 Applied linkintegrity patch
2013-09-01 10:18:53 INFO Products.PloneHotfix20130618 Applied mail_password patch
2013-09-01 10:18:54 INFO Products.PloneHotfix20130618 Applied member_portrait patch
2013-09-01 10:18:54 INFO Products.PloneHotfix20130618 Applied objectmanager patch
2013-09-01 10:18:54 INFO Products.PloneHotfix20130618 Applied principiaredirect patch
2013-09-01 10:18:54 INFO Products.PloneHotfix20130618 Applied pts patch
2013-09-01 10:18:54 INFO Products.PloneHotfix20130618 Applied publish patch
2013-09-01 10:18:54 INFO Products.PloneHotfix20130618 Applied request patch
2013-09-01 10:18:54 INFO Products.PloneHotfix20130618 Applied sendto patch
2013-09-01 10:18:54 INFO Products.PloneHotfix20130618 Applied spamProtect patch
2013-09-01 10:18:54 INFO Products.PloneHotfix20130618 Applied traverser patch
2013-09-01 10:18:54 INFO Products.PloneHotfix20130618 Applied traverseName patch
2013-09-01 10:18:54 INFO Products.PloneHotfix20130618 Applied typeswidget patch
2013-09-01 10:18:54 INFO Products.PloneHotfix20130618 Hotfix installed
2013-09-01 10:18:54 WARNING ZODB.blob (3731) Blob dir /opt/Plone-4.3/zinstance/var/blobstorage/ has insecure mode setting
/opt/Plone-4.3/buildout-cache/eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/fields.py:417: UserWarning: You did not specify an i18n translation domain for the 'title' field in /opt/Plone-4.3/buildout-cache/eggs/Products.CMFDynamicViewFTI-4.0.4-py2.7.egg/Products/CMFDynamicViewFTI/configure.zcml
"'%s' field in %s" % (self.getName(), context.info.file )
Traceback (most recent call last):
File "/opt/Plone-4.3/buildout-cache/eggs/Zope2-2.13.19-py2.7.egg/Zope2/Startup/run.py", line 76, in <module>
run()
File "/opt/Plone-4.3/buildout-cache/eggs/Zope2-2.13.19-py2.7.egg/Zope2/Startup/run.py", line 22, in run
starter.prepare()
File "/opt/Plone-4.3/buildout-cache/eggs/Zope2-2.13.19-py2.7.egg/Zope2/Startup/__init__.py", line 86, in prepare
self.startZope()
File "/opt/Plone-4.3/buildout-cache/eggs/Zope2-2.13.19-py2.7.egg/Zope2/Startup/__init__.py", line 262, in startZope
Zope2.startup()
File "/opt/Plone-4.3/buildout-cache/eggs/Zope2-2.13.19-py2.7.egg/Zope2/__init__.py", line 47, in startup
_startup()
File "/opt/Plone-4.3/buildout-cache/eggs/Zope2-2.13.19-py2.7.egg/Zope2/App/startup.py", line 118, in startup
load_zcml()
File "/opt/Plone-4.3/buildout-cache/eggs/Zope2-2.13.19-py2.7.egg/Zope2/App/startup.py", line 52, in load_zcml
load_site()
File "/opt/Plone-4.3/buildout-cache/eggs/Zope2-2.13.19-py2.7.egg/Zope2/App/zcml.py", line 46, in load_site
_context = xmlconfig.file(site_zcml)
File "/opt/Plone-4.3/buildout-cache/eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/xmlconfig.py", line 649, in file
include(context, name, package)
File "/opt/Plone-4.3/buildout-cache/eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/xmlconfig.py", line 548, in include
processxmlfile(f, context)
File "/opt/Plone-4.3/buildout-cache/eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/xmlconfig.py", line 380, in processxmlfile
parser.parse(src)
File "/opt/Plone-4.3/Python-2.7/lib/python2.7/xml/sax/expatreader.py", line 107, in parse
xmlreader.IncrementalParser.parse(self, source)
File "/opt/Plone-4.3/Python-2.7/lib/python2.7/xml/sax/xmlreader.py", line 123, in parse
self.feed(buffer)
File "/opt/Plone-4.3/Python-2.7/lib/python2.7/xml/sax/expatreader.py", line 207, in feed
self._parser.Parse(data, isFinal)
File "/opt/Plone-4.3/Python-2.7/lib/python2.7/xml/sax/expatreader.py", line 349, in end_element_ns
self._cont_handler.endElementNS(pair, None)
File "/opt/Plone-4.3/buildout-cache/eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/xmlconfig.py", line 359, in endElementNS
self.context.end()
File "/opt/Plone-4.3/buildout-cache/eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/config.py", line 558, in end
self.stack.pop().finish()
File "/opt/Plone-4.3/buildout-cache/eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/config.py", line 706, in finish
actions = self.handler(context, **args)
File "/opt/Plone-4.3/buildout-cache/eggs/Zope2-2.13.19-py2.7.egg/OFS/metaconfigure.py", line 46, in loadProducts
xmlconfig.include(_context, zcml, package=product)
File "/opt/Plone-4.3/buildout-cache/eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/xmlconfig.py", line 548, in include
processxmlfile(f, context)
File "/opt/Plone-4.3/buildout-cache/eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/xmlconfig.py", line 380, in processxmlfile
parser.parse(src)
File "/opt/Plone-4.3/Python-2.7/lib/python2.7/xml/sax/expatreader.py", line 107, in parse
xmlreader.IncrementalParser.parse(self, source)
File "/opt/Plone-4.3/Python-2.7/lib/python2.7/xml/sax/xmlreader.py", line 123, in parse
self.feed(buffer)
File "/opt/Plone-4.3/Python-2.7/lib/python2.7/xml/sax/expatreader.py", line 207, in feed
self._parser.Parse(data, isFinal)
File "/opt/Plone-4.3/Python-2.7/lib/python2.7/xml/sax/expatreader.py", line 349, in end_element_ns
self._cont_handler.endElementNS(pair, None)
File "/opt/Plone-4.3/buildout-cache/eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/xmlconfig.py", line 359, in endElementNS
self.context.end()
File "/opt/Plone-4.3/buildout-cache/eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/config.py", line 558, in end
self.stack.pop().finish()
File "/opt/Plone-4.3/buildout-cache/eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/config.py", line 706, in finish
actions = self.handler(context, **args)
File "/opt/Plone-4.3/buildout-cache/eggs/z3c.autoinclude-0.3.4-py2.7.egg/z3c/autoinclude/zcml.py", line 104, in includePluginsDirective
includeZCMLGroup(_context, info, filename)
File "/opt/Plone-4.3/buildout-cache/eggs/z3c.autoinclude-0.3.4-py2.7.egg/z3c/autoinclude/zcml.py", line 30, in includeZCMLGroup
include(_context, filename, includable_package)
File "/opt/Plone-4.3/buildout-cache/eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/xmlconfig.py", line 548, in include
processxmlfile(f, context)
File "/opt/Plone-4.3/buildout-cache/eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/xmlconfig.py", line 380, in processxmlfile
parser.parse(src)
File "/opt/Plone-4.3/Python-2.7/lib/python2.7/xml/sax/expatreader.py", line 107, in parse
xmlreader.IncrementalParser.parse(self, source)
File "/opt/Plone-4.3/Python-2.7/lib/python2.7/xml/sax/xmlreader.py", line 123, in parse
self.feed(buffer)
File "/opt/Plone-4.3/Python-2.7/lib/python2.7/xml/sax/expatreader.py", line 207, in feed
self._parser.Parse(data, isFinal)
File "/opt/Plone-4.3/Python-2.7/lib/python2.7/xml/sax/expatreader.py", line 338, in start_element_ns
AttributesNSImpl(newattrs, qnames))
File "/opt/Plone-4.3/buildout-cache/eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/xmlconfig.py", line 232, in startElementNS
self.context.begin(name, data, info)
File "/opt/Plone-4.3/buildout-cache/eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/config.py", line 555, in begin
self.stack.append(self.stack[-1].contained(__name, __data, __info))
File "/opt/Plone-4.3/buildout-cache/eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/config.py", line 856, in contained
return RootStackItem.contained(self, name, data, info)
File "/opt/Plone-4.3/buildout-cache/eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/config.py", line 724, in contained
factory = self.context.factory(self.context, name)
File "/opt/Plone-4.3/buildout-cache/eggs/zope.configuration-3.7.4-py2.7.egg/zope/configuration/config.py", line 501, in factory
raise ConfigurationError("Unknown directive", ns, n)
zope.configuration.xmlconfig.ZopeXMLConfigurationError: File "/opt/Plone-4.3/zinstance/parts/instance/etc/site.zcml", line 16.2-16.23
ZopeXMLConfigurationError: File "/opt/Plone-4.3/buildout-cache/eggs/Products.CMFPlone-4.3-py2.7.egg/Products/CMFPlone/configure.zcml", line 98.4-102.10
ZopeXMLConfigurationError: File "/opt/Plone-4.3/buildout-cache/eggs/collective.ptg.flickr-0.1.1-py2.7.egg/collective/ptg/flickr/configure.zcml", line 9.6
ConfigurationError: ('Unknown directive', u'http://namespaces.zope.org/gallery', u'type')
zopectl> 

Is it possible for ptg to work with new plone.app.contenttypes?

plone 4.3.1, plone.app.content.types 1.0rc1 /current from master, plone.true.gallery current/master

Tried to make some changes but unfortunately no satisfying success !

See my changes and results at
https://github.com/fgrcon/collective.plonetruegallery/commits/issue31

https://github.com/fgrcon/collective.plonetruegallery/commit/965bc60bfddafac5bfdc1aa91e007bf89b2e2b4f#commitcomment-3538052

one helpful hint I found at least: http://www.starzel.de/blog/how-to-handle-missing-types-in-gs-when-using-plone-app-contenttypes
(thishelps to prevent at least a generic setup problem)

plone.app.collection is now included in plone.app.contenttypes

AttributeError using Collage and gallery-collage-view in latest beta (3.0b3)

Steps to reproduce the problem:

  • create a Collage
  • add a folder containing an image gallery (of course, handled by plonetruegallery)
  • select layout»gallery-collage-view

It works fine with plonetruegallery 3.0b1.
The error appeared when upgrading plonetruegallery to latest beta (version of Collage is the same).

Traceback (innermost last):
Module ZPublisher.Publish, line 126, in publish
Module ZPublisher.mapply, line 77, in mapply
Module ZPublisher.Publish, line 46, in call_object
Module Products.Collage.browser.collage, line 28, in call
Module Products.Five.browser.metaconfigure, line 476, in call
Module Products.Five.browser.pagetemplatefile, line 125, in call
Module Products.Five.browser.pagetemplatefile, line 59, in call
Module zope.pagetemplate.pagetemplate, line 113, in pt_render
Module zope.tal.talinterpreter, line 271, in call
Module zope.tal.talinterpreter, line 343, in interpret
Module zope.tal.talinterpreter, line 888, in do_useMacro
Module zope.tal.talinterpreter, line 343, in interpret
Module zope.tal.talinterpreter, line 533, in do_optTag_tal
Module zope.tal.talinterpreter, line 518, in do_optTag
Module zope.tal.talinterpreter, line 513, in no_tag
Module zope.tal.talinterpreter, line 343, in interpret
Module zope.tal.talinterpreter, line 888, in do_useMacro
Module zope.tal.talinterpreter, line 343, in interpret
Module zope.tal.talinterpreter, line 533, in do_optTag_tal
Module zope.tal.talinterpreter, line 518, in do_optTag
Module zope.tal.talinterpreter, line 513, in no_tag
Module zope.tal.talinterpreter, line 343, in interpret
Module zope.tal.talinterpreter, line 954, in do_defineSlot
Module zope.tal.talinterpreter, line 343, in interpret
Module zope.tal.talinterpreter, line 533, in do_optTag_tal
Module zope.tal.talinterpreter, line 518, in do_optTag
Module zope.tal.talinterpreter, line 513, in no_tag
Module zope.tal.talinterpreter, line 343, in interpret
Module zope.tal.talinterpreter, line 858, in do_defineMacro
Module zope.tal.talinterpreter, line 343, in interpret
Module zope.tal.talinterpreter, line 946, in do_defineSlot
Module zope.tal.talinterpreter, line 343, in interpret
Module zope.tal.talinterpreter, line 533, in do_optTag_tal
Module zope.tal.talinterpreter, line 518, in do_optTag
Module zope.tal.talinterpreter, line 513, in no_tag
Module zope.tal.talinterpreter, line 343, in interpret
Module zope.tal.talinterpreter, line 946, in do_defineSlot
Module zope.tal.talinterpreter, line 343, in interpret
Module zope.tal.talinterpreter, line 858, in do_defineMacro
Module zope.tal.talinterpreter, line 343, in interpret
Module zope.tal.talinterpreter, line 533, in do_optTag_tal
Module zope.tal.talinterpreter, line 518, in do_optTag
Module zope.tal.talinterpreter, line 513, in no_tag
Module zope.tal.talinterpreter, line 343, in interpret
Module zope.tal.talinterpreter, line 531, in do_optTag_tal
Module zope.tal.talinterpreter, line 513, in no_tag
Module zope.tal.talinterpreter, line 343, in interpret
Module zope.tal.talinterpreter, line 742, in do_insertStructure_tal
Module Products.PageTemplates.Expressions, line 218, in evaluateStructure
Module zope.tales.tales, line 696, in evaluate

  • URL: /home/fede/web/plone/eggs/Products.Collage-1.3.7-py2.6.egg/Products/Collage/browser/templates/collage_compose.pt
  • Line 11, Column 8
  • Expression: <PathExpr standard:u'context/@@Renderer'>
  • Names:
    {'args': (),
    'container': <Collage at /Plone/collections/test-collage>,
    'context': <Collage at /Plone/collections/test-collage>,
    'default': <object object at 0x17254b0>,
    'here': <Collage at /Plone/collections/test-collage>,
    'loop': {},
    'nothing': None,
    'options': {},
    'repeat': <Products.PageTemplates.Expressions.SafeMapping object at 0x9c114c8>,
    'request': <HTTPRequest, URL=http://46.252.144.29:8081/Plone/collections/test-collage/collage_compose>,
    'root': ,
    'template': <Products.Five.browser.pagetemplatefile.ViewPageTemplateFile object at 0x8bd8590>,
    'traverse_subpath': [],
    'user': <PropertiedUser 'admin'>,
    'view': <Products.Five.metaclass.SimpleViewClass from /home/fede/web/plone/eggs/Products.Collage-1.3.7-py2.6.egg/Products/Collage/browser/templates/collage_compose.pt object at 0x7f65f831d7d0>,
    'views': <Products.Five.browser.pagetemplatefile.ViewMapper object at 0x7f65f831d810>}
    Module zope.tales.expressions, line 217, in call
    Module Products.PageTemplates.Expressions, line 155, in _eval
    Module Products.PageTemplates.Expressions, line 117, in render
    Module Products.Five.browser.metaconfigure, line 476, in call
    Module Products.Five.browser.pagetemplatefile, line 125, in call
    Module Products.Five.browser.pagetemplatefile, line 59, in call
    Module zope.pagetemplate.pagetemplate, line 113, in pt_render
    Module zope.tal.talinterpreter, line 271, in call
    Module zope.tal.talinterpreter, line 343, in interpret
    Module zope.tal.talinterpreter, line 821, in do_loop_tal
    Module zope.tal.talinterpreter, line 343, in interpret
    Module zope.tal.talinterpreter, line 531, in do_optTag_tal
    Module zope.tal.talinterpreter, line 513, in no_tag
    Module zope.tal.talinterpreter, line 343, in interpret
    Module zope.tal.talinterpreter, line 742, in do_insertStructure_tal
    Module Products.PageTemplates.Expressions, line 218, in evaluateStructure
    Module zope.tales.tales, line 696, in evaluate
  • URL: /home/fede/web/plone/eggs/Products.Collage-1.3.7-py2.6.egg/Products/Collage/browser/templates/collage_renderer.pt
  • Line 6, Column 1
  • Expression: <PathExpr standard:u'item'>
  • Names:
    {'args': (),
    'container': <Collage at /Plone/collections/test-collage>,
    'context': <Collage at /Plone/collections/test-collage>,
    'default': <object object at 0x17254b0>,
    'here': <Collage at /Plone/collections/test-collage>,
    'loop': {},
    'nothing': None,
    'options': {},
    'repeat': <Products.PageTemplates.Expressions.SafeMapping object at 0x7f65f8300d60>,
    'request': <HTTPRequest, URL=http://46.252.144.29:8081/Plone/collections/test-collage/collage_compose>,
    'root': ,
    'template': <Products.Five.browser.pagetemplatefile.ViewPageTemplateFile object at 0x9c15e50>,
    'traverse_subpath': [],
    'user': <PropertiedUser 'admin'>,
    'view': <Products.Five.metaclass.SimpleViewClass from /home/fede/web/plone/eggs/Products.Collage-1.3.7-py2.6.egg/Products/Collage/browser/templates/collage_renderer.pt object at 0xa07c9d0>,
    'views': <Products.Five.browser.pagetemplatefile.ViewMapper object at 0xa07c910>}
    Module zope.tales.expressions, line 217, in call
    Module Products.PageTemplates.Expressions, line 155, in _eval
    Module Products.PageTemplates.Expressions, line 117, in render
    Module Products.Collage.browser.views, line 46, in call
    Module Products.Five.browser.pagetemplatefile, line 125, in call
    Module Products.Five.browser.pagetemplatefile, line 59, in call
    Module zope.pagetemplate.pagetemplate, line 113, in pt_render
    Module zope.tal.talinterpreter, line 271, in call
    Module zope.tal.talinterpreter, line 343, in interpret
    Module zope.tal.talinterpreter, line 533, in do_optTag_tal
    Module zope.tal.talinterpreter, line 518, in do_optTag
    Module zope.tal.talinterpreter, line 513, in no_tag
    Module zope.tal.talinterpreter, line 343, in interpret
    Module zope.tal.talinterpreter, line 821, in do_loop_tal
    Module zope.tal.talinterpreter, line 343, in interpret
    Module zope.tal.talinterpreter, line 533, in do_optTag_tal
    Module zope.tal.talinterpreter, line 518, in do_optTag
    Module zope.tal.talinterpreter, line 513, in no_tag
    Module zope.tal.talinterpreter, line 343, in interpret
    Module zope.tal.talinterpreter, line 531, in do_optTag_tal
    Module zope.tal.talinterpreter, line 513, in no_tag
    Module zope.tal.talinterpreter, line 343, in interpret
    Module zope.tal.talinterpreter, line 742, in do_insertStructure_tal
    Module Products.PageTemplates.Expressions, line 218, in evaluateStructure
    Module zope.tales.tales, line 696, in evaluate
  • URL: /home/fede/web/plone/eggs/Products.Collage-1.3.7-py2.6.egg/Products/Collage/browser/views/row_standard.pt
  • Line 27, Column 6
  • Expression: <PythonExpr ( renderer(columns))>
  • Names:
    {'args': (),
    'container': <CollageRow at /Plone/collections/test-collage/2>,
    'context': <CollageRow at /Plone/collections/test-collage/2>,
    'default': <object object at 0x17254b0>,
    'here': <CollageRow at /Plone/collections/test-collage/2>,
    'loop': {},
    'nothing': None,
    'options': {},
    'repeat': <Products.PageTemplates.Expressions.SafeMapping object at 0x8f3c4c8>,
    'request': <HTTPRequest, URL=http://46.252.144.29:8081/Plone/collections/test-collage/collage_compose>,
    'root': ,
    'template': <Products.Five.browser.pagetemplatefile.ViewPageTemplateFile object at 0x9c8ecd0>,
    'traverse_subpath': [],
    'user': <PropertiedUser 'admin'>,
    'view': <Products.Five.metaclass.SimpleViewClass from /home/fede/web/plone/eggs/Products.Collage-1.3.7-py2.6.egg/Products/Collage/browser/views/row_standard.pt object at 0xa07cc90>,
    'views': <Products.Five.browser.pagetemplatefile.ViewMapper object at 0xa07e350>}
    Module zope.tales.pythonexpr, line 59, in call
  • traceback_info: ( renderer(columns))
    Module , line 1, in
    Module Products.Five.browser.metaconfigure, line 476, in call
    Module Products.Five.browser.pagetemplatefile, line 125, in call
    Module Products.Five.browser.pagetemplatefile, line 59, in call
    Module zope.pagetemplate.pagetemplate, line 113, in pt_render
    Module zope.tal.talinterpreter, line 271, in call
    Module zope.tal.talinterpreter, line 343, in interpret
    Module zope.tal.talinterpreter, line 821, in do_loop_tal
    Module zope.tal.talinterpreter, line 343, in interpret
    Module zope.tal.talinterpreter, line 531, in do_optTag_tal
    Module zope.tal.talinterpreter, line 513, in no_tag
    Module zope.tal.talinterpreter, line 343, in interpret
    Module zope.tal.talinterpreter, line 742, in do_insertStructure_tal
    Module Products.PageTemplates.Expressions, line 218, in evaluateStructure
    Module zope.tales.tales, line 696, in evaluate
  • URL: /home/fede/web/plone/eggs/Products.Collage-1.3.7-py2.6.egg/Products/Collage/browser/templates/row_renderer.pt
  • Line 10, Column 4
  • Expression: <PathExpr standard:u'item'>
  • Names:
    {'args': ([<CollageColumn at /Plone/collections/test-collage/2/1>,
    <CollageColumn at /Plone/collections/test-collage/2/2>],),
    'container': <CollageRow at /Plone/collections/test-collage/2>,
    'context': <CollageRow at /Plone/collections/test-collage/2>,
    'default': <object object at 0x17254b0>,
    'here': <CollageRow at /Plone/collections/test-collage/2>,
    'loop': {},
    'nothing': None,
    'options': {},
    'repeat': <Products.PageTemplates.Expressions.SafeMapping object at 0x8f3c418>,
    'request': <HTTPRequest, URL=http://46.252.144.29:8081/Plone/collections/test-collage/collage_compose>,
    'root': ,
    'template': <Products.Five.browser.pagetemplatefile.ViewPageTemplateFile object at 0x9fa2f90>,
    'traverse_subpath': [],
    'user': <PropertiedUser 'admin'>,
    'view': <Products.Five.metaclass.SimpleViewClass from /home/fede/web/plone/eggs/Products.Collage-1.3.7-py2.6.egg/Products/Collage/browser/templates/row_renderer.pt object at 0xa07ef10>,
    'views': <Products.Five.browser.pagetemplatefile.ViewMapper object at 0xa07efd0>}
    Module zope.tales.expressions, line 217, in call
    Module Products.PageTemplates.Expressions, line 155, in _eval
    Module Products.PageTemplates.Expressions, line 117, in render
    Module Products.Collage.browser.views, line 50, in call
    AttributeError: 'SimpleViewClass from /home/fede/web/plone/eggs/Pro' object has no attribute 'title'

Gallery portlet: cannot select gallery

When clicking on "search" on the gallery portlet configuration (to select a gallery), nothing happens. The browser reloads the page, but no selection interface is displayed. There is no error message.

Plone 4.3.

Update setup.py

url: should be updated, currently it says:

url='http://plone.org/products/plone-true-gallery',

this will not work any more with the upcoming new plone.org

Can't find flickr user

Would have posted this as issue in collective.ptg.flickr, but no issues section available there.

When trying to configure or use the Flickr option I get:
2015-05-14 06:42:37 INFO collective.plonetruegallery flickr adapter, gallery is
Can't find filckr user id
<type 'exceptions.Exception'>
init() takes at least 3 arguments (2 given)

The Flickr configuration form only gives me two input fields - user name and flickr set - while the documentation mentions five settings:

  • User (name or ID)
  • Photoset (name or ID)
  • Collection ID
  • Flickr API key
  • Flickr API secret

This is on Plone 4.3.4.1

plone.protect error selecting gallery view

When you use the Display menu on a folder to choose Gallery View:

2017-02-26 08:56:08 INFO plone.protect aborting transaction due to no CSRF protection on url http://localhost:8080/Gallery/photos/galleryview

screen shot 2017-02-26 at feb 26 8 56 15 am

JS problem?

Hi, I've been trying to use collective.plonetruegallery (3.4.8) with plone 5.0.7 and found that it doesn't work (see ex attached at bottom) and when "gallery" is selected as the display for a folder, the dropdown list for the "Display" tool in the Toolbar doesn't work and instead is a link to the page shown below (top image). This behavior goes away when something besides "gallery" is selected for the folder's display. I've tried this on both the SunRain theme and the default theme with similar results. Thanks!
sss-358

sss-357

Issues with dexterity collections and PTG

I noticed some problems with dexterity collections from plone.app.contenttypes in Plone4.3 and Plone5. Namely they do not work anymore.
There are four problems:

  1. The collections adapter is bound to plone.app.collections.interfaces.ICollection but dexterity collections have plone.app.contenttypes.interfaces.ICollection as marker interface. So the adapter does not fit the interface.
  2. In dexterity the collections do no longer expose the getRawQuery function.
    See https://community.plone.org/t/where-is-defined-collection-getrawquery-and-how/1040 .
    This leads to a stack trace.
  3. If this problem is overcome the wrong image type is used in the query.
  4. And last but not least. The current code does not work with collections collecting subgalleries.

I wrote a replacement to collection.py that fixes most of the problems but does not address all the corner cases. The code is ugly and obtains a monkey patch to change the get_subgalleries function of the basic_adapter. But it may be clear enough to show my intentions.
Also the code will not work with ATCollections - which is not a problem because this new adapter can be bound to the dexterity specific plone.app.contenttypes.interfaces.ICollection and live in friendly coexistence with the old adapter for ATCollections.

from zope.component import adapts, getMultiAdapter
from Products.CMFCore.utils import getToolByName
from collective.plonetruegallery.galleryadapters.basic import \
    BasicTopicImageInformationRetriever as BTIIR
from Products.ATContentTypes.interface.image import IImageContent
from plone.app.contenttypes.interfaces import ICollection, IImage
from collective.plonetruegallery.interfaces import IBasicAdapter
from plone.app.querystring import queryparser
from collective.plonetruegallery.interfaces import IGalleryAdapter, IGallery
import types

try:
    from plone.uuid.interfaces import IUUID
except:
    def IUUID(_, _2=None):
        return None


try:
    from plone.app.contenttypes.behaviors.leadimage import ILeadImage
except ImportError:
    ILeadImage = None


class BasicCollectionImageInformationRetriever(BTIIR):
    adapts(ICollection, IBasicAdapter)

    def __init__(self, context, gallery_adapter):
        self.pm = getToolByName(context, 'portal_membership')
        self.context = context
        self.gallery_adapter = gallery_adapter

        def get_subgalleries(self, **kwargs):
            query = queryparser.parseFormquery(
            self.gallery, self.gallery.query)
            catalog = getToolByName(self.gallery, 'portal_catalog')
            if 'Subject' in kwargs:
                if not 'Subject' in query:
                    query.update({'Subject': kwargs['Subject']})
                else:
                    query['Subject'] = {'operator': 'and', 'query': [kwargs['Subject']] + query['Subject']['query']}


            if not 'object_provides' in query:
                query.update({'object_provides': IGallery.__identifier__})
            else:
                query['object_provides'] = {'operator': 'and', 'query': [IGallery.__identifier__] + query['object_provides']['query']}


            results = catalog(query)
            uid = IUUID(self.gallery, None)
            if uid is None:
                uid = self.gallery.UID()

            def afilter(i):
                """prevent same object and multiple nested galleries"""
                return i.UID != uid and \
                    getMultiAdapter(
                    (i.getObject(), self.request),
                    name='plonetruegallery_util'
                    ).enabled()

            return filter(afilter, results)
        self.gallery_adapter.get_subgalleries = types.MethodType(get_subgalleries, self.gallery_adapter)


    def getImageInformation(self):
        limit = self.context.limit
        query = queryparser.parseFormquery(
            self.context, self.context.query)
        if ILeadImage:
            query.update({
                'object_provides': {
                    'query': [
                        IImage.__identifier__,
                        ILeadImage.__identifier__],
                    'operator': 'or'
                }
            })
        else:
            query.update({'object_provides': IImage.__identifier__})
        query['sort_limit'] = limit
        catalog = getToolByName(self.context, 'portal_catalog')
        images = catalog(query)
        images = images[:limit]
        return map(self.assemble_image_information, images)

add an option "Add 'go to content' link" for galleria view

Add an option "Add link to content" to galleria. The link should be visible next (maybe below) the title and description in the gallleria view (within the top "info" area). similar to highslide which links the content on top by linking the title -- however, I would prefer a separate "Get image" or similar link as it would be more intuitive.

The galleria view is by far the best, however, it is not possible to get to the actual image if one uses it. That is, one cannot download nor edit the image. Maybe ptg should look also a little bit how this is done on other image galleries, say flickr, where you always have the option to download an image in different sizes (here, maybe offer: mini, large, original).

get error adding gallery to portlet

in portlet panel, add Plone true gallery portlet and get a pop up "modal error".
this is the associated error text:

Traceback (innermost last):
Module ZPublisher.Publish, line 138, in publish
Module ZPublisher.mapply, line 77, in mapply
Module ZPublisher.Publish, line 48, in call_object
Module plone.app.portlets.browser.formhelper, line 60, in call
Module z3c.form.form, line 233, in call
Module plone.z3cform.fieldsets.extensible, line 58, in update
Module plone.autoform.form, line 33, in updateFields
Module plone.autoform.base, line 54, in updateFieldsFromSchemata
Module plone.autoform.form, line 22, in schema
NotImplementedError: The class deriving from AutoExtensibleForm must have a 'schema' property

Plone 5.0.7 (5017)
CMF 2.2.10
Zope 2.13.26
Python 2.7.5 (default, Nov 6 2016, 00:28:07) [GCC 4.8.5 20150623 (Red Hat 4.8.5-11)]
PIL 3.4.2 (Pillow)

version pin problem

With Plone 5.1.4 (unified installer) on Ubuntu 18.04 LTS, collective.plonetruegallery 3.4.8:

Version and requirements information containing zope.formlib:
  [versions] constraint on zope.formlib: 4.0.6
  Requirement of plone.app.form: zope.formlib>=4.0
  Requirement of zope.formlib>=4.0: zope.datetime
  Requirement of zope.formlib>=4.0: zope.traversing
  Requirement of zope.formlib>=4.0: zope.security
  Requirement of zope.formlib>=4.0: zope.schema>=3.5.1
  Requirement of zope.formlib>=4.0: zope.publisher
  Requirement of zope.formlib>=4.0: zope.lifecycleevent
  Requirement of zope.formlib>=4.0: zope.interface
  Requirement of zope.formlib>=4.0: zope.i18nmessageid
  Requirement of zope.formlib>=4.0: zope.i18n
  Requirement of zope.formlib>=4.0: zope.event
  Requirement of zope.formlib>=4.0: zope.component
  Requirement of zope.formlib>=4.0: zope.browserpage>=3.11.0
  Requirement of zope.formlib>=4.0: zope.browser>=1.1
  Requirement of zope.formlib>=4.0: pytz
  Requirement of zope.formlib>=4.0: setuptools
  Requirement of five.formlib: zope.formlib>=4.4
  Requirement of five.formlib>=1.0.2: zope.formlib>=4.4
While:
  Installing client1.
Error: The requirement ('zope.formlib>=4.4') is not allowed by your [versions] constraint (4.0.6)

Copyright information not displayed in gallery view

When the trueplonegallery is displayed in album view, the copyright notice contained in the document_byline is displayed. Even each single picture has its byline displayed. But in the gallery view both the folder byline and the picture byline are not displayed. So an anonymous user has no chance to see the copyright notice.

The other information in the byline might be suppressed. I did some customization in the plone.belowcontenttitle.documentbyline code.

Add easy "Image Gallery" content type

This content type would simply be a folder to which one can only add images. It would only allow the galleryview. Please combine it's default view with http://plone.org/products/collective.quickupload for batch uploading of images.

This would make a huge difference in terms of user experience as it would be much more intuitive to go to "Add->Image Gallery" and have then a gallery view already there which then allows to upload several images at once.

I know the same can be already be done now, if you know what steps to do (i.e. add Folder, change display view to galleryview, then add image by image). However, most users a to dumb and do not know how to "convert" a folder into an "image gallery"

As an icon for the image gallery I would suggest something like:
http://www.columbiameetings.com/images/icon_gallery.gif

Portlet gallery doesn't work with Chrome

Hi,
i've found that the portlet doesn't work with Chrome (my current version is 39.0.2171.95 (64-bit) for osx).

The problem is in the javascript (portlet.js). The image is updated correctly, but It seems that the callback (with the fadeIn function) given to the imagesLoad function are never called.

With other browsers i don't have problems.

Could it be a problem with newer versions of chrome? Do you have any ideas?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.