Archetypes 1.3.0 RC 2 is released today. It's a framework for the development of new Content Types in Zope/CMF/Plone. Schema driven automatic form generation, simple integration with rich content types, and a lower entry bar to the complex requirements Zope places on new content objects.
The bundles of the second release candidate include 'Archetypes', 'PortalTransforms', 'MimetypesRegistry', 'generator', and 'validation'.
Version 1.3.0-rc2 will be announced as 1.3.0-final if no major bugs are found within the end of next week.
"Download Archetypes at sourceforge":http://prdownloads.sourceforge.net/archetypes/Archetypes-1.3.0-rc2.tar.gz?download
You'll find more information on Archetypes downloads and repositories at "Archetypes Documentation":http://plone.org/documentation/archetypes/download
If you find issues please report them to the
Also help us to resolve bugs by contributing with patches and detailed reports.
Major chances since 1.2 and early 1.3 releases
* Increased security [Sidnei da Silva, Dieter Maurer, me]
* New reference implementation with annotation objects on the source
object including metadata [Ben Saller, Philipp Auersperg]
* A seperated MimetypesRegistry
* Hundreds of smaller and bigger fixes to Archetypes and
all dependencie products. We have removed about 80+ bugs
from the bug collector.
* Fixed at least three possible memory leaks. Now the reference count
for all objects keeps stable even after several thousands of
* All attributes starting with _at_ are reserved for internal purposes.
Changes since 1.3.0-rc1
* Removed class="error" from field.pt error message. It caused some ui
* Fixed [ 1011658 ] portal_skins/archetypes folder disappeared after AT
reinstall. Under some circumstances the skins aren't properly
* Fixed [ 1011533 ] AT CEILING date for expires will break DateIndex.
Changed CEILING_DATE from year 9999 to year 2500.
* Fixed [ 1012238 ] Cannot set field using boolean widget under IE.
* Changed TemplateMixin.getDefaultLayout(): It first checks for an
attribute 'default_view' then for 'immediate_view' from the FTI and
at last it's sing 'base_view' as fallback.
* Removed warning when trying to apply an index on a reference field
from install_indexes. Indexes on reference fields are fully supported
* Changed permission of BaseObject.getField() and getWrappedField()
from ModifyPortalContent to View. All mutators on fields are secured
and it won't make any harm to get a field. Besides it is currently
possible getting a field over archetype_tool.
* Fixed [ 1012344 ] 'NoneType' not callable error on CMFMember prefs
page. Also cleaned up the way how the value is calculated inside
field.pt. Depending on widget.populate it's either assigning
edit_accessor or accessor to a var and THEN it's calling the var
(which is a method) when it's not None.
Sounds complex? Well the former version was much complexer.
* Subclasses TemplateMixin from ExtensionClass.Base, set default_view
to None in order to enable the immediate_view magic and made the
getDefaultView() method a little bit more efficient.
* Added a test for unqualified references to Schema to prevent user
errors. A relationship must be a non empty string. Also moved all
field tests in Schema to a new method _validateOnAdd().
* Added Danish translation. Thx to stonor!
* Added 'de-de' as fallback to the German translation.
* Applied fix from [ 924832 ] Widget:isVisible always returns 'visible'
for not DictType which is fixing a broken behavior for
* Fixed [ 1012570 ] Widget.py ReferenceField is horribly inefficient.
* Temporary fix for [ 1012408 ] __getitem__ doesn't play nice which is backward
compatible except of three broken behaviors:
BaseObject.__getitem__ now throws an Unauthorized exception when trying to
get an item starting with _ and it throws a KeyError when trying to access
a nonexisting object. Also it's using explicit acquisition.
* Fixed unicodeTestIn.py: return False immediately when the list is None or empty.
* Widget.py: Changed some field.get(instance) calls to
field.getEditAccessor(instance)() to get rid of some sort of infinite
loop (in append_only code forTextAreaWidget).
* Readded Extensions/utils.py:install_tools for backward compat.
* fixed edit view rendering of append_only textarea history in
widgets/textarea.pt data so whitespace is correct.
* Fix a misbehavior on __bobo_traverse__ now that Tiran changed the __getitem__
behavior. Before that, __getitem__ was taking precedence and acquiring the
object itself, so never getting this far:
Nothing has been found. Though it's not written anywere, from deep ZPublisher
inspection it seems like we *SHOULD NOT* raise a notFoundError, but instead,
return None and leave acquisition do it's job.
* Fixed [ 1011111 ] mishandling of UID W.R.T layers.
The reference engine is now using _getCopy() mark the copy of an object with
a marker _v_is_cp so manage_afterAdd() can detect copies in order to reassign
a new UUID and remove the reference annotations.
* Fixed Alan's fix for [ 1012570 ] brains has no relative_url.
(note to myself: addable option on ReferenceField still needs lots of tests)
* Fixed [ 1013265 ] last changes to Widget.py is highly inefficient.
* Fixed LinesWidget according to [ 1013379 ] LinesField/widget broken.
* Fixed bug in VariableSchemaSupport.VarClassGen mentioned in the thread on the
AT devel mailing list. See "Warning: avoid changing your AT class' meta_type
when you have existing instances".
[mitchel, dreamcatcher, tiran]
* Corrected icon in ZMI; Added some utils for ZMI setup.
* Changed unit test to work with an unpatched version of getToolByName
to get mimetypes_registry and portal_transform.
* Fixed [ 1015956 ] getBestIcon can fail.
* Fixed [ 1015292 ] boolean widget error, [ 1015394 ] 1.3 branch
value = None inappropriately and another problem with field.pt value.
* Fixed [ 1018821 ] _processInput in Field.py should rewind.
* Part fix [ 1013363 ] (renaming of folders nukes all references to AT
objects inside them):
It works now for AT folders, but renaming of non-AT folders still
breaks refs to their contained items so ATContentTypes based portals
should be fine now (except you rename the portal itself).
* Added monkey patch for CMFCatalogAware, PortalContent and
PortalFolder to fix the second part of [ 1013363 ].
* Fixed [ 1019803 ] Bug in ArchetypeTool.py: getWidgets(), also renamed
_is_fake_instance to _at_is_fake_instance.
* Fixed [ 1018300 ] schema defined indexes are not set anymore.
* Added targetId index to reference_catalog. It was removed earlier to
make the ref catalog more lightweight. However, it broke
* Explictly reinstall MimetypesRegistry, PortalTransforms and
Archetypes when running the migration. Before MTR and PT weren't
reinstalled ever and AT under some circumstances which were leading
to annoying bug reports.
* Added StdoutStringIO to migration.py which is printing the input to
stdout, too. Also added some gimmicks to the migration: After 10
items a '.' is printed to stdout and after 250 items a '*' is printed
to stdout so you can see how the migration is coming along.