[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