[Testbot] Plone 5.0 - Python 2.7 - Build # 2090 - Still failing! - 0 failure(s)

jenkins at plone.org jenkins at plone.org
Mon Mar 31 09:50:44 UTC 2014


-------------------------------------------------------------------------------
Plone 5.0 - Python 2.7 - Build # 2090 - Still Failing!
-------------------------------------------------------------------------------

http://jenkins.plone.org/job/plone-5.0-python-2.7/2090/


-------------------------------------------------------------------------------
CHANGES
-------------------------------------------------------------------------------

Repository: plone.app.contenttypes
Branch: refs/heads/master
Date: 2014-03-29T21:49:36+01:00
Author: Philip Bauer (pbauer) <bauer at starzel.de>
Commit: https://github.com/plone/plone.app.contenttypes/commit/0b6631e140c4cc726a2ecb5a2f5786f609f5d638

fix setup

Files changed:
A docs/CHANGES.rst
M setup.py
D CHANGES.rst

diff --git a/CHANGES.rst b/CHANGES.rst
deleted file mode 100644
index 3f918eb..0000000
--- a/CHANGES.rst
+++ /dev/null
@@ -1,373 +0,0 @@
-Changelog
-=========
-
-1.2a2 (unreleased)
-------------------
-
-- Do a better check, if LinguaPlone is installed, based on the presence of the
-  "LinguaPlone" browser layer. Asking the quick installer tool might claim it's
-  installed, where it's not.
-  [thet]
-
-- Register folderish views not for plone.app.contenttypes' IFolder but for
-  plone.dexterity's IDexterityContainer. Now, these views can be used on any
-  folderish Dexterity content.
-  [thet]
-
-- Add a ICustomMigrator interface to the migration framework, which can be used
-  to register custom migrator adapters. This can be useful to add custom
-  migrators to more than one or all content types. For example for
-  schemaextenders, which are registered on a interface, which is provided by
-  several content types.
-  [thet]
-
-- In the migration framework, fix queries for Archetype objects, where only
-  interfaces are used to skip brains with no or Dexterity meta_type. In some
-  cases Dexterity and Archetype objects might provide the same marker
-  interfaces.
-  [thet]
-
-- Add logging messages to content migrator for more verbosity on what's
-  happening while running the migration.
-  [thet]
-
-- Use Plone 4 based @@atct_migrator and @@atct_migrator_results template
-  structure.
-  [thet]
-
-
-1.2a1 (2014-02-22)
-------------------
-
-- Fix viewlet warning about ineditable content (fixes #130)
-  [pbauer]
-
-- Reintroduce the removed schema-files and add upgrade-step to migrate to
-  behavior-driven richtext-fields (fixes #127)
-  [pbauer]
-
-- Delete Archetypes Member-folder before creating new default-content
-  (fixes #128)
-  [pbauer]
-
-- Remove outdated summary-behavior from event (fixes #129)
-  [pbauer]
-
-
-1.1b1 (2014-02-19)
-------------------
-
-- Add tests for collections and collection-migrations.
-  [pbauer]
-
-- Removed Plone 4.2 compatibility.
-  [pbauer]
-
-- Add migration of at-collections to the new collection-behavior.
-  [pbauer]
-
-- Display richtext in collection-views.
-  [pbauer]
-
-- Reorganize and improve documentation.
-  [pbauer]
-
-- Add a richtext-behavior and use it in for all types.
-  [amleczko, pysailor]
-
-- Improve the migration-results page (Fix #67).
-  [pbauer]
-
-- For uneditable content show a warning and hide the edit-link.
-  [pbauer]
-
-- Keep all modification-date during migration (Fix #62).
-  [pbauer]
-
-- Only attempt transforming files if valid content type.
-  [vangheem]
-
-- Make the collection behavior aware of INavigationRoot. Fixes #98
-  [rafaelbco]
-
-- Use unique URL provided by ``plone.app.imaging`` to show the large version
-  of a news item's lead image. This allows use of a stronger caching policy.
-  [rafaelbco]
-
-- Fix URL for Link object on the navigation portlet if it
-  contains variables (Fix #110).
-  [rafaelbco]
-
-
-1.1a1 (2013-11-22)
-------------------
-
-- Event content migration for Products.ATContentTypes ATEvent,
-  plone.app.event's ATEvent and Dexterity example type and
-  plone.app.contenttypes 1.0 Event to plone.app.contenttypes 1.1
-  Event based on plone.app.event's Dexterity behaviors.
-  [lentinj]
-
-- Remove DL's from portal message templates.
-  https://github.com/plone/Products.CMFPlone/issues/153
-  [khink]
-
-- Collection: get ``querybuilderresults`` view instead of using the
-  ``QueryBuilder`` class directly.
-  [maurits]
-
-- Fix migration restoreReferencesOrder removes references
-  [joka]
-
-- Enable summary_view and all_content views for content types that
-  have the collection behavior enabled.  Define collection_view for
-  those types so you can view the results.  These simply show the
-  results.  The normal view of such a type will just show all fields
-  in the usual dexterity way.
-  [maurits, kaselis]
-
-- Add customViewFields to the Collection behavior.  This was available
-  on old collections too.
-  [maurits, kaselis]
-
-- Change Collection to use a behavior.  Issue #65.
-  [maurits, kaselis]
-
-- Improved test coverage for test_migration
-  [joka]
-
-- Add tests for vocabularies used for the migration
-  [maethu]
-
-- Add migration-form /@@atct_migrate based on initial work by gborelli
-  [pbauer, tiazma]
-
-- Add ATBlob tests and use migration layer for test_migration
-  [joka]
-
-- Integrate plone.app.event.
-  [thet]
-
-
-1.0 (2013-10-08)
-----------------
-
-- Remove AT content and create DX-content when installing in a fresh site.
-  [pbauer]
-
-- Remove obsolete extra 'migrate_atct'.
-  [pbauer]
-
-- Add link and popup to the image of News Items.
-  [pbauer]
-
-- Use the default profile title for the example content profile.
-  [timo]
-
-- Unicode is expected, but ``obj.title`` and/or ``obj.description`` can be
-  still be None in SearchableText indexer.
-  [saily]
-
-
-1.0rc1 (2013-09-24)
--------------------
-
-- Implement a tearDownPloneSite method in testing.py to prevent test
-  isolation problems.
-  [timo]
-
-- Its possible to upload non-image data into a newsitem. The view was broken
-  then. Now it shows the uploaded file for download below the content. Its no
-  longer broken.
-  [jensens]
-
-- Add contributor role as default for all add permissions in order to
-  work together with the different plone worklfows, which assume it is
-  set this way.
-  [jensens]
-
-- fix #60: File Type has no mimetype specific icon in catalog metadata.
-  Also fixed for Image.
-  [jensens]
-
-- fix #58: Migration ignores "Exclude from Navigation".
-  [jensens]
-
-- disable LinkIntegrityNotifications during migrations, closes #40.
-  [jensens]
-
-- Fix Bug on SearchableText_file indexer when input stream contains
-  characters not convertable in ASCII. Assumes now utf-8 and replaces
-  all unknown. Even if search can not find the words with special
-  characters in, indexer does not break completely on those items.
-  [jensens]
-
-- Remove dependency on plone.app.referenceablebehavior, as it depends on
-  Products.Archetypes which installs the uid_catalog.
-  [thet]
-
-- Make collection syndicatable.
-  [vangheem]
-
-- Include the migration module not only when Products.ATContentTypes is
-  installed but also archetypes.schemaextender. The schemaextender might not
-  always be available.
-  [thet]
-
-- Add fulltext search of file objects.
-  [do3cc]
-
-- Fix link_redirect_view: Use index instead of template class var to
-  let customization by ZCML of the template.
-  [toutpt]
-
-- Add a permission for each content types.
-  [toutpt]
-
-
-1.0b2 (2013-05-31)
-------------------
-
-- Fix translations to the plone domain, and some translations match existing
-  translations in the plone domain. (ported from plone.app.collection)
-  [bosim]
-
-- Fix atct_album_view and don't use atctListAlbum.py.
-  [pbauer]
-
-- Add constrains for content create with the Content profile.
-  [ericof]
-
-- Add SearchableText indexer to Folder content type.
-  [ericof]
-
-- Fix atct_album_view.
-  [pbauer]
-
-- Removed dependency for collective.dexteritydiff since its features were
-  merged into Products.CMFDiffTool.
-  [pbauer]
-
-- Add test for behavior table_of_contents.
-  [pbauer]
-
-- Add migration for blobnewsitems as proposed in
-  https://github.com/plone/plone.app.blob/pull/2.
-  [pbauer]
-
-- Require cmf.ManagePortal for migration.
-  [pbauer]
-
-- Always migrate files and images to blob (fixes #26).
-  [pbauer]
-
-- Add table of contents-behavior for documents.
-  [pbauer]
-
-- Add versioning-behavior and it's dependencies.
-  [pbauer]
-
-- Remove image_view_fullscreen from the display-dropdown.
-  [pbauer]
-
-- Enable selecting addable types on folders by default.
-  [pbauer]
-
-- Fix reference-migrations if some objects were not migrated.
-  [pbauer]
-
-- Keep the order references when migrating.
-  [pabo3000]
-
-- Move templates into their own folder.
-  [pbauer]
-
-- Moved migration related code to specific module.
-  [gborelli]
-
-- Added migration Collection from app.collection to app.contenttypes.
-  [kroman0]
-
-- Add missing ``i18n:attributes`` to 'Edit' and 'View' actions of File type.
-  [saily]
-
-- Bind 'View' action to ``${object_url}/view`` instead of
-  ``${object_url}`` as in ATCT for File and Image type.
-  [saily]
-
-- Fixed installation of p.a.relationfield together with p.a.contenttypes.
-  [kroman0]
-
-- Fixed creating aggregator of events on creating Plone site.
-  [kroman0]
-
-- Added titles for menuitems.
-  [kroman0]
-
-- Hide uninstall profile from @@plone-addsite.
-  [kroman0]
-
-- Fix 'ImportError: cannot import name Counter' for Python 2.6.
-  http://github.com/plone/plone.app.contenttypes/issues/19
-  [timo]
-
-- Move XML schema definitions to schema folder.
-  [timo]
-
-- Prevent the importContent step from being run over and over again.
-  [pysailor]
-
-- Add build status image.
-  [saily]
-
-- Merge plone.app.collection (Tag: 2.0b5) into plone.app.contenttypes.
-  [timo]
-
-- Refactor p.a.collection robot framework tests.
-  [timo]
-
-
-1.0b1 (2013-01-27)
-------------------
-
-- Added mime type icon for file.
-  [loechel]
-
-- Lead image behavior added.
-  [timo]
-
-- Make NewsItem use the lead image behavior.
-  [timo]
-
-- SearchableText indexes added.
-  [reinhardt]
-
-- Set the text of front-page when creating a new Plone.
-  [pbauer]
-
-- Robot framework test added.
-  [Gomez]
-
-
-1.0a2 (unreleased)
-------------------
-
-- Move all templates from skins to browser views.
-  [timo]
-
-- User custom base classes for all content types.
-  [timo]
-
-- Migration view (@@fix_base_classes) added to migrate content objects that
-  were created with version 1.0a1.
-  [timo]
-
-- Mime Type Icon added for File View.
-  [loechel]
-
-
-1.0a1 (unreleased)
-------------------
-
-- Initial implementation.
-  [pbauer, timo, pumazi, agitator]
diff --git a/docs/CHANGES.rst b/docs/CHANGES.rst
new file mode 100644
index 0000000..3f918eb
--- /dev/null
+++ b/docs/CHANGES.rst
@@ -0,0 +1,373 @@
+Changelog
+=========
+
+1.2a2 (unreleased)
+------------------
+
+- Do a better check, if LinguaPlone is installed, based on the presence of the
+  "LinguaPlone" browser layer. Asking the quick installer tool might claim it's
+  installed, where it's not.
+  [thet]
+
+- Register folderish views not for plone.app.contenttypes' IFolder but for
+  plone.dexterity's IDexterityContainer. Now, these views can be used on any
+  folderish Dexterity content.
+  [thet]
+
+- Add a ICustomMigrator interface to the migration framework, which can be used
+  to register custom migrator adapters. This can be useful to add custom
+  migrators to more than one or all content types. For example for
+  schemaextenders, which are registered on a interface, which is provided by
+  several content types.
+  [thet]
+
+- In the migration framework, fix queries for Archetype objects, where only
+  interfaces are used to skip brains with no or Dexterity meta_type. In some
+  cases Dexterity and Archetype objects might provide the same marker
+  interfaces.
+  [thet]
+
+- Add logging messages to content migrator for more verbosity on what's
+  happening while running the migration.
+  [thet]
+
+- Use Plone 4 based @@atct_migrator and @@atct_migrator_results template
+  structure.
+  [thet]
+
+
+1.2a1 (2014-02-22)
+------------------
+
+- Fix viewlet warning about ineditable content (fixes #130)
+  [pbauer]
+
+- Reintroduce the removed schema-files and add upgrade-step to migrate to
+  behavior-driven richtext-fields (fixes #127)
+  [pbauer]
+
+- Delete Archetypes Member-folder before creating new default-content
+  (fixes #128)
+  [pbauer]
+
+- Remove outdated summary-behavior from event (fixes #129)
+  [pbauer]
+
+
+1.1b1 (2014-02-19)
+------------------
+
+- Add tests for collections and collection-migrations.
+  [pbauer]
+
+- Removed Plone 4.2 compatibility.
+  [pbauer]
+
+- Add migration of at-collections to the new collection-behavior.
+  [pbauer]
+
+- Display richtext in collection-views.
+  [pbauer]
+
+- Reorganize and improve documentation.
+  [pbauer]
+
+- Add a richtext-behavior and use it in for all types.
+  [amleczko, pysailor]
+
+- Improve the migration-results page (Fix #67).
+  [pbauer]
+
+- For uneditable content show a warning and hide the edit-link.
+  [pbauer]
+
+- Keep all modification-date during migration (Fix #62).
+  [pbauer]
+
+- Only attempt transforming files if valid content type.
+  [vangheem]
+
+- Make the collection behavior aware of INavigationRoot. Fixes #98
+  [rafaelbco]
+
+- Use unique URL provided by ``plone.app.imaging`` to show the large version
+  of a news item's lead image. This allows use of a stronger caching policy.
+  [rafaelbco]
+
+- Fix URL for Link object on the navigation portlet if it
+  contains variables (Fix #110).
+  [rafaelbco]
+
+
+1.1a1 (2013-11-22)
+------------------
+
+- Event content migration for Products.ATContentTypes ATEvent,
+  plone.app.event's ATEvent and Dexterity example type and
+  plone.app.contenttypes 1.0 Event to plone.app.contenttypes 1.1
+  Event based on plone.app.event's Dexterity behaviors.
+  [lentinj]
+
+- Remove DL's from portal message templates.
+  https://github.com/plone/Products.CMFPlone/issues/153
+  [khink]
+
+- Collection: get ``querybuilderresults`` view instead of using the
+  ``QueryBuilder`` class directly.
+  [maurits]
+
+- Fix migration restoreReferencesOrder removes references
+  [joka]
+
+- Enable summary_view and all_content views for content types that
+  have the collection behavior enabled.  Define collection_view for
+  those types so you can view the results.  These simply show the
+  results.  The normal view of such a type will just show all fields
+  in the usual dexterity way.
+  [maurits, kaselis]
+
+- Add customViewFields to the Collection behavior.  This was available
+  on old collections too.
+  [maurits, kaselis]
+
+- Change Collection to use a behavior.  Issue #65.
+  [maurits, kaselis]
+
+- Improved test coverage for test_migration
+  [joka]
+
+- Add tests for vocabularies used for the migration
+  [maethu]
+
+- Add migration-form /@@atct_migrate based on initial work by gborelli
+  [pbauer, tiazma]
+
+- Add ATBlob tests and use migration layer for test_migration
+  [joka]
+
+- Integrate plone.app.event.
+  [thet]
+
+
+1.0 (2013-10-08)
+----------------
+
+- Remove AT content and create DX-content when installing in a fresh site.
+  [pbauer]
+
+- Remove obsolete extra 'migrate_atct'.
+  [pbauer]
+
+- Add link and popup to the image of News Items.
+  [pbauer]
+
+- Use the default profile title for the example content profile.
+  [timo]
+
+- Unicode is expected, but ``obj.title`` and/or ``obj.description`` can be
+  still be None in SearchableText indexer.
+  [saily]
+
+
+1.0rc1 (2013-09-24)
+-------------------
+
+- Implement a tearDownPloneSite method in testing.py to prevent test
+  isolation problems.
+  [timo]
+
+- Its possible to upload non-image data into a newsitem. The view was broken
+  then. Now it shows the uploaded file for download below the content. Its no
+  longer broken.
+  [jensens]
+
+- Add contributor role as default for all add permissions in order to
+  work together with the different plone worklfows, which assume it is
+  set this way.
+  [jensens]
+
+- fix #60: File Type has no mimetype specific icon in catalog metadata.
+  Also fixed for Image.
+  [jensens]
+
+- fix #58: Migration ignores "Exclude from Navigation".
+  [jensens]
+
+- disable LinkIntegrityNotifications during migrations, closes #40.
+  [jensens]
+
+- Fix Bug on SearchableText_file indexer when input stream contains
+  characters not convertable in ASCII. Assumes now utf-8 and replaces
+  all unknown. Even if search can not find the words with special
+  characters in, indexer does not break completely on those items.
+  [jensens]
+
+- Remove dependency on plone.app.referenceablebehavior, as it depends on
+  Products.Archetypes which installs the uid_catalog.
+  [thet]
+
+- Make collection syndicatable.
+  [vangheem]
+
+- Include the migration module not only when Products.ATContentTypes is
+  installed but also archetypes.schemaextender. The schemaextender might not
+  always be available.
+  [thet]
+
+- Add fulltext search of file objects.
+  [do3cc]
+
+- Fix link_redirect_view: Use index instead of template class var to
+  let customization by ZCML of the template.
+  [toutpt]
+
+- Add a permission for each content types.
+  [toutpt]
+
+
+1.0b2 (2013-05-31)
+------------------
+
+- Fix translations to the plone domain, and some translations match existing
+  translations in the plone domain. (ported from plone.app.collection)
+  [bosim]
+
+- Fix atct_album_view and don't use atctListAlbum.py.
+  [pbauer]
+
+- Add constrains for content create with the Content profile.
+  [ericof]
+
+- Add SearchableText indexer to Folder content type.
+  [ericof]
+
+- Fix atct_album_view.
+  [pbauer]
+
+- Removed dependency for collective.dexteritydiff since its features were
+  merged into Products.CMFDiffTool.
+  [pbauer]
+
+- Add test for behavior table_of_contents.
+  [pbauer]
+
+- Add migration for blobnewsitems as proposed in
+  https://github.com/plone/plone.app.blob/pull/2.
+  [pbauer]
+
+- Require cmf.ManagePortal for migration.
+  [pbauer]
+
+- Always migrate files and images to blob (fixes #26).
+  [pbauer]
+
+- Add table of contents-behavior for documents.
+  [pbauer]
+
+- Add versioning-behavior and it's dependencies.
+  [pbauer]
+
+- Remove image_view_fullscreen from the display-dropdown.
+  [pbauer]
+
+- Enable selecting addable types on folders by default.
+  [pbauer]
+
+- Fix reference-migrations if some objects were not migrated.
+  [pbauer]
+
+- Keep the order references when migrating.
+  [pabo3000]
+
+- Move templates into their own folder.
+  [pbauer]
+
+- Moved migration related code to specific module.
+  [gborelli]
+
+- Added migration Collection from app.collection to app.contenttypes.
+  [kroman0]
+
+- Add missing ``i18n:attributes`` to 'Edit' and 'View' actions of File type.
+  [saily]
+
+- Bind 'View' action to ``${object_url}/view`` instead of
+  ``${object_url}`` as in ATCT for File and Image type.
+  [saily]
+
+- Fixed installation of p.a.relationfield together with p.a.contenttypes.
+  [kroman0]
+
+- Fixed creating aggregator of events on creating Plone site.
+  [kroman0]
+
+- Added titles for menuitems.
+  [kroman0]
+
+- Hide uninstall profile from @@plone-addsite.
+  [kroman0]
+
+- Fix 'ImportError: cannot import name Counter' for Python 2.6.
+  http://github.com/plone/plone.app.contenttypes/issues/19
+  [timo]
+
+- Move XML schema definitions to schema folder.
+  [timo]
+
+- Prevent the importContent step from being run over and over again.
+  [pysailor]
+
+- Add build status image.
+  [saily]
+
+- Merge plone.app.collection (Tag: 2.0b5) into plone.app.contenttypes.
+  [timo]
+
+- Refactor p.a.collection robot framework tests.
+  [timo]
+
+
+1.0b1 (2013-01-27)
+------------------
+
+- Added mime type icon for file.
+  [loechel]
+
+- Lead image behavior added.
+  [timo]
+
+- Make NewsItem use the lead image behavior.
+  [timo]
+
+- SearchableText indexes added.
+  [reinhardt]
+
+- Set the text of front-page when creating a new Plone.
+  [pbauer]
+
+- Robot framework test added.
+  [Gomez]
+
+
+1.0a2 (unreleased)
+------------------
+
+- Move all templates from skins to browser views.
+  [timo]
+
+- User custom base classes for all content types.
+  [timo]
+
+- Migration view (@@fix_base_classes) added to migrate content objects that
+  were created with version 1.0a1.
+  [timo]
+
+- Mime Type Icon added for File View.
+  [loechel]
+
+
+1.0a1 (unreleased)
+------------------
+
+- Initial implementation.
+  [pbauer, timo, pumazi, agitator]
diff --git a/setup.py b/setup.py
index 883a9fe..1c01a12 100644
--- a/setup.py
+++ b/setup.py
@@ -10,8 +10,7 @@ def read(*rnames):
 
 long_description = \
     read('docs', 'README.rst') + \
-    read('docs', 'CHANGELOG.rst') + \
-    read('docs', 'LICENSE.rst')
+    read('docs', 'CHANGES.rst')
 
 setup(name='plone.app.contenttypes',
       version=version,


Repository: plone.app.contenttypes
Branch: refs/heads/master
Date: 2014-03-29T21:52:40+01:00
Author: Philip Bauer (pbauer) <bauer at starzel.de>
Commit: https://github.com/plone/plone.app.contenttypes/commit/0fdfe0f38040ced33a4c9e206a1aeae13548dbcf

rename atct_album_view to folder_album_view

Files changed:
A plone/app/contenttypes/browser/templates/folder_album_view.pt
M plone/app/contenttypes/browser/album_view.py
M plone/app/contenttypes/browser/configure.zcml
M plone/app/contenttypes/migration/migration.py
M plone/app/contenttypes/profiles/default/types/Folder.xml
M plone/app/contenttypes/profiles/uninstall/types/Folder.xml
M plone/app/contenttypes/tests/test_folder.py
M plone/app/contenttypes/tests/test_migration.py
M plone/app/contenttypes/upgrades.py
M plone/app/contenttypes/upgrades.zcml
D plone/app/contenttypes/browser/templates/atct_album_view.pt

diff --git a/plone/app/contenttypes/browser/album_view.py b/plone/app/contenttypes/browser/album_view.py
index add2431..fca86d8 100644
--- a/plone/app/contenttypes/browser/album_view.py
+++ b/plone/app/contenttypes/browser/album_view.py
@@ -8,7 +8,7 @@
 
 class AlbumView(BrowserView):
 
-    template = ViewPageTemplateFile('templates/atct_album_view.pt')
+    template = ViewPageTemplateFile('templates/folder_album_view.pt')
 
     def getAlbumContent(self,
                         container=None,
diff --git a/plone/app/contenttypes/browser/configure.zcml b/plone/app/contenttypes/browser/configure.zcml
index 9270c0f..3bf50d6 100644
--- a/plone/app/contenttypes/browser/configure.zcml
+++ b/plone/app/contenttypes/browser/configure.zcml
@@ -184,11 +184,11 @@
     />
 
   <browser:page
-    name="atct_album_view"
+    name="folder_album_view"
     for="plone.dexterity.interfaces.IDexterityContainer"
     layer="plone.app.contenttypes.interfaces.IPloneAppContenttypesLayer"
     class=".album_view.AlbumView"
-    template="templates/atct_album_view.pt"
+    template="templates/folder_album_view.pt"
     permission="zope2.View"
     menu="plone_displayviews"
     title="Album"
diff --git a/plone/app/contenttypes/browser/templates/atct_album_view.pt b/plone/app/contenttypes/browser/templates/atct_album_view.pt
deleted file mode 100644
index 010170b..0000000
--- a/plone/app/contenttypes/browser/templates/atct_album_view.pt
+++ /dev/null
@@ -1,103 +0,0 @@
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US"
-      lang="en-US"
-      metal:use-macro="here/main_template/macros/master"
-      i18n:domain="plone">
-
-<body>
-
-<metal:content-core fill-slot="content-core">
-
-<metal:main_macro define-macro="content-core"
-     tal:define="result python:view.getAlbumContent(images=1, folders=1, subimages=0, others=1);
-                 images result/images;
-                 albums result/folders;
-                 otherContents result/others;
-                 Batch python:modules['Products.CMFPlone'].Batch;
-                 b_start python:request.get('b_start', 0);
-                 templateId template/getId;
-                 batch python:Batch(images, 12, int(b_start), orphan=1)">
-
-    <div metal:define-macro="text-field-view"
-         id="parent-fieldname-text" class="stx"
-         tal:define="has_text exists:context/aq_explicit/getText;
-                     text python:has_text and here.getText() or ''"
-         tal:condition="text"
-         tal:attributes="class python: here.Format() in ('text/structured',
-                                               'text/x-rst', ) and 'stx' or 'plain'">
-        <div metal:define-slot="inside" tal:replace="structure text">The body</div>
-    </div>
-
-    <tal:albumsimages tal:condition="python:albums or images">
-        <tal:images tal:condition="batch" tal:repeat="image batch">
-            <div class="photoAlbumEntry">
-                <a tal:define="id python:int(b_start)+int(repeat['image'].number()-1);
-                               scale image/@@images;
-                               img_tag python:scale.scale('image', scale='thumb').tag()"
-                   tal:attributes="href string:${image/absolute_url}/view;
-                                   title image/Description">
-                    <span class="photoAlbumEntryWrapper">
-                        <img src="" alt="" tal:replace="structure img_tag" />
-                    </span>
-                    <span class="photoAlbumEntryTitle" tal:content="image/pretty_title_or_id">
-                       Title
-                    </span>
-                </a>
-            </div>
-        </tal:images>
-
-        <div class="photoAlbum" tal:condition="albums">
-        <tal:albums tal:repeat="album albums">
-
-            <div class="photoAlbumEntry photoAlbumFolder"
-                 tal:define="image_brains_in_album python:view.getAlbumContent(subimages=1, container=album)['subimages'];
-                             number_of_images python:len(image_brains_in_album);
-                             random python:modules['random'];
-                             random_image python:number_of_images and random.choice(image_brains_in_album).getObject() or None">
-                        <a tal:attributes="href album/getURL;
-                                           title album/Description">
-                            <span class="photoAlbumEntryWrapper">
-                                <tal:block condition="number_of_images">
-                                <img src="" alt=""
-                                     tal:define="scale random_image/@@images;
-                                                 img_tag python:scale.scale('image', scale='thumb').tag()"
-                                     tal:replace="structure img_tag" />
-                                </tal:block>
-                            </span>
-                            <span class="photoAlbumEntryTitle">
-                               <tal:title content="album/pretty_title_or_id">Title</tal:title>
-                            (<tal:number content="number_of_images" />)
-                            </span>
-                        </a>
-            </div>
-
-        </tal:albums>
-        </div>
-
-        <div class="visualClear"><!-- --></div>
-
-    </tal:albumsimages>
-
-    <p class="discreet"
-       i18n:domain="atcontenttypes"
-       i18n:translate="text_no_albums_uploaded"
-       tal:condition="python:not (albums or images)">
-        No albums or photos uploaded yet.
-    </p>
-
-    <div tal:condition="python:albums or images"
-         metal:use-macro="here/batch_macros/macros/navigation" />
-
-    <tal:listing condition="otherContents"
-                 define="folderContents otherContents">
-        <metal:listing metal:use-macro="here/folder_listing/macros/listing">
-            <metal:empty metal:fill-slot="no_items_in_listing"></metal:empty>
-        </metal:listing>
-
-    </tal:listing>
-
-</metal:main_macro>
-</metal:content-core>
-
-</body>
-
-</html>
diff --git a/plone/app/contenttypes/browser/templates/folder_album_view.pt b/plone/app/contenttypes/browser/templates/folder_album_view.pt
new file mode 100644
index 0000000..010170b
--- /dev/null
+++ b/plone/app/contenttypes/browser/templates/folder_album_view.pt
@@ -0,0 +1,103 @@
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US"
+      lang="en-US"
+      metal:use-macro="here/main_template/macros/master"
+      i18n:domain="plone">
+
+<body>
+
+<metal:content-core fill-slot="content-core">
+
+<metal:main_macro define-macro="content-core"
+     tal:define="result python:view.getAlbumContent(images=1, folders=1, subimages=0, others=1);
+                 images result/images;
+                 albums result/folders;
+                 otherContents result/others;
+                 Batch python:modules['Products.CMFPlone'].Batch;
+                 b_start python:request.get('b_start', 0);
+                 templateId template/getId;
+                 batch python:Batch(images, 12, int(b_start), orphan=1)">
+
+    <div metal:define-macro="text-field-view"
+         id="parent-fieldname-text" class="stx"
+         tal:define="has_text exists:context/aq_explicit/getText;
+                     text python:has_text and here.getText() or ''"
+         tal:condition="text"
+         tal:attributes="class python: here.Format() in ('text/structured',
+                                               'text/x-rst', ) and 'stx' or 'plain'">
+        <div metal:define-slot="inside" tal:replace="structure text">The body</div>
+    </div>
+
+    <tal:albumsimages tal:condition="python:albums or images">
+        <tal:images tal:condition="batch" tal:repeat="image batch">
+            <div class="photoAlbumEntry">
+                <a tal:define="id python:int(b_start)+int(repeat['image'].number()-1);
+                               scale image/@@images;
+                               img_tag python:scale.scale('image', scale='thumb').tag()"
+                   tal:attributes="href string:${image/absolute_url}/view;
+                                   title image/Description">
+                    <span class="photoAlbumEntryWrapper">
+                        <img src="" alt="" tal:replace="structure img_tag" />
+                    </span>
+                    <span class="photoAlbumEntryTitle" tal:content="image/pretty_title_or_id">
+                       Title
+                    </span>
+                </a>
+            </div>
+        </tal:images>
+
+        <div class="photoAlbum" tal:condition="albums">
+        <tal:albums tal:repeat="album albums">
+
+            <div class="photoAlbumEntry photoAlbumFolder"
+                 tal:define="image_brains_in_album python:view.getAlbumContent(subimages=1, container=album)['subimages'];
+                             number_of_images python:len(image_brains_in_album);
+                             random python:modules['random'];
+                             random_image python:number_of_images and random.choice(image_brains_in_album).getObject() or None">
+                        <a tal:attributes="href album/getURL;
+                                           title album/Description">
+                            <span class="photoAlbumEntryWrapper">
+                                <tal:block condition="number_of_images">
+                                <img src="" alt=""
+                                     tal:define="scale random_image/@@images;
+                                                 img_tag python:scale.scale('image', scale='thumb').tag()"
+                                     tal:replace="structure img_tag" />
+                                </tal:block>
+                            </span>
+                            <span class="photoAlbumEntryTitle">
+                               <tal:title content="album/pretty_title_or_id">Title</tal:title>
+                            (<tal:number content="number_of_images" />)
+                            </span>
+                        </a>
+            </div>
+
+        </tal:albums>
+        </div>
+
+        <div class="visualClear"><!-- --></div>
+
+    </tal:albumsimages>
+
+    <p class="discreet"
+       i18n:domain="atcontenttypes"
+       i18n:translate="text_no_albums_uploaded"
+       tal:condition="python:not (albums or images)">
+        No albums or photos uploaded yet.
+    </p>
+
+    <div tal:condition="python:albums or images"
+         metal:use-macro="here/batch_macros/macros/navigation" />
+
+    <tal:listing condition="otherContents"
+                 define="folderContents otherContents">
+        <metal:listing metal:use-macro="here/folder_listing/macros/listing">
+            <metal:empty metal:fill-slot="no_items_in_listing"></metal:empty>
+        </metal:listing>
+
+    </tal:listing>
+
+</metal:main_macro>
+</metal:content-core>
+
+</body>
+
+</html>
diff --git a/plone/app/contenttypes/migration/migration.py b/plone/app/contenttypes/migration/migration.py
index ddd35d6..0287091 100644
--- a/plone/app/contenttypes/migration/migration.py
+++ b/plone/app/contenttypes/migration/migration.py
@@ -422,6 +422,10 @@ class FolderMigrator(ATCTFolderMigrator):
     dst_portal_type = 'Folder'
     dst_meta_type = None  # not used
 
+    def beforeChange_migrate_layout(self):
+        if self.old.getLayout() == 'atct_album_view':
+            self.old.setLayout('folder_album_view')
+
 
 def migrate_folders(portal):
     return migrate(portal, FolderMigrator)
diff --git a/plone/app/contenttypes/profiles/default/types/Folder.xml b/plone/app/contenttypes/profiles/default/types/Folder.xml
index 758055f..cf0618b 100644
--- a/plone/app/contenttypes/profiles/default/types/Folder.xml
+++ b/plone/app/contenttypes/profiles/default/types/Folder.xml
@@ -17,7 +17,7 @@
   <element value="folder_summary_view"/>
   <element value="folder_full_view"/>
   <element value="folder_tabular_view"/>
-  <element value="atct_album_view"/>
+  <element value="folder_album_view"/>
   <element value="folder_listing"/>
  </property>
  <property name="default_view_fallback">False</property>
diff --git a/plone/app/contenttypes/profiles/uninstall/types/Folder.xml b/plone/app/contenttypes/profiles/uninstall/types/Folder.xml
index 769763d..fae1d73 100644
--- a/plone/app/contenttypes/profiles/uninstall/types/Folder.xml
+++ b/plone/app/contenttypes/profiles/uninstall/types/Folder.xml
@@ -19,7 +19,7 @@
   <element value="folder_summary_view"/>
   <element value="folder_full_view"/>
   <element value="folder_tabular_view"/>
-  <element value="atct_album_view"/>
+  <element value="folder_album_view"/>
   <element value="folder_listing"/>
  </property>
  <alias from="(Default)" to="(dynamic view)"/>
diff --git a/plone/app/contenttypes/tests/test_folder.py b/plone/app/contenttypes/tests/test_folder.py
index 97318a9..0f96f8e 100644
--- a/plone/app/contenttypes/tests/test_folder.py
+++ b/plone/app/contenttypes/tests/test_folder.py
@@ -133,7 +133,7 @@ def test_folder_tabular_view(self):
         self.assertTrue('My Folder' in self.browser.contents)
         self.assertTrue('Document 1' in self.browser.contents)
 
-    def test_atct_album_view(self):
-        self.browser.open(self.folder_url + '/atct_album_view')
+    def test_folder_album_view(self):
+        self.browser.open(self.folder_url + '/folder_album_view')
         self.assertTrue('My Folder' in self.browser.contents)
         self.assertTrue('Document 1' in self.browser.contents)
diff --git a/plone/app/contenttypes/tests/test_migration.py b/plone/app/contenttypes/tests/test_migration.py
index 9baa361..a44fa18 100644
--- a/plone/app/contenttypes/tests/test_migration.py
+++ b/plone/app/contenttypes/tests/test_migration.py
@@ -911,12 +911,14 @@ def test_folder_is_migrated(self):
         from plone.app.contenttypes.interfaces import IFolder
         self.portal.invokeFactory('Folder', 'folder')
         at_folder = self.portal['folder']
+        at_folder.setLayout('atct_album_view')
         applyProfile(self.portal, 'plone.app.contenttypes:default')
         migrator = self.get_migrator(at_folder, FolderMigrator)
         migrator.migrate()
         dx_folder = self.portal['folder']
         self.assertTrue(IFolder.providedBy(dx_folder))
         self.assertTrue(at_folder is not dx_folder)
+        self.assertEqual(dx_folder.getLayout(), 'folder_album_view')
 
     def test_folder_children_are_migrated(self):
         from plone.app.contenttypes.migration.migration import FolderMigrator
diff --git a/plone/app/contenttypes/upgrades.py b/plone/app/contenttypes/upgrades.py
index 3b44de4..83814d5 100644
--- a/plone/app/contenttypes/upgrades.py
+++ b/plone/app/contenttypes/upgrades.py
@@ -1,4 +1,5 @@
 # -*- coding: utf-8 -*-
+from Products.CMFCore.utils import getToolByName
 from plone.dexterity.interfaces import IDexterityFTI
 from zope.component import queryUtility
 
@@ -67,3 +68,20 @@ def migrate_to_richtext(context):
         'profile-plone.app.contenttypes:default',
         'typeinfo',
     )
+
+
+def migrate_album_view(context):
+    """Migrate Folders name view"""
+
+    # allow folder_album_view for the types
+    context.runImportStepFromProfile(
+        'profile-plone.app.contenttypes:default',
+        'typeinfo',
+    )
+    catalog = getToolByName(context, 'portal_catalog')
+    search = catalog.unrestrictedSearchResults
+    for brain in search(portal_type='Folder'):
+        obj = brain.getObject()
+        current = context.getLayout()
+        if current == 'atct_album_view':
+            obj.setLayout('folder_album_view')
diff --git a/plone/app/contenttypes/upgrades.zcml b/plone/app/contenttypes/upgrades.zcml
index 4b88a3e..8716b6b 100644
--- a/plone/app/contenttypes/upgrades.zcml
+++ b/plone/app/contenttypes/upgrades.zcml
@@ -42,4 +42,13 @@
       handler=".upgrades.migrate_to_richtext"
       />
 
+  <genericsetup:upgradeStep
+      source="1101"
+      destination="1102"
+      title="Update album_view"
+      description=""
+      profile="plone.app.contenttypes:default"
+      handler=".upgrades.migrate_album_view"
+      />
+
 </configure>


Repository: plone.app.contenttypes
Branch: refs/heads/master
Date: 2014-03-29T21:53:41+01:00
Author: Philip Bauer (pbauer) <bauer at starzel.de>
Commit: https://github.com/plone/plone.app.contenttypes/commit/548f9fad38c5c972887879e6cbb9e8624156e63c

add changenote

Files changed:
M docs/CHANGES.rst

diff --git a/docs/CHANGES.rst b/docs/CHANGES.rst
index 3f918eb..d11c889 100644
--- a/docs/CHANGES.rst
+++ b/docs/CHANGES.rst
@@ -4,6 +4,9 @@ Changelog
 1.2a2 (unreleased)
 ------------------
 
+- Rename atct_album_view to folder_album_view.
+  [pbauer]
+
 - Do a better check, if LinguaPlone is installed, based on the presence of the
   "LinguaPlone" browser layer. Asking the quick installer tool might claim it's
   installed, where it's not.


Repository: plone.app.contenttypes
Branch: refs/heads/master
Date: 2014-03-31T09:48:26+02:00
Author: Philip Bauer (pbauer) <bauer at starzel.de>
Commit: https://github.com/plone/plone.app.contenttypes/commit/ec2a6523bc87525af7dad72ac933ae214a701994

rename atct_album_view to folder_album_view

Files changed:
A plone/app/contenttypes/browser/templates/folder_album_view.pt
M plone/app/contenttypes/browser/album_view.py
M plone/app/contenttypes/browser/configure.zcml
M plone/app/contenttypes/migration/migration.py
M plone/app/contenttypes/profiles/default/types/Folder.xml
M plone/app/contenttypes/profiles/uninstall/types/Folder.xml
M plone/app/contenttypes/tests/test_folder.py
M plone/app/contenttypes/tests/test_migration.py
M plone/app/contenttypes/upgrades.py
M plone/app/contenttypes/upgrades.zcml
D plone/app/contenttypes/browser/templates/atct_album_view.pt

diff --git a/plone/app/contenttypes/browser/album_view.py b/plone/app/contenttypes/browser/album_view.py
index add2431..fca86d8 100644
--- a/plone/app/contenttypes/browser/album_view.py
+++ b/plone/app/contenttypes/browser/album_view.py
@@ -8,7 +8,7 @@
 
 class AlbumView(BrowserView):
 
-    template = ViewPageTemplateFile('templates/atct_album_view.pt')
+    template = ViewPageTemplateFile('templates/folder_album_view.pt')
 
     def getAlbumContent(self,
                         container=None,
diff --git a/plone/app/contenttypes/browser/configure.zcml b/plone/app/contenttypes/browser/configure.zcml
index 9270c0f..3bf50d6 100644
--- a/plone/app/contenttypes/browser/configure.zcml
+++ b/plone/app/contenttypes/browser/configure.zcml
@@ -184,11 +184,11 @@
     />
 
   <browser:page
-    name="atct_album_view"
+    name="folder_album_view"
     for="plone.dexterity.interfaces.IDexterityContainer"
     layer="plone.app.contenttypes.interfaces.IPloneAppContenttypesLayer"
     class=".album_view.AlbumView"
-    template="templates/atct_album_view.pt"
+    template="templates/folder_album_view.pt"
     permission="zope2.View"
     menu="plone_displayviews"
     title="Album"
diff --git a/plone/app/contenttypes/browser/templates/atct_album_view.pt b/plone/app/contenttypes/browser/templates/atct_album_view.pt
deleted file mode 100644
index 010170b..0000000
--- a/plone/app/contenttypes/browser/templates/atct_album_view.pt
+++ /dev/null
@@ -1,103 +0,0 @@
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US"
-      lang="en-US"
-      metal:use-macro="here/main_template/macros/master"
-      i18n:domain="plone">
-
-<body>
-
-<metal:content-core fill-slot="content-core">
-
-<metal:main_macro define-macro="content-core"
-     tal:define="result python:view.getAlbumContent(images=1, folders=1, subimages=0, others=1);
-                 images result/images;
-                 albums result/folders;
-                 otherContents result/others;
-                 Batch python:modules['Products.CMFPlone'].Batch;
-                 b_start python:request.get('b_start', 0);
-                 templateId template/getId;
-                 batch python:Batch(images, 12, int(b_start), orphan=1)">
-
-    <div metal:define-macro="text-field-view"
-         id="parent-fieldname-text" class="stx"
-         tal:define="has_text exists:context/aq_explicit/getText;
-                     text python:has_text and here.getText() or ''"
-         tal:condition="text"
-         tal:attributes="class python: here.Format() in ('text/structured',
-                                               'text/x-rst', ) and 'stx' or 'plain'">
-        <div metal:define-slot="inside" tal:replace="structure text">The body</div>
-    </div>
-
-    <tal:albumsimages tal:condition="python:albums or images">
-        <tal:images tal:condition="batch" tal:repeat="image batch">
-            <div class="photoAlbumEntry">
-                <a tal:define="id python:int(b_start)+int(repeat['image'].number()-1);
-                               scale image/@@images;
-                               img_tag python:scale.scale('image', scale='thumb').tag()"
-                   tal:attributes="href string:${image/absolute_url}/view;
-                                   title image/Description">
-                    <span class="photoAlbumEntryWrapper">
-                        <img src="" alt="" tal:replace="structure img_tag" />
-                    </span>
-                    <span class="photoAlbumEntryTitle" tal:content="image/pretty_title_or_id">
-                       Title
-                    </span>
-                </a>
-            </div>
-        </tal:images>
-
-        <div class="photoAlbum" tal:condition="albums">
-        <tal:albums tal:repeat="album albums">
-
-            <div class="photoAlbumEntry photoAlbumFolder"
-                 tal:define="image_brains_in_album python:view.getAlbumContent(subimages=1, container=album)['subimages'];
-                             number_of_images python:len(image_brains_in_album);
-                             random python:modules['random'];
-                             random_image python:number_of_images and random.choice(image_brains_in_album).getObject() or None">
-                        <a tal:attributes="href album/getURL;
-                                           title album/Description">
-                            <span class="photoAlbumEntryWrapper">
-                                <tal:block condition="number_of_images">
-                                <img src="" alt=""
-                                     tal:define="scale random_image/@@images;
-                                                 img_tag python:scale.scale('image', scale='thumb').tag()"
-                                     tal:replace="structure img_tag" />
-                                </tal:block>
-                            </span>
-                            <span class="photoAlbumEntryTitle">
-                               <tal:title content="album/pretty_title_or_id">Title</tal:title>
-                            (<tal:number content="number_of_images" />)
-                            </span>
-                        </a>
-            </div>
-
-        </tal:albums>
-        </div>
-
-        <div class="visualClear"><!-- --></div>
-
-    </tal:albumsimages>
-
-    <p class="discreet"
-       i18n:domain="atcontenttypes"
-       i18n:translate="text_no_albums_uploaded"
-       tal:condition="python:not (albums or images)">
-        No albums or photos uploaded yet.
-    </p>
-
-    <div tal:condition="python:albums or images"
-         metal:use-macro="here/batch_macros/macros/navigation" />
-
-    <tal:listing condition="otherContents"
-                 define="folderContents otherContents">
-        <metal:listing metal:use-macro="here/folder_listing/macros/listing">
-            <metal:empty metal:fill-slot="no_items_in_listing"></metal:empty>
-        </metal:listing>
-
-    </tal:listing>
-
-</metal:main_macro>
-</metal:content-core>
-
-</body>
-
-</html>
diff --git a/plone/app/contenttypes/browser/templates/folder_album_view.pt b/plone/app/contenttypes/browser/templates/folder_album_view.pt
new file mode 100644
index 0000000..010170b
--- /dev/null
+++ b/plone/app/contenttypes/browser/templates/folder_album_view.pt
@@ -0,0 +1,103 @@
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US"
+      lang="en-US"
+      metal:use-macro="here/main_template/macros/master"
+      i18n:domain="plone">
+
+<body>
+
+<metal:content-core fill-slot="content-core">
+
+<metal:main_macro define-macro="content-core"
+     tal:define="result python:view.getAlbumContent(images=1, folders=1, subimages=0, others=1);
+                 images result/images;
+                 albums result/folders;
+                 otherContents result/others;
+                 Batch python:modules['Products.CMFPlone'].Batch;
+                 b_start python:request.get('b_start', 0);
+                 templateId template/getId;
+                 batch python:Batch(images, 12, int(b_start), orphan=1)">
+
+    <div metal:define-macro="text-field-view"
+         id="parent-fieldname-text" class="stx"
+         tal:define="has_text exists:context/aq_explicit/getText;
+                     text python:has_text and here.getText() or ''"
+         tal:condition="text"
+         tal:attributes="class python: here.Format() in ('text/structured',
+                                               'text/x-rst', ) and 'stx' or 'plain'">
+        <div metal:define-slot="inside" tal:replace="structure text">The body</div>
+    </div>
+
+    <tal:albumsimages tal:condition="python:albums or images">
+        <tal:images tal:condition="batch" tal:repeat="image batch">
+            <div class="photoAlbumEntry">
+                <a tal:define="id python:int(b_start)+int(repeat['image'].number()-1);
+                               scale image/@@images;
+                               img_tag python:scale.scale('image', scale='thumb').tag()"
+                   tal:attributes="href string:${image/absolute_url}/view;
+                                   title image/Description">
+                    <span class="photoAlbumEntryWrapper">
+                        <img src="" alt="" tal:replace="structure img_tag" />
+                    </span>
+                    <span class="photoAlbumEntryTitle" tal:content="image/pretty_title_or_id">
+                       Title
+                    </span>
+                </a>
+            </div>
+        </tal:images>
+
+        <div class="photoAlbum" tal:condition="albums">
+        <tal:albums tal:repeat="album albums">
+
+            <div class="photoAlbumEntry photoAlbumFolder"
+                 tal:define="image_brains_in_album python:view.getAlbumContent(subimages=1, container=album)['subimages'];
+                             number_of_images python:len(image_brains_in_album);
+                             random python:modules['random'];
+                             random_image python:number_of_images and random.choice(image_brains_in_album).getObject() or None">
+                        <a tal:attributes="href album/getURL;
+                                           title album/Description">
+                            <span class="photoAlbumEntryWrapper">
+                                <tal:block condition="number_of_images">
+                                <img src="" alt=""
+                                     tal:define="scale random_image/@@images;
+                                                 img_tag python:scale.scale('image', scale='thumb').tag()"
+                                     tal:replace="structure img_tag" />
+                                </tal:block>
+                            </span>
+                            <span class="photoAlbumEntryTitle">
+                               <tal:title content="album/pretty_title_or_id">Title</tal:title>
+                            (<tal:number content="number_of_images" />)
+                            </span>
+                        </a>
+            </div>
+
+        </tal:albums>
+        </div>
+
+        <div class="visualClear"><!-- --></div>
+
+    </tal:albumsimages>
+
+    <p class="discreet"
+       i18n:domain="atcontenttypes"
+       i18n:translate="text_no_albums_uploaded"
+       tal:condition="python:not (albums or images)">
+        No albums or photos uploaded yet.
+    </p>
+
+    <div tal:condition="python:albums or images"
+         metal:use-macro="here/batch_macros/macros/navigation" />
+
+    <tal:listing condition="otherContents"
+                 define="folderContents otherContents">
+        <metal:listing metal:use-macro="here/folder_listing/macros/listing">
+            <metal:empty metal:fill-slot="no_items_in_listing"></metal:empty>
+        </metal:listing>
+
+    </tal:listing>
+
+</metal:main_macro>
+</metal:content-core>
+
+</body>
+
+</html>
diff --git a/plone/app/contenttypes/migration/migration.py b/plone/app/contenttypes/migration/migration.py
index ddd35d6..0287091 100644
--- a/plone/app/contenttypes/migration/migration.py
+++ b/plone/app/contenttypes/migration/migration.py
@@ -422,6 +422,10 @@ class FolderMigrator(ATCTFolderMigrator):
     dst_portal_type = 'Folder'
     dst_meta_type = None  # not used
 
+    def beforeChange_migrate_layout(self):
+        if self.old.getLayout() == 'atct_album_view':
+            self.old.setLayout('folder_album_view')
+
 
 def migrate_folders(portal):
     return migrate(portal, FolderMigrator)
diff --git a/plone/app/contenttypes/profiles/default/types/Folder.xml b/plone/app/contenttypes/profiles/default/types/Folder.xml
index 758055f..cf0618b 100644
--- a/plone/app/contenttypes/profiles/default/types/Folder.xml
+++ b/plone/app/contenttypes/profiles/default/types/Folder.xml
@@ -17,7 +17,7 @@
   <element value="folder_summary_view"/>
   <element value="folder_full_view"/>
   <element value="folder_tabular_view"/>
-  <element value="atct_album_view"/>
+  <element value="folder_album_view"/>
   <element value="folder_listing"/>
  </property>
  <property name="default_view_fallback">False</property>
diff --git a/plone/app/contenttypes/profiles/uninstall/types/Folder.xml b/plone/app/contenttypes/profiles/uninstall/types/Folder.xml
index 769763d..fae1d73 100644
--- a/plone/app/contenttypes/profiles/uninstall/types/Folder.xml
+++ b/plone/app/contenttypes/profiles/uninstall/types/Folder.xml
@@ -19,7 +19,7 @@
   <element value="folder_summary_view"/>
   <element value="folder_full_view"/>
   <element value="folder_tabular_view"/>
-  <element value="atct_album_view"/>
+  <element value="folder_album_view"/>
   <element value="folder_listing"/>
  </property>
  <alias from="(Default)" to="(dynamic view)"/>
diff --git a/plone/app/contenttypes/tests/test_folder.py b/plone/app/contenttypes/tests/test_folder.py
index 97318a9..0f96f8e 100644
--- a/plone/app/contenttypes/tests/test_folder.py
+++ b/plone/app/contenttypes/tests/test_folder.py
@@ -133,7 +133,7 @@ def test_folder_tabular_view(self):
         self.assertTrue('My Folder' in self.browser.contents)
         self.assertTrue('Document 1' in self.browser.contents)
 
-    def test_atct_album_view(self):
-        self.browser.open(self.folder_url + '/atct_album_view')
+    def test_folder_album_view(self):
+        self.browser.open(self.folder_url + '/folder_album_view')
         self.assertTrue('My Folder' in self.browser.contents)
         self.assertTrue('Document 1' in self.browser.contents)
diff --git a/plone/app/contenttypes/tests/test_migration.py b/plone/app/contenttypes/tests/test_migration.py
index 9baa361..a44fa18 100644
--- a/plone/app/contenttypes/tests/test_migration.py
+++ b/plone/app/contenttypes/tests/test_migration.py
@@ -911,12 +911,14 @@ def test_folder_is_migrated(self):
         from plone.app.contenttypes.interfaces import IFolder
         self.portal.invokeFactory('Folder', 'folder')
         at_folder = self.portal['folder']
+        at_folder.setLayout('atct_album_view')
         applyProfile(self.portal, 'plone.app.contenttypes:default')
         migrator = self.get_migrator(at_folder, FolderMigrator)
         migrator.migrate()
         dx_folder = self.portal['folder']
         self.assertTrue(IFolder.providedBy(dx_folder))
         self.assertTrue(at_folder is not dx_folder)
+        self.assertEqual(dx_folder.getLayout(), 'folder_album_view')
 
     def test_folder_children_are_migrated(self):
         from plone.app.contenttypes.migration.migration import FolderMigrator
diff --git a/plone/app/contenttypes/upgrades.py b/plone/app/contenttypes/upgrades.py
index 3b44de4..83814d5 100644
--- a/plone/app/contenttypes/upgrades.py
+++ b/plone/app/contenttypes/upgrades.py
@@ -1,4 +1,5 @@
 # -*- coding: utf-8 -*-
+from Products.CMFCore.utils import getToolByName
 from plone.dexterity.interfaces import IDexterityFTI
 from zope.component import queryUtility
 
@@ -67,3 +68,20 @@ def migrate_to_richtext(context):
         'profile-plone.app.contenttypes:default',
         'typeinfo',
     )
+
+
+def migrate_album_view(context):
+    """Migrate Folders name view"""
+
+    # allow folder_album_view for the types
+    context.runImportStepFromProfile(
+        'profile-plone.app.contenttypes:default',
+        'typeinfo',
+    )
+    catalog = getToolByName(context, 'portal_catalog')
+    search = catalog.unrestrictedSearchResults
+    for brain in search(portal_type='Folder'):
+        obj = brain.getObject()
+        current = context.getLayout()
+        if current == 'atct_album_view':
+            obj.setLayout('folder_album_view')
diff --git a/plone/app/contenttypes/upgrades.zcml b/plone/app/contenttypes/upgrades.zcml
index 4b88a3e..8716b6b 100644
--- a/plone/app/contenttypes/upgrades.zcml
+++ b/plone/app/contenttypes/upgrades.zcml
@@ -42,4 +42,13 @@
       handler=".upgrades.migrate_to_richtext"
       />
 
+  <genericsetup:upgradeStep
+      source="1101"
+      destination="1102"
+      title="Update album_view"
+      description=""
+      profile="plone.app.contenttypes:default"
+      handler=".upgrades.migrate_album_view"
+      />
+
 </configure>


Repository: plone.app.contenttypes
Branch: refs/heads/master
Date: 2014-03-31T09:48:26+02:00
Author: Philip Bauer (pbauer) <bauer at starzel.de>
Commit: https://github.com/plone/plone.app.contenttypes/commit/92beeddc171e11d3f85e802acfddca1e606c762f

add changenote

Files changed:
M docs/CHANGES.rst

diff --git a/docs/CHANGES.rst b/docs/CHANGES.rst
index 3f918eb..d11c889 100644
--- a/docs/CHANGES.rst
+++ b/docs/CHANGES.rst
@@ -4,6 +4,9 @@ Changelog
 1.2a2 (unreleased)
 ------------------
 
+- Rename atct_album_view to folder_album_view.
+  [pbauer]
+
 - Do a better check, if LinguaPlone is installed, based on the presence of the
   "LinguaPlone" browser layer. Asking the quick installer tool might claim it's
   installed, where it's not.


Repository: plone.app.contenttypes
Branch: refs/heads/master
Date: 2014-03-31T09:49:09+02:00
Author: Philip Bauer (pbauer) <bauer at starzel.de>
Commit: https://github.com/plone/plone.app.contenttypes/commit/0b69c0a46ad69275a5e3d20a9228ad492e2dde0b

Merge branch 'folder_album_view' of git://github.com/plone/plone.app.contenttypes into folder_album_view

Files changed:






-------------------------------------------------------------------------------
-------------- next part --------------
A non-text attachment was scrubbed...
Name: CHANGES.log
Type: application/octet-stream
Size: 56350 bytes
Desc: not available
URL: <http://lists.plone.org/pipermail/plone-testbot/attachments/20140331/06195dfd/attachment-0002.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: build.log
Type: application/octet-stream
Size: 53077 bytes
Desc: not available
URL: <http://lists.plone.org/pipermail/plone-testbot/attachments/20140331/06195dfd/attachment-0003.obj>


More information about the Testbot mailing list