Package: collective.alias
IntroductionThis package provides a new content type for Plone calledAlias. An alias is
configured with a reference to another content item. It then acts as an alias
for the given item.The alias mirrors most aspects of the original content item. If the original
is changed, the alias will be automatically updated. Certain aspects are
particular to the alias, however, including:URL/pathportal_catalog entryWorkflow statePermission/role map (e.g. as set by workflow)Local rolesContent rulesPortletsIn addition, certain aspects will mirror the original unless they are
explicitly set on the alias, at which point it will have its own version.
These aspects include:Content titleDisplay template (set via thedisplaymenu)PortletsUpgrade from Plone 3 to Plone 4With Plone 4, the UID index is converted to a UUIDIndex. The plone migration will
crash because of duplicated UID in the catalog.
So you need to fix your catalog before executing the plone migration,
go to portal_setup, Upgrades tab, choose collective.alias and
execute the upgrade step 1 to 2.Installationcollective.alias uses Dexterity. Seehttp://plone.org/products/dexterityfor
more information.To use the product in your own build, either depend on it in a setup.py file,
or add it to your buildout’seggslisting as normal.In either case, you probably want to use Dexterity’s Known Good Set of
packages to minimise the risk of package version conflicts. For example:[buildout]
...
extends =
    ...
    http://good-py.appspot.com/release/dexterity/1.0a2

...

[instance]
eggs =
    Plone
    collective.alias
    ...Refer tohttp://plone.org/products/dexterityto find the latest release of
the Dexterity KGS. collective.alias is tested with the 1.0 series of Dexterity
releases.Pasting aliasesIf the user has thecollective.alias: Add Aliaspermission in a given
folder, aPaste as aliasaction will appear in theactionsmenu if there
is one or more content items on the clipboard.Alias folder behaviourBy default, an alias will act as a container if the original content item
does. The alias will have the same metadata and settings as the original item,
but not its children. Children can be added to the alias directly, however.
Children can be other aliases, or regular content items.An alias may be configured to “allow traversal”. In this case, children of the
original content item will be available as children of the alias for traversal
or object access. They willnotnormally show up in folder listings, nor
will they be indexed in theportal_catalogas separate items. This mode is
useful for Collections and other types of content where child objects are
integral to the object.The “allow traversal” flag is set automatically based on the portal_type of
the original content object, though it can be modified from the alias edit
form.The list of types that allow traversal is stored in the configuration registry
and can e edited from theConfiguration registrycontrol panel. If you want
to add a custom type to this list with GenericSetup, use aregistry.xmlfile
like this:<registry>

    <record name="collective.alias.interfaces.IAliasSettings.traversalTypes">
      <value purge="false">
          <element>MyType</element>
      </value>
    </record>

</registry>Known issues:The following known issues exist:At the time of writing (Dexterity 1.0a2) it is not possible to create an
Archetypes reference (e.g. the standard “Related items” field on an
Archetypes content object, including Plone 3’s default types) to an alias.
This is due to an incompatibility between Dexterity and the Archetypes
reference implementation.To do:It’s not possible to edit an Alias.
Changes in Plone [1,2] require a new way to generate the object tabs.
The way this issue was addressed in Products.Collage [3] doesn’t work here,
becauseviewlet = provider.__getitem__(“plone.contentviews”)returns a
collective.alias.browser.ContentViews object, which doesn’t have the
prepareObjectTabs method.Changelog1.3.1 (2014-02-26)Modify available_expr of object_buttons/paste_alias action to not crash
if the user doesn’t have the permission to view the parent.
[vincentfretin]1.3 (2013-11-04)Remove plone.multilingual.interfaces.ITranslatable from Aliases.
[jaroel]1.2.4 (2013-10-22)Use Collection instead of Topic
[jaroel]1.2.3 (2013-09-25)Added MANIFEST.in
Release 1.2 install failing.
[thomasdesvenain]Adapt imports to Plone 4.3 compatibility
[saily]1.1 (2011-09-22)The upgrade profile clear and rebuild the zc.relation catalog to fix issues
with interfaces that don’t exist anymore.
[vincentfretin]Localized package + french translation.
[thomasdesvenain]Add ‘paste as alias’ action to folder buttons.
[thomasdesvenain]Fixed type icon display. Use icon_expr.
[thomasdesvenain]Add uuid to Alias objects and recatalog.
This fixes duplicated UID with UUIDIndex on Plone 4.
[vincentfretin]grok.CodeView doesn’t exist anymore in recent five.grok, replaced by grok.View.
[thomasdesvenain]Fix “AttributeError: ‘Plone’ object has no attribute ‘prepareObjectTabs’” in
Plone 4, disabling content views altogether.
(Most notably, disabling the option to edit an Alias).
[khink]1.0a1 (2009-08-02)Initial release