Commit ce057e8a authored by Evan Simpson's avatar Evan Simpson

Made meta-type in the management interface of ZClass instances into a link to...

Made meta-type in the management interface of ZClass instances into a link to the ZClass definition.
parent a399b1ae
......@@ -140,7 +140,8 @@ Zope Changes
- added text() method to HTTPRequest object to provide a plain
text representation of the request (Collector #2264)
- Made the meta-type in the upper-left corner of ZClass instances'
management interface into a link to the ZClass definition.
Zope 2.3.0 beta 3
......@@ -314,24 +315,183 @@ Zope Changes
>>>>>>> 1.310
Bugs Fixed
<<<<<<< CHANGES.txt
- A misspelled function name which prevented the addition of
properties was corrected.
=======
- TextIndexes which called methods expecting an argument failed
with a TypeError. This was fixed by extending an exception
handler.
>>>>>>> 1.322
<<<<<<< CHANGES.txt
- Caused PropertySheets to restrict IDs the same way
ObjectManager does.
=======
- A security issue having to do with setting permission mappings
on ZClass methods was fixed (this supersedes Hotfix-2001-05-01)
>>>>>>> 1.322
<<<<<<< CHANGES.txt
- (Collector #1586) Fixed situation where the Catalog would
attempt to loop over a bucket as if it were a list, which
won't work. This was reported by Steve Alexander with a
patch.
=======
- Automatic reloading of Help topics while running in debug mode
was fixed.
>>>>>>> 1.322
<<<<<<< CHANGES.txt
- Corrected local role computation (Hotfix 2000-12-15)
=======
- Fixed problem adding propertynames with spaces (Collector #2206)
>>>>>>> 1.322
<<<<<<< CHANGES.txt
- The basic user folder implementation in User.py was changed
to use the Zope security policy machinery. see
http://dev.zope.org/Wikis/DevSite/Proposals/
ChangeUserFoldersToUseSecurityPolicyAPI for details.
- Trying to cut or copy with no items selected now returns a
nicer error message.
- A roles keyword argument was added to ZopeSecurityPolicy.validate
to enable callers to pass in roles as opposed to allowing the
machinery to figure it out for itself.
- Some product context initialization related to setting roles
was updated.
Zope 2.3.0 alpha 1
Features Added
=======
- Plugged a memory leak in extensions. There are often circular
references in code generated by Python's "exec" statement but
with a small change extensions now break those references.
>>>>>>> 1.322
<<<<<<< CHANGES.txt
- Python Scripts are now part of the Zope core. Big whopping
kudos to Evan Simpson for all of the work he has put into
this! Having Python Scripts in the core will allow people
to much more easily separate logic and presentation (and
get that logic out of DTML!) More information and prototype
documentation for Python Scripts can be found in the
dev.zope.org project:
http://dev.zope.org/Wikis/DevSite/Projects/PythonMethods
- Added the __replaceable__ property support to ObjectManager.
This is currently documented only in the Wiki.
- Added unit tests for the DateTime module.
- Added new BASEPATHn and URLPATHn variables in the REQUEST
object, and changed Zope core DTML files to use BASEPATH1
instead of SCRIPT_NAME.
- Added new getId() method to SimpleItem.Item. This should
now be used instead of referencing 'object.id' directly,
as it is guaranteed to always be a method and to always
return the right thing regardless of how the id of the
object is stored internally.
- Improved Ownership controls. Now you simply choose whether
or not to take ownership of sub-objects when taking
ownership. There is no need to control implicit/explicit
ownership.
- Changed the Zope installation procedure so it is only
necessary to create one user account and that user is
stored in the ZODB. The user created at startup now is
simply a normal intial "Manager", not the "superuser".
It is no longer necessary to login, create an initial
manager, logout and log back in! Woohoo!
- Implemented the "emergency user" concept, which is the new
name for what was called the superuser. The emergency user
doesnt even exist now until you explicitly create it.
- Added new "WebDAV source view" HTTP handler, enabled by new
'-W' (note uppercase) switch to z2.py. This handler is *not*
enabled by default.
- Implemented "hookable PUT creation" (allows containers to
override webdav.NullResource's guess at the type of object
to create when PUT is done to an unknown ID).
- Added testrunner.py to the utilities directory. The testrunner
is a basic utility for running PyUnit based unit tests. It can
be used to run all tests found in the Zope tree, all test suites
in a given directory or in specific files. The testrunner will
be used to ensure that all checked in tests pass before releases
are made. For more information, see the docstring of the actual
testrunner.py module.
- The Interface scarecrow package has been checked in - more work
will likely be done on it before it goes into wide use. See
Michel's "Zope Interfaces" project on dev.zope.org for details:
http://www.zope.org/Wikis/Interfaces/FrontPage
- PyUnit has been checked into the core. Along with the testrunner,
this provides enough infrastructure for us to incrementally begin
accumulating (and running!) test suites for various parts of the
Zope core.
- The new security assertion support has been checked in. For
more information and an updated version of the "Zope security
for developers" guide see the project on dev.zope.org:
http://dev.zope.org/Wikis/DevSite/Projects/DeclarativeSecurity
Bugs Fixed
- Removed some cruft in OFS/content_types.py (an old data
structure was being constructed but was going unused in
favor of a newer structure used in conjunction with the
mimetypes module).
- (Collector #1650)Where the underlying object does not define
its own '__cmp__()', comparisons of acquisition-wrapped
objects fall back to comparing the identities *of the
wrappers* . Fixed to unwrap the object (both, if needed)
before comparing identities.
- (Collector #1687 Products which register base classes
for ZClasses typically defer creating them until product
registration; the derived ZClass needs them to be available
immediately after import. Deprecated
'ProductContext.registerZClass' and
'ProductContext.registerBaseClass' in favor of a new function,
'ZClasses.createZClassForBase' (because none of the machinery
needed a ProductContext instance anyway).
- (Collector #1355) Fixed overlapping HTTP POST requests in
ZServer which could have been corrupted. Thanks to Jeff
Ragsdale.
- Undid a bug fix that caused the DateTime unit tests to fail.
- Removed the requirement that an "access" file exist.
"access" is now only needed to create an emergency user
account.
- Disabled the monitor port by default because, initially,
there is no emergency user, and thus no password that
can be used to protect the port.
- Secured the hole that was patched by Hotfix_2000-12-08.
- Disallowed object IDs that end with two underscores.
=======
- Hardened ZMI contents view against subobjects w/ flaky
'get_size' (Collector #1900).
>>>>>>> 1.322
- Fixed OFS.CopySupport's _verifyObjectPaste to utilize the
permission stored in the metatype registry, if available
......
......@@ -85,9 +85,9 @@
"""Standard management interface support
$Id: Management.py,v 1.47 2001/01/16 21:26:56 chrism Exp $"""
$Id: Management.py,v 1.48 2001/06/08 18:15:24 evan Exp $"""
__version__='$Revision: 1.47 $'[11:-2]
__version__='$Revision: 1.48 $'[11:-2]
import sys, Globals, ExtensionClass, urllib
from Dialogs import MessageDialog
......@@ -193,6 +193,24 @@ class Tabs(ExtensionClass.Base):
out.append(last)
return join(out, '/')
class_manage_path__roles__=None
def class_manage_path(self):
if self.__class__.__module__[:1] != '*': return
path = getattr(self.__class__, '_v_manage_path_roles', None)
if path is None:
meta_type = self.meta_type
for zclass in self.getPhysicalRoot()._getProductRegistryData(
'zclasses'):
if zclass['meta_type'] == meta_type:
break
else:
self.__class__._v_manage_path_roles = ''
return
path = self.__class__._v_manage_path_roles = (
'%(product)s/%(id)s' % zclass)
if path:
return '/Control_Panel/Products/%s/manage_workspace' % path
Globals.default__class_init__(Tabs)
......
......@@ -106,10 +106,15 @@
<dtml-if icon>
<img src="&dtml-BASEPATH1;/&dtml-icon;"
alt="&dtml-meta_type;" border="0" />
<strong>
</dtml-if>
<strong>
<dtml-if meta_type>
<dtml-if class_manage_path>
<a href="&dtml-BASEPATH1;&dtml-class_manage_path;"
title="Manage the ZClass of this object">&dtml-meta_type;</a>
<dtml-else>
&dtml-meta_type;
</dtml-if>
<dtml-else>
Object
</dtml-if>
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment