Share

Archetypes

File Release Notes and Changelog

Release Name: 1.3.1

Notes:
This is a final bugfiy release for the version 1.3 of Archetypes. It recommended to use it over 1.3.0. It's fully backward compatible and no migration is needed.

Changes: 1.3.1-post-rc4 - 2004-11-15 =========================== * Some visual fixes to RichWidget and Field code + removed stray comments. [limi] * fixed field tests [yenzenz] 1.3.1-rc4 - 2004-11-06 ====================== * reverted the patch from duncan because of too many bugs :( final decicion for 1.3.x: we keep the 1.3.0-final reference copy behaviour. [hazmat, geoffd, yenzenz] * fixed reference_slot, wasnt adapted to the new style reference engine [yenzenz] 1.3.1-rc3 - 2004-11-05 ====================== * there where lots of discussions about the behaviour of references while copying. it ends up in 1.3.0-final with the default behaviour to do not copy references if a object is copied. now this is for several use-cases a great problem, and it's also difficult to copy them afterwards. finally we decided to make it configureable per reference in 1.4.x. A solution for 1.3 is provided by the patch from duncan booth we applied here. its transparent to the 1.3.0-final behaviour. you now can set in archetypes tool the copying behaviour. it defaults to not copy references. [duncanb, yenzenz] * Changed boolean widget so that the checkbox is displayed before the label and not below the help text. Makes more sense UI wise. [_ender_] * fix manage_delObjects of BaseFolderMixin that did not return anything [gotcha] * allow comma as dezimal delimiter in FixedPointField and convert it immediatly to a point-delimited-value. The whole process needs a rewrite in 1.4, this here is only a quick non-immersive usability enhancement. [yenzenz] 1.3.1-rc1 - 2004-10-17 ====================== * Fixed [ 1037265 ] Bug in ArchetypeTool:getWidgets(). Thanks to Tommy from IBAS for the catch. [dtremea] * Fixed a bug with TemplateMixin on folderish types: in navtree and on view tab the choosen template has been ignored, cause it felt back to an action folderlisting, which now is set to view instead. [yenzenz] * Applied patch contributed in [ 1038107 ] Problems with addable_types handling in ReferenceWidget. Thanks to Alec Mitchell for the patch. [yenzenz] * Added Archetypes Site customization policy. [tiran] * Changed it so that Title is not shown twice in view mode (once in the headline is fine, thank you ;) [limi] * Fixed [ 1042076 ] missing import in SQLMethod.py: atoi and time were missing. [tiran] * Fixed [ 1043114 ] WEBDAV folder creation broken. [tiran] * Updated quickref. Thanks to Jean Jordaan for his great work! [neaj, tiran] * Fixed [ 1037803 ] "AT Document Details" should be "Document Details" in edit Now Archetypes is using the portal type name by default instead of the archetype_name. You can change the new behavior by using a different type_name var in the templates. [tiran] * Added some ugly hacks to ship around [ 1040623 ] FTP upload broken. You may say it's fixed for AT 1.3 but for AT 1.4 we will have a much better implementation. [tiran] * Fixed [ 1038404 ] BaseFolder.mange_delObjects proteced by wrong permission. Now the method is protected by CMFCorePermissions.DeleteObjects instead of CMFCorePermissions.ModifyPortalContent which is exactly like Plone 2.x. [tiran] * Fixed [ 1038428 ] Unicode string in Subjects break base_metadata page. [tiran] * Partly fixed [ 1038450 ] Unauthorized due to BaseObject.__bobo_traverse__. Now __bobo_traverse__ is raising an AttributeError instead of returning None when the object can't be traversed. [dmauerer, tiran] * Added workaround for [ 1040514 ] AttributeError on some types after migration 1.2.4rc5->1.3.0 to BaseUnit. Somehow and sometimes the binary attribute gets lost magically. [tiran] * Extensions/utils.py (install_additional_templates): Added a method to automagically register classes that inherit from TemplateMixin. [dtremea] * Added Catalan translation file. Thanks to Albert Lombarte. [dtremea] * Added viewableFields() and editableFields() to Schema. The methods are returning only those fields that the current user is allowed to see/edit in the current context. [tiran] * Archetypes edit form is raising unauthorized if no editable fields are available. [tiran] * BaseContent.PUT and BaseUnit.PUT is also trying to get the uploaded data from BODY if BODYFILE is empty. [tiran] 1.3.0 - 2004-09-30 ================== * Fixed [ 1034649 ] Typo breaks catalog index creation: index_acessor -> index_accessor [ronnix] 1.3.0-rc4 - 2004-09-25 ====================== * Fixed [ 1032587 ] Error in field.Vocabulary. Thanks to Danny Bloemendaal for the catch. [dtremea] * Disabled two unit tests in test_marshaller because they were causing a memory fault in glibc. It's probably the cause of either wvWare or the test doc file. [tiran] * Added transaction_note to PloneCompat and use it instead of the one from Plone to keep backward comp. with CMF as requested on the mailing list. [tiran] 1.3.0-rc3 - 2004-09-18 ====================== * Fixed misc unit tests that where broken or relied on a broken behavior. [dreamcatcher] * Merged patch from [ 1026732 ] base_metadata can not use 'add $type' reference button. [tiran] * Fixed [ 1029648 ] getBestIcon needs to be better. [tiran] * Partly fixed [ 1024966 ] Reference migration problem: 1.3a2 --> 1.3rc2. References without a relationship name will get the relationship name EMPTY_RELATIONSHIP which is 'related' by default. That should be fine for all people. [tiran] * Added 'swallowResizeExceptions' attribute to ImageField. When the property is set to True all exceptions raised by PIL are captured and the specified scale isn't created. Note: Some scales might be created when PIL fails only for some sizes. [tiran] * Field.ReferenceField: Simplify code a bit. Fix a typo on exception name. [dreamcatcher] * Fixed [ 1023153 ] isEmpty validator must return empty string by using the new isEmptyNoError validator. [tiran] * Fixed [ 1029231 ] base_metadata doesn't use JS scripts properly, also cleaned up the base_metadata and added support for helper CSS. [tiran, kai] * Fixed [ 1025842 ] Missing i18n:translate in widgets/field.pt <label> [tiran] * Cleaned up and fixed ExtensibleMetadata class: o no more direct attribute access or attribute storage o rearranged some lines o use 'date is None and fallback or date' because testing for is None is much faster than testing a DateTime instance for not None. [tiran] * Added SQL* and VariableSchemaSupport to public.py. Please import only from public! [tiran] * Added class and id attributes to fields rendered in view-mode (field.pt). These had been accidentally left out. [elvix] * Fixed problem with BaseBTreeFolder losing references. It was calling CMFBTreeFolder manage_* methods which would end calling PortalFolder.manage_* methods (as they are not overriden in the class hierarchy) twice. The second type it would remove the references as there's a monkeypatch on Archetypes/patches.py which sets _v_cp_refs to None when calling CMFCatalogAware.manage_beforeDelete. [dreamcatcher] * Fixed copy problem with AggregatedStorage by added __getstate__ and __setstate__ methods. Before the chances copy.deepcopy was trying to copy a thread lock. [tiran] * Finally removed markCreationFlag which was a bad hack to achieve the same effect as portal_factory but w/o using portal_factory. I had a problem with it again and I don't want to have more headache! [tiran] * Changed BaseObject.initializeArchetype() to call edit() instead of update(). edit() is an alias for update and it's also the standard method to edit a type in CMF. It makes customization like in ATContentTypes much easier. [tiran] 1.3.0-rc2 - 2004-09-04 ====================== * Removed class="error" from field.pt error message. It caused some ui glitches. [tiran] * Fixed [ 1011658 ] portal_skins/archetypes folder disappeared after AT reinstall. Under some circumstances the skins aren't properly registered. [tiran] * Fixed [ 1011533 ] AT CEILING date for expires will break DateIndex. Changed CEILING_DATE from year 9999 to year 2500. [tiran] * Fixed [ 1012238 ] Cannot set field using boolean widget under IE. [duncanb] * Changed TemplateMixin.getDefaultLayout(): It first checks for an attribute 'default_view' then for 'immediate_view' from the FTI and at last it's using 'base_view' as fallback. [runyan, tiran] * Removed warning when trying to apply an index on a reference field from install_indexes. Indexes on reference fields are fully supported again. [tiran] * 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. [tiran] * 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. [tiran] * 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. [tiran] * 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(). [tiran] * Added Danish translation. Thx to stonor! [tiran] * Added 'de-de' as fallback to the German translation. [tiran] * Applied fix from [ 924832 ] Widget:isVisible always returns 'visible' for not DictType which is fixing a broken behavior for Widget.isVisible(). [tiran] * Fixed [ 1012570 ] Widget.py ReferenceField is horribly inefficient. [runyan] * 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. [tiran] * Fixed unicodeTestIn.py: return False immediately when the list is None or empty. [tiran] * 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). [rafrombrc] * Readded Extensions/utils.py:install_tools for backward compat. [dreamcatcher] * fixed edit view rendering of append_only textarea history in widgets/textarea.pt data so whitespace is correct. [rafrombrc] * 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. [dreamcatcher] * 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. [bcsaller, rochael] * Fixed Alan's fix for [ 1012570 ] brains has no relative_url. (note to myself: addable option on ReferenceField still needs lots of tests) [dtremea] * Fixed [ 1013265 ] last changes to Widget.py is highly inefficient. [dtremea] * Fixed LinesWidget according to [ 1013379 ] LinesField/widget broken. [tiran] * 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. [gotcha] * Changed unit test to work with an unpatched version of getToolByName to get mimetyptes_registry and portal_transform. [tiran] * Fixed [ 1015956 ] getBestIcon can fail. [ctheuni] * Fixed [ 1015292 ] boolean widget error, [ 1015394 ] 1.3 branch field.pt sets value = None inappropriately and another problem with field.pt value. [tiran, alecacct] * Fixed [ 1018821 ] _processInput in Field.py should rewind. [batlogg] * 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 stil breaks refs to their contained items so ATContentTypes based portals should be fine now (except you rename the portal itself). [zworkb] * Added monkey patch for CMFCatalogAware, PortalContent and PortalFolder to fix the second part of [ 1013363 ]. [tiran] * Fixed [ 1019803 ] Bug in ArchetypeTool.py: getWidgets(), also renamed _is_fake_instance to _at_is_fake_instance. [johtha, tiran] * Fixed [ 1018300 ] schema defined indexes are not set anymore. [dtremea] * Added targetId index to reference_catalog. It was removed earlier to make the ref catalog more lightweight. However, it broke ReferenceCatalog._queryFor. [dpunktnpunkt] * 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. [tiran] * 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. [tiran] 1.3.0-rc1 - 2004-08-16 ====================== * Try to use BaseUnit for schema migration to keep the mimetype and the filename of a BaseUnit based field. Without the changes the mimetype of TextField got lost. This should fix [ 1001446 ] Content type lost in migration from pre 1.3b4 to 1.3b4 [tiran] * Changed portal type of ComplexType to keep it compatible with AT 1.2 [tiran] * Fixed typo in Field.Field.getContentType [tiran] * Fixed Field.ImageField.rescaleOriginal to always return a binary string. This fixes the problem with original_size: [ 1004323 ] "IOError: cannot identify image file" when uploading image [tiran] * Fixed [ 1004510 ] folderlisting or plone_utils.browserDefault by adding an action 'folderlisting' to folderish content types. [tiran] * Use True and False in favor to 1 and 0 to make the code more readable. [tiran] * Raise an error when trying to use an index on a reference field unless we have a good solution to avoid catalog corruption. [tiran] * Use edit accessor instead of the accessor in Schema.BasicSchema.validate(). [alecacct] * Added a index_method property to Field.Field which may be either _at_accessor, _at_edit_accessor or the name of a method which is used as accessor for the index. [alecacct] * Starting from NOW all attributes starting with '_at_' are reserved for internal usage. You MUST NEITHER add NOR access any attributes starting with '_at_' in your content types. [tiran] * Fixed FTP/WebDAV's PUT in BaseObject:If a new object should be created with an id that can be acquired, then the existing object is silently overwritten rather than a new one created [dm] * Fixed with problem MKCOL/MKD used by FTP/WebDAV and BaseFolde.manage_addFolder. Now MKCOL/MKD are creating a sub folder with the type name of the current folder except when this behavior is overwritten by an attribute called _at_type_subfolder. [dm] * Fixed [ 1006559 ] addReference allows adding garbage references. addReference is raising a ReferenceException when an invalid source or target was applied. [duncanb, tiran] * Fixed [ 1006491 ] File widget makes useless str(value) conversion [tiran, lurker] * Fixed possible issue inside ArchetypeTool.getWidgets() by calling initializeArchetype() on the wrapped dummy instance. [tiran] * Update catalog on reference catalog has raised a KeyError when trying to access an object that was already removed. Now ReferenceResolver is fetching the KeyError in resolve_url() and returns None instead. [tiran] * Added getRaw() method to LinesField which is returning the output of get(). Before this change the edit accessor was using the accessor which might be an overwritten accessor. Thx to Joel Burton who has figured out the problem. [tiran] * Raise an ReferenceException inside Field.ReferenceField._Vocabulary when the brain doesn't have a valid uid. [tiran] * Refresh the uid catalog and reference catalog after migration. [tiran] * Don't commit full transactions inside migration. This may lead to database corruption. [tiran] * General cleanup of imports and public.py. Also include Marshallers in public. [tiran] * Fixed [ 1007850 ] Cancel content creation fails with portal factory tool Archetypes is playing nice again with portal factory [tiran] * Raise SchemaException when trying to add two or more primary fields to one content type. Adding more than one primary field can lead to unexpected behaviors. [tiran] * Don't store mimetype item instances in BaseUnit. Now BaseUnit is storing the mimetype and the binary flag as ordinary strings. Old BaseUnits are auto- magically altered using __setstate__(). Storing mimetype item objects in BaseUnit seemed to lead to memory leaks. [tiran] * Reenabled ints as DisplayList and Vocabulary keys. XXX: Add a comment to the documentation that users should take care when mixing strings and ints! [tiran] * Subclass InAndOutWidget from ReferenceWidget which adds the addable feature to InAndOutWidget. [ender] * Removed old and deprecated old_OrderedBaseFolder implementation from Archetypes. [tiran] * There is no need to subclass BaseFolder from Folder since SkinnedFolder is already subclasses from Folder (over PortalFolder). [tiran] * Store subobjects inside a volatile attribute instead of using SESSION which 1) was broken by design 2) was a possible memory eater. [tiran] * Fixed [ 988948 ] Reference field: radio button "no reference" isn't checked [tiran] * Added properties for [ 1008670 ] Feature request: specify year interval for the Calendar Widget Right now these properties are useless because the plone templates can't handle it but I got word from limi that we are allowed to add these features to the templates [tiran] * Fixed [ 1005843 ] Stringfields should not default to '0' in search mode [tiran] * Moved addable feature of reference.pt to a seperate file and added addable to inandout.pt [ender] * Use manage_rebuildCatalog for refresh_references in installTypes() [tiran] * Fixed [ 905677 ] manage_afterClone is a bit of a mess [dreamcatcher] * Template cleanups [dreamcatcher] * ImageField: Fixed problem with empty image field and calls to getScale, getSize and tag() [tiran] * Cleaned up the Extensions/utils.py function which are installing AT and it's dependencies. Added a method setupArchetypes() which is setting up the internals. These fixes are fixing the problem that AT don't seemed to be installed when it's installed from an AT based product. [tiran] * Schema: fixed a bug, it wasnt allowed to override a primary field by another primary field with the same name. [jensens] * Added getWrappedField(key) to BaseObject which is returning the field instance explictly wrapped relative to the Archetype instance. This method is required for security reasons in order to allow Zope to find the acl_users. [tiran] * Fixed [ 1009894 ] CSS class on validation error messages. It's using Plone's 'error' class. [tiran] * Fixed two bugs in ttw template registration. 1st the registration-tab was broken, and 2cd it can't deal with migrated ATCT. [jensens] 1.30beta5 - 2004-08-06 ======================== * Fixed forbidden access to schema methods when the schema was acccessed using archetype_tool.lookupType(). [tiran] * Fixed typo in widgets/reference.pt [tiran] * Do not depend on plone's document_byline template which is not available in CMF. [ajung, tiran] * Applied patch from [ 997044 ] db_encoding parameter is lost in BaseSQLStorage.set [biza, tiran] * Updated complex type to make it work inside Plone again. It's very usefull to test fields and widgets. [tiran] * Applied [ 974846 ] Patch for bug #944343 inandout/picklist values not sticky to make picklist and inandout compatible with reference field again. [alecacct, tiran] * Reenabled Ben's reference graph tool by removing some stalled testing code [tiran] * Support unqualified references in reference graph tool [bcsaller] * Added a test for mimetypes registry before adapter call in BaseUnit.update() with a more verbose error in the case the user hasn't updated MTR properly. [tiran] * Fixed Find Objects of uid catalog and reference catalog: Use the relative path (relative to the portal) of the object as uid instead of the full physical path [tiran] * Added Rebuild Catalog tab to uid catalog and reference catalog to make the life easier [tiran] * Added context to the PortalTransform.convertTo() call in BaseUnit.transform() [tiran] * Don't fail to install a product which doesn't have any types [spamsch] * Catch Unauthorized exception in ExtensibleMetadata.allowDiscussion that could be raised by the discussion tool when the authenticated users hasn't ModifyPortalContent permissions. [tiran] * Added IUIDCatalog and IReferenceCatalog interface. Test for interfaces in the installation process of Archetypes to remove invalid catalogs. [tiran] * Added a check to Field._Vocabulary: A result from portal catalog must be a result from uid catalog, too. [ender] * FileField/ImageField: Make sure we always get a wrapped object in content_class [tiran] * ImageField: Fixed getScale/getSize methods, added tag() method [tiran] * session_save_form was using direct attr access in UT code you must use Schema accessor so schema has a security context REMEMBER: <BradB> "Free as in Free Iraq" [runyaga] * issue a warning if they register 2 classes with the same name in the same project. this will happen on startup. [runyaga] * do not assume templates have title_or_id attribute [runyaga] * Added kernel_make_uuid which is using /proc/sys/kernel/random/uuids as source for unique ids. Thx to Ben for this cool idea. :) The kernel uuid generator is actually a tiny bit slower than our uuid generator but it should be safer if you are worried about the uniqueness of uuids. [bcsaller, tiran] * Fixed [ 1002481 ] Missing i18n: <any>, added at_search_any msgid. [tiran] 1.3.0-beta4 - 2004-07-09 ======================== * Fix bug on image deletion [clebeaupin] * Fixed [ 997899 ] 1.3b3 will ot startup on Zope 2.7, Windows. Removed api helper to avoid problem with windows [dreamcatcher, tiran] * Small improvements on migration (using aq_base() instead of attribute, using is None test instead of simple bool test) [tiran] * Get the first non None object instead of the first element of a list of brains to circumvent problems with stalled objects inside the uid catalog [tiran] * Don't raise AttributeError when no reference can be found [gotcha] * Fixed a problem introduced by getRaw method on ReferenceField class. When using a field on 'hidden' mode, field.pt uses field.edit_acessor to get field value (and edit_accessor calls getRaw). The problem was related to ReferenceFields not multivalued where getRaw always returns a list, instead of the single UID. [dtremea] * Added a flag refresh_references to Archetypes.Extensions.utils.installTypes (default False). When enabled it's using ZopeFindAndApply to find all objects of the given types and refreshes their references. This is a workaround but not a real fix for bug 997840. [tiran] * Added a test for at_version information [tiran] * Support Pdata (possible large data from OFS.Image) as type for FileField. This is required to load large images and files based on OFS.Image into a FileField. [tiran] * Merged sid's security branch. DefaultLayer based classes (Field, Widget) and schema are now subclassed from ExtensionsClass.Base. [dreamcatcher, tiran] * Fixed [ 994511 ] Field.py: Vocabulary cannot handle 2-tuple list [tiran] * Fixed creation_date field to be metadata again [tiran] * Fixed [ 944440 ] getMsgID method of DisplayList should be used [tiran] * Fixed [ 972091 ] base widget doesn't support visble attribute for view [tiran] * Added better traceback information to fixAfterRenameType [tiran] * Fixed [ 988898 ] Don't swallow ConflictError (SQL missing) [tiran]