Commit 4f077094 authored by Hanno Schlichting's avatar Hanno Schlichting

Retired icons from the `Zope Management Interface` and various smaller cleanups of ZMI screens.

parent f3ab4409
...@@ -33,6 +33,9 @@ Features Added ...@@ -33,6 +33,9 @@ Features Added
Restructuring Restructuring
+++++++++++++ +++++++++++++
- Retired icons from the `Zope Management Interface` and various smaller
cleanups of ZMI screens.
- Removed the old help system, in favor of the current Sphinx documentation - Removed the old help system, in favor of the current Sphinx documentation
hosted at http://docs.zope.org/zope2/. For backwards compatibility the hosted at http://docs.zope.org/zope2/. For backwards compatibility the
`registerHelp` and `registerHelpTitle` methods are still available on the `registerHelp` and `registerHelpTitle` methods are still available on the
......
...@@ -57,7 +57,6 @@ class DatabaseManager(Item, Implicit): ...@@ -57,7 +57,6 @@ class DatabaseManager(Item, Implicit):
id = 'DatabaseManagement' id = 'DatabaseManagement'
name = title = 'Database Management' name = title = 'Database Management'
meta_type = 'Database Management' meta_type = 'Database Management'
icon = 'p_/DatabaseManagement_icon'
manage_options=(( manage_options=((
{'label':'Database', 'action':'manage_main'}, {'label':'Database', 'action':'manage_main'},
...@@ -90,7 +89,6 @@ class DatabaseChooser(SimpleItem): ...@@ -90,7 +89,6 @@ class DatabaseChooser(SimpleItem):
""" """
meta_type = 'Database Management' meta_type = 'Database Management'
name = title = 'Database Management' name = title = 'Database Management'
icon = 'p_/DatabaseManagement_icon'
isPrincipiaFolderish = 1 isPrincipiaFolderish = 1
manage_options=( manage_options=(
...@@ -150,7 +148,6 @@ class DebugManager(Item, Implicit): ...@@ -150,7 +148,6 @@ class DebugManager(Item, Implicit):
id ='DebugInfo' id ='DebugInfo'
name = title = 'Debug Information' name = title = 'Debug Information'
meta_type = name meta_type = name
icon = 'p_/DebugManager_icon'
manage_options=(( manage_options=((
{'label':'Debugging Info', 'action':'manage_main'}, {'label':'Debugging Info', 'action':'manage_main'},
...@@ -285,7 +282,6 @@ class ApplicationManager(Folder, CacheManager): ...@@ -285,7 +282,6 @@ class ApplicationManager(Folder, CacheManager):
id = 'Control_Panel' id = 'Control_Panel'
name = title = 'Control Panel' name = title = 'Control Panel'
meta_type = 'Control Panel' meta_type = 'Control Panel'
icon = 'p_/ControlPanel_icon'
process_id = os.getpid() process_id = os.getpid()
process_start = int(time.time()) process_start = int(time.time())
......
...@@ -17,7 +17,6 @@ This class is mixed into the database manager in App.ApplicationManager. ...@@ -17,7 +17,6 @@ This class is mixed into the database manager in App.ApplicationManager.
from AccessControl.class_init import InitializeClass from AccessControl.class_init import InitializeClass
from App.special_dtml import DTMLFile from App.special_dtml import DTMLFile
from App.ImageFile import ImageFile
from DateTime.DateTime import DateTime from DateTime.DateTime import DateTime
class CacheManager: class CacheManager:
...@@ -30,10 +29,6 @@ class CacheManager: ...@@ -30,10 +29,6 @@ class CacheManager:
manage_cacheParameters = DTMLFile('dtml/cacheParameters', globals()) manage_cacheParameters = DTMLFile('dtml/cacheParameters', globals())
manage_cacheGC = DTMLFile('dtml/cacheGC', globals()) manage_cacheGC = DTMLFile('dtml/cacheGC', globals())
transparent_bar = ImageFile('www/transparent_bar.gif', globals())
store_bar = ImageFile('www/store_bar.gif', globals())
load_bar = ImageFile('www/load_bar.gif', globals())
def _getDB(self): def _getDB(self):
return self._p_jar.db() return self._p_jar.db()
......
...@@ -24,7 +24,6 @@ class DavLockManager(Item, Implicit): ...@@ -24,7 +24,6 @@ class DavLockManager(Item, Implicit):
id = 'DavLockManager' id = 'DavLockManager'
name = title = 'WebDAV Lock Manager' name = title = 'WebDAV Lock Manager'
meta_type = 'WebDAV Lock Manager' meta_type = 'WebDAV Lock Manager'
icon = 'p_/davlocked'
security = ClassSecurityInfo() security = ClassSecurityInfo()
security.declareProtected('Manage WebDAV Locks', security.declareProtected('Manage WebDAV Locks',
......
...@@ -52,10 +52,7 @@ class Product(Base): ...@@ -52,10 +52,7 @@ class Product(Base):
security = ClassSecurityInfo() security = ClassSecurityInfo()
meta_type='Product' meta_type='Product'
icon='p_/Product_icon'
version='' version=''
configurable_objects_=()
import_error_=None
thisIsAnInstalledProduct = True thisIsAnInstalledProduct = True
title = 'This is a non-persistent product wrapper.' title = 'This is a non-persistent product wrapper.'
......
...@@ -14,16 +14,14 @@ ...@@ -14,16 +14,14 @@
""" """
from cgi import escape from cgi import escape
import sys
import urllib import urllib
from zope.interface import implements from zope.interface import implements
from AccessControl import getSecurityManager, Unauthorized from AccessControl import Unauthorized
from AccessControl import ClassSecurityInfo from AccessControl import ClassSecurityInfo
from AccessControl.class_init import InitializeClass from AccessControl.class_init import InitializeClass
from AccessControl.Permissions import view_management_screens from AccessControl.Permissions import view_management_screens
from App.interfaces import INavigation from App.interfaces import INavigation
from App.special_dtml import HTMLFile
from App.special_dtml import DTMLFile from App.special_dtml import DTMLFile
from ExtensionClass import Base from ExtensionClass import Base
from zExceptions import Redirect from zExceptions import Redirect
...@@ -43,10 +41,7 @@ class Tabs(Base): ...@@ -43,10 +41,7 @@ class Tabs(Base):
security.declarePublic('filtered_manage_options') security.declarePublic('filtered_manage_options')
def filtered_manage_options(self, REQUEST=None): def filtered_manage_options(self, REQUEST=None):
validate=getSecurityManager().validate
result=[] result=[]
try: try:
options=tuple(self.manage_options) options=tuple(self.manage_options)
except TypeError: except TypeError:
...@@ -170,12 +165,6 @@ class Navigation(Base): ...@@ -170,12 +165,6 @@ class Navigation(Base):
manage_form_title._setFuncSignature( manage_form_title._setFuncSignature(
varnames=('form_title', 'help_product', 'help_topic') ) varnames=('form_title', 'help_product', 'help_topic') )
security.declarePublic('zope_quick_start')
zope_quick_start=DTMLFile('dtml/zope_quick_start', globals())
security.declarePublic('manage_copyright')
manage_copyright=DTMLFile('dtml/copyright', globals())
security.declarePublic('manage_zmi_logout') security.declarePublic('manage_zmi_logout')
def manage_zmi_logout(self, REQUEST, RESPONSE): def manage_zmi_logout(self, REQUEST, RESPONSE):
"""Logout current user""" """Logout current user"""
......
##############################################################################
#
# Copyright (c) 2002 Zope Foundation and Contributors.
#
# This software is subject to the provisions of the Zope Public License,
# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution.
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
# FOR A PARTICULAR PURPOSE
#
##############################################################################
'''Zope registerable permissions
'''
from AccessControl.class_init import InitializeClass
from AccessControl.SecurityInfo import ClassSecurityInfo
from Acquisition import Implicit
from OFS.role import RoleManager
from OFS.SimpleItem import Item
from Persistence import Persistent
class Permission(RoleManager,
Persistent,
Implicit,
Item
):
"""Model Permission meta-data
"""
meta_type = 'Zope Permission'
icon = 'p_/Permission_icon'
index_html = None
security = ClassSecurityInfo()
manage_options=(
RoleManager.manage_options
+ Item.manage_options
)
def __init__(self, id, title, name):
self.id=id
self.title=title
self.name=name
InitializeClass(Permission)
...@@ -22,7 +22,6 @@ class ProductFolder(Folder): ...@@ -22,7 +22,6 @@ class ProductFolder(Folder):
id = 'Products' id = 'Products'
name = title = 'Product Management' name = title = 'Product Management'
meta_type = 'Product Management' meta_type = 'Product Management'
icon = 'p_/ProductFolder_icon'
all_meta_types=() all_meta_types=()
meta_types=() meta_types=()
......
...@@ -18,9 +18,6 @@ import os ...@@ -18,9 +18,6 @@ import os
from AccessControl.Permission import registerPermissions from AccessControl.Permission import registerPermissions
from AccessControl.PermissionRole import PermissionRole from AccessControl.PermissionRole import PermissionRole
from App.ImageFile import ImageFile
from OFS.misc_ import Misc_
from OFS.misc_ import misc_
from OFS.ObjectManager import ObjectManager from OFS.ObjectManager import ObjectManager
from zope.interface import implementedBy from zope.interface import implementedBy
...@@ -76,10 +73,7 @@ class ProductContext: ...@@ -76,10 +73,7 @@ class ProductContext:
The first method will be used as the initial method called The first method will be used as the initial method called
when creating an object. when creating an object.
icon -- The name of an image file in the package to icon -- No longer used.
be used for instances. Note that the class icon
attribute will be set automagically if an icon is
provided.
permissions -- Additional permissions to be registered permissions -- Additional permissions to be registered
If not provided, then permissions defined in the If not provided, then permissions defined in the
...@@ -105,10 +99,6 @@ class ProductContext: ...@@ -105,10 +99,6 @@ class ProductContext:
productObject=self.__prod productObject=self.__prod
pid=productObject.id pid=productObject.id
if icon and instance_class is not None:
setattr(instance_class, 'icon', 'misc_/%s/%s' %
(pid, os.path.split(icon)[1]))
if permissions: if permissions:
if isinstance(permissions, basestring): # You goofed it! if isinstance(permissions, basestring): # You goofed it!
raise TypeError, ('Product context permissions should be a ' raise TypeError, ('Product context permissions should be a '
...@@ -207,14 +197,6 @@ class ProductContext: ...@@ -207,14 +197,6 @@ class ProductContext:
m[name]=method m[name]=method
m[name+'__roles__']=pr m[name+'__roles__']=pr
if icon:
name = os.path.split(icon)[1]
icon = ImageFile(icon, self.__pack.__dict__)
icon.__roles__=None
if not hasattr(misc_, pid):
setattr(misc_, pid, Misc_(pid, {}))
getattr(misc_, pid)[name]=icon
def registerHelp(self, directory=None, clear=None, title_re=None): def registerHelp(self, directory=None, clear=None, title_re=None):
pass pass
......
...@@ -29,22 +29,7 @@ ...@@ -29,22 +29,7 @@
</table> </table>
<p></p> <p></p>
<div align="center"> <div align="center">
<table style="border: solid thin black;"> <table>
<tr>
<td></td>
<dtml-in divs mapping>
<dtml-let url="REQUEST['URL'] + ('?chart_start=%s&chart_end=%s'
% (start, end))">
<td height="200" width="32"><a href="&dtml-url;"><dtml-if
trans_len><img src="transparent_bar" width="32"
height="&dtml-trans_len;" border="0" /><br /></dtml-if><dtml-if
store_len><img src="store_bar" width="32"
height="&dtml-store_len;" border="0" /><br /></dtml-if><dtml-if
load_len><img src="load_bar" width="32"
height="&dtml-load_len;" border="0" /></dtml-if></a></td>
</dtml-let>
</dtml-in>
</tr>
<tr> <tr>
<th align="left"><font color="#ff0000">Object stores</font></th> <th align="left"><font color="#ff0000">Object stores</font></th>
...@@ -59,7 +44,6 @@ ...@@ -59,7 +44,6 @@
</th> </th>
</tr> </tr>
<tr> <tr>
<th align="left" valign="top"><font color="#000080">Object loads</font></th> <th align="left" valign="top"><font color="#000080">Object loads</font></th>
<dtml-in divs mapping> <dtml-in divs mapping>
...@@ -73,7 +57,6 @@ ...@@ -73,7 +57,6 @@
</th> </th>
</tr> </tr>
<tr> <tr>
<th align="left">Connections</th> <th align="left">Connections</th>
<dtml-in divs mapping> <dtml-in divs mapping>
...@@ -84,7 +67,6 @@ ...@@ -84,7 +67,6 @@
</th> </th>
</tr> </tr>
<tr> <tr>
<th></th> <th></th>
<dtml-in divs mapping> <dtml-in divs mapping>
...@@ -93,10 +75,8 @@ ...@@ -93,10 +75,8 @@
<th></th> <th></th>
</tr> </tr>
</table> </table>
</div> </div>
</dtml-with> </dtml-with>
<dtml-var manage_page_footer> <dtml-var manage_page_footer>
...@@ -96,7 +96,6 @@ accompanying credits file. ...@@ -96,7 +96,6 @@ accompanying credits file.
<a name="PYTHON" /> <a name="PYTHON" />
<h3> <h3>
<img src="&dtml-BASEPATH1;/p_/PyPoweredSmall_Gif" alt="Python powered" />
This software is powered by <a href="http://www.python.org/" target="_top">Python</a>! This software is powered by <a href="http://www.python.org/" target="_top">Python</a>!
</h3> </h3>
<p>Copyright &copy; 1991-1995 by Stichting Mathematisch Centrum, Amsterdam, <p>Copyright &copy; 1991-1995 by Stichting Mathematisch Centrum, Amsterdam,
......
...@@ -126,10 +126,7 @@ functions such as database and product management. ...@@ -126,10 +126,7 @@ functions such as database and product management.
<table cellspacing="0" cellpadding="2" border="0"> <table cellspacing="0" cellpadding="2" border="0">
<dtml-in objectItems> <dtml-in objectItems>
<tr> <tr>
<td width="16" align="left" valign="top"> <td width="16" align="left" valign="top"></td>
<a href="&dtml.url_quote-sequence-key;/manage_workspace">
<img src="&dtml-BASEPATH1;/&dtml-icon;" alt="" border="0" /></a>
</td>
<td align="left" valign="top"> <td align="left" valign="top">
<div class="list-item"> <div class="list-item">
<a href="&dtml.url_quote-sequence-key;/manage_workspace"> <a href="&dtml.url_quote-sequence-key;/manage_workspace">
......
...@@ -68,10 +68,6 @@ function toggleSelect() { ...@@ -68,10 +68,6 @@ function toggleSelect() {
id="cb_&dtml-sequence-index;" /> id="cb_&dtml-sequence-index;" />
</td> </td>
<td align="left" valign="top" width="16"> <td align="left" valign="top" width="16">
<dtml-if icon>
<img src="&dtml-BASEPATH1;/&dtml-icon;" alt="[&dtml-meta_type;]"
title="[&dtml-meta_type;]" />
</dtml-if icon>
</td> </td>
<td align="left" valign="top" class="list-item"> <td align="left" valign="top" class="list-item">
<label for="cb_&dtml-sequence-index;">&dtml-sequence-key;</label> <label for="cb_&dtml-sequence-index;">&dtml-sequence-key;</label>
......
...@@ -15,10 +15,10 @@ function update_menu() { ...@@ -15,10 +15,10 @@ function update_menu() {
<dtml-if tf> <dtml-if tf>
<frameset rows="34, *"> <frameset rows="34, *">
<frame src="<dtml-var "REQUEST.URL1" html_quote>/manage_top_frame" name="manage_top_frame" <frame src="<dtml-var "REQUEST.URL1" html_quote>/manage_top_frame" name="manage_top_frame"
marginwidth="2" marginheight="2" scrolling="no"/> marginwidth="2" marginheight="2" scrolling="no" noresize="noresize"/>
</dtml-if> </dtml-if>
<frameset cols="200, *"> <frameset cols="250, *">
<frame src="<dtml-var "REQUEST.URL1" html_quote>/manage_menu" name="manage_menu" <frame src="<dtml-var "REQUEST.URL1" html_quote>/manage_menu" name="manage_menu"
marginwidth="2" marginheight="2" scrolling="auto"/> marginwidth="2" marginheight="2" scrolling="auto"/>
<frame src="<dtml-var "REQUEST.URL1" html_quote>/manage_workspace" name="manage_main" <frame src="<dtml-var "REQUEST.URL1" html_quote>/manage_workspace" name="manage_main"
......
...@@ -16,38 +16,21 @@ ...@@ -16,38 +16,21 @@
<table cellpadding="0" cellspacing="0" width="100%" border="0"> <table cellpadding="0" cellspacing="0" width="100%" border="0">
<tr> <tr>
<td bgcolor="#000000" rowspan="5" width="10%" valign="bottom" <td bgcolor="#000000" rowspan="5" width="1%"></td>
align="left">&nbsp;&nbsp;<img src="&dtml-BASEPATH1;/p_/sp"
width="2" height="1" alt="" />
</td>
<td bgcolor="#000000" colspan="<dtml-var "4 * (n_ + 1)">"><img
src="&dtml-BASEPATH1;/p_/sp" width="1" height="5" alt="" /></td>
</tr> </tr>
<tr> <tr>
<dtml-in manage_options> <dtml-in manage_options>
<dtml-if "_['sequence-index']==a_"> <dtml-if "_['sequence-index']==a_">
<td bgcolor="#ffffff" rowspan="2" valign="top" <td bgcolor="#ffffff" rowspan="2"></td>
align="left"><img src="&dtml-BASEPATH1;/p_/ltab" width="5" <td></td>
height="5" alt="" /></td> <td bgcolor="#ffffff" rowspan="2"></td>
<td bgcolor="#ffffff"><img src="&dtml-BASEPATH1;/p_/sp" <td bgcolor="#000000" rowspan="4">&nbsp;</td>
width="1" height="2" alt="" /></td>
<td bgcolor="#ffffff" rowspan="2" valign="top"
align="right"><img src="&dtml-BASEPATH1;/p_/rtab" width="5"
height="5" alt="" /></td>
<td bgcolor="#000000" rowspan="4"><img src="&dtml-BASEPATH1;/p_/sp"
width="2" height="1" alt="" /></td>
<dtml-else> <dtml-else>
<td bgcolor="#efefef" rowspan="2" valign="top" <td bgcolor="#efefef" rowspan="2"></td>
align="left"><img src="&dtml-BASEPATH1;/p_/ltab" width="5" <td bgcolor="#efefef"><span style="font-size:10%;">&nbsp;</span></td>
height="5" alt="" /></td> <td bgcolor="#efefef" rowspan="2"></td>
<td bgcolor="#efefef"><img src="&dtml-BASEPATH1;/p_/sp" <td bgcolor="#000000" rowspan="4">&nbsp;</td>
width="1" height="2" alt="" /></td>
<td bgcolor="#efefef" rowspan="2" valign="top"
align="right"><img src="&dtml-BASEPATH1;/p_/rtab" width="5"
height="5" alt="" /></td>
<td bgcolor="#000000" rowspan="4"><img src="&dtml-BASEPATH1;/p_/sp"
width="2" height="1" alt="" /></td>
</dtml-if> </dtml-if>
</dtml-in> </dtml-in>
</tr> </tr>
...@@ -79,22 +62,9 @@ ...@@ -79,22 +62,9 @@
<tr> <tr>
<dtml-in manage_options> <dtml-in manage_options>
<dtml-if "_['sequence-index']==a_"> <dtml-if "_['sequence-index']==a_">
<td colspan="3" bgcolor="#ffffff"><img src="&dtml-BASEPATH1;/p_/sp" <td colspan="3" bgcolor="#ffffff"><span style="font-size:30%;">&nbsp;</span></td>
width="2" height="1" alt="" /></td>
<dtml-else> <dtml-else>
<td colspan="3" bgcolor="#efefef"><img src="&dtml-BASEPATH1;/p_/sp" <td colspan="3" bgcolor="#c0c0c0"><span style="font-size:30%;">&nbsp;</span></td>
width="2" height="1" alt="" /></td>
</dtml-if>
</dtml-in>
</tr>
<tr>
<dtml-in manage_options>
<dtml-if "_['sequence-index']==a_">
<td colspan="3" bgcolor="#ffffff"><img src="&dtml-BASEPATH1;/p_/sp"
width="2" height="1" alt="" /></td>
<dtml-else>
<td colspan="3" bgcolor="#c0c0c0"><img src="&dtml-BASEPATH1;/p_/sp"
width="2" height="1" alt="" /></td>
</dtml-if> </dtml-if>
</dtml-in> </dtml-in>
</tr> </tr>
...@@ -107,10 +77,6 @@ ...@@ -107,10 +77,6 @@
<tr class="location-bar"> <tr class="location-bar">
<td align="left" valign="top"> <td align="left" valign="top">
<div class="std-text"> <div class="std-text">
<dtml-if icon>
<img src="&dtml-BASEPATH1;/&dtml-icon;"
alt="&dtml-meta_type;" border="0" />
</dtml-if>
<strong> <strong>
<dtml-if meta_type> <dtml-if meta_type>
&dtml-meta_type; &dtml-meta_type;
...@@ -120,9 +86,7 @@ ...@@ -120,9 +86,7 @@
at <dtml-var expr="tabs_path_default(REQUEST)"> at <dtml-var expr="tabs_path_default(REQUEST)">
</strong> </strong>
<dtml-if wl_isLocked> <dtml-if wl_isLocked>
<img src="&dtml-BASEPATH1;/p_/davlocked" Locked
alt="This item has been locked by WebDAV"
title="This item has been locked by WebDAV" />
</dtml-if wl_isLocked> </dtml-if wl_isLocked>
</div> </div>
</td> </td>
......
...@@ -4,13 +4,13 @@ ...@@ -4,13 +4,13 @@
<title></title> <title></title>
<link rel="stylesheet" type="text/css" href="&dtml-BASEPATH1;/manage_page_style.css" /> <link rel="stylesheet" type="text/css" href="&dtml-BASEPATH1;/manage_page_style.css" />
</head> </head>
<body bgcolor="#6699cc" link="#000099" alink="#000099" vlink="#000099"> <body>
<table width="100%" cellpadding="0" cellspacing="0" border="0"> <table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr> <tr>
<td width="180" align="left" valign="top"><a <td width="180" align="left" valign="top"><a
href="http://www.zope.org/" target="_blank"><img src="&dtml-BASEPATH1;/p_/zopelogo_jpg" href="http://zope2.zope.org/" target="_blank"><img src="&dtml-BASEPATH1;/p_/zopelogo_png"
height="32" width="90" border="0" alt="" /></a> height="33" width="83" border="0" alt="" /></a>
</td> </td>
<td align="right" valign="top"> <td align="right" valign="top">
<div class="form-element"> <div class="form-element">
......
...@@ -3,12 +3,6 @@ ...@@ -3,12 +3,6 @@
<table width="100%" cellspacing="0" border="0"> <table width="100%" cellspacing="0" border="0">
<tr bgcolor="#000000"> <tr bgcolor="#000000">
<td valign="top" nowrap="nowrap"> <td valign="top" nowrap="nowrap">
<dtml-if icon>
<a href="manage_workspace" target="manage_main"><img
src="&dtml-BASEPATH1;/&dtml-icon;" border="0"
title="Click to open this item" alt="&dtml-meta_type;" /></a>
</dtml-if>
<strong>
<a href="manage_workspace" target="manage_main" style="color: #ffffff;"> <a href="manage_workspace" target="manage_main" style="color: #ffffff;">
<dtml-if expr="URLPATH1==BASEPATH1"> <dtml-if expr="URLPATH1==BASEPATH1">
Root Folder Root Folder
...@@ -16,16 +10,10 @@ ...@@ -16,16 +10,10 @@
&dtml-id; &dtml-id;
</dtml-if> </dtml-if>
</a> </a>
</strong>
</td> </td>
</tr> </tr>
</table> </table>
<dtml-tree nowrap=1> <dtml-tree nowrap=1>
<dtml-if icon>
<a href="&dtml.url_quote-tree-item-url;/manage_workspace"
target="manage_main"><img src="&dtml-BASEPATH1;/&dtml-icon;" border="0"
title="Click to open this item" alt="&dtml-meta_type;" /></a>
</dtml-if>
<a href="&dtml.url_quote-tree-item-url;/manage_workspace" <a href="&dtml.url_quote-tree-item-url;/manage_workspace"
target="manage_main">&dtml-id;</a> target="manage_main">&dtml-id;</a>
</dtml-tree> </dtml-tree>
...@@ -33,34 +21,14 @@ ...@@ -33,34 +21,14 @@
<table cellspacing="0" bgcolor="#efefef" width="100%"> <table cellspacing="0" bgcolor="#efefef" width="100%">
<tr> <tr>
<td width="16"></td> <td width="16"></td>
<td valign="top" nowrap="nowrap"> <td>
<strong>
<a href="manage_copyright" target="manage_main">
&copy; Zope Foundation
</a>
</strong>
</td>
</tr>
<tr>
<td width="16"></td>
<td valign="top" nowrap="nowrap">
<strong>
<a href="manage_menu">Refresh</a>
</strong>
</td>
</tr>
<tr>
<td width="16"></td>
<td valign="top" nowrap="nowrap">
<strong>
<a href="manage_menu?save_layout=1">Save layout</a> <a href="manage_menu?save_layout=1">Save layout</a>
</strong>
</td> </td>
</tr> </tr>
</table> </table>
<dtml-if save_layout> <dtml-if save_layout>
<dtml-call "RESPONSE.setCookie('tree-s', REQUEST.get('tree-s'), expires=ZopeTime('2975-05-26').rfc822())"> <dtml-call "RESPONSE.setCookie('tree-s', REQUEST.get('tree-s'), expires=ZopeTime('2100-01-01').rfc822())">
</dtml-if> </dtml-if>
<dtml-unless expr="REQUEST.get('zmi_top_frame', '1')"> <dtml-unless expr="REQUEST.get('zmi_top_frame', '1')">
......
...@@ -7,21 +7,20 @@ ...@@ -7,21 +7,20 @@
<body bgcolor="#ffffff" link="#000099" alink="#000099" vlink="#000099"> <body bgcolor="#ffffff" link="#000099" alink="#000099" vlink="#000099">
<dtml-var "manage_form_title(this(), _, <dtml-var "manage_form_title(this(), _,
form_title='Zope Quick Start', form_title='Zope 2',
)"> )">
<dtml-if expr="_.hasattr (PARENTS[0].acl_users, 'hasUsers') and not PARENTS[0].acl_users.hasUsers()"> <dtml-if expr="_.hasattr (PARENTS[0].acl_users, 'hasUsers') and not PARENTS[0].acl_users.hasUsers()">
<div class="system-msg"> <div class="system-msg">
<h3> <h3>
You have not created any users in this Zope instance. In order to You have not created any users in this Zope instance. In order to log in and
log in and manage this Zope instance, you'll need to add an administrative manage this Zope instance, you'll need to add an administrative user account.
user account.
</h3> </h3>
<p> <p>
You can create an administrative user account via the "zopectl adduser" You can create an administrative user account via the "addzope2user"
command from a shell. <b>Note: You'll need to shut Zope itself down before command from a shell. <b>Note: You'll need to shut Zope itself down before
"zopectl adduser" will work. Restart Zope after executing this command in "addzope2user" will work. Restart Zope after executing this command in
order to log in.</b> order to log in.</b>
</p> </p>
...@@ -29,48 +28,8 @@ order to log in.</b> ...@@ -29,48 +28,8 @@ order to log in.</b>
</dtml-if> </dtml-if>
<p> <p>
Welcome to <strong>Zope</strong>, a high-performance object-oriented The owner of this site has not yet added any content.
platform for building dynamic Web applications. Here are some quick
pointers to get you started:
</p> </p>
<ul>
<li>
<p>
<a href="http://docs.zope.org/zope2/zope2book/" target="_blank">Read The
Fine Manual</a>. This document guides you through the whole process of
learning Zope, from logging in for the first time to creating your own
web applications.
</p>
</li>
<li>
<p>
Go to the main <a href="http://docs.zope.org/" target="_blank">
Documentation Overview</a> on <a href="http://www.zope.org" target="_blank">Zope.org</a>.
Here you will find pointers to official and community contributed documentation.
</p>
</li>
<li>
<p>
Look at the various <a
href="http://www.zope.org/Resources/MailingLists" target="_blank">Mailing
Lists</a> about Zope. The Mailing Lists are where you can get
quick, accurate, friendly help from a large community of Zope
users from around the world.
</p>
</li>
<li>
<p>
Go directly to the <a href="&dtml-BASEPATH1;/manage" target="_top">
Zope Management Interface</a> if you'd like to start working with Zope
right away.
</p>
</li>
</ul>
</body> </body>
</html> </html>
...@@ -30,8 +30,6 @@ class INavigation(Interface): ...@@ -30,8 +30,6 @@ class INavigation(Interface):
manage_page_header = Attribute(""" """) manage_page_header = Attribute(""" """)
manage_page_footer = Attribute(""" """) manage_page_footer = Attribute(""" """)
manage_form_title = Attribute("""Add Form""") manage_form_title = Attribute("""Add Form""")
zope_quick_start = Attribute(""" """)
manage_copyright = Attribute(""" """)
manage_zmi_prefs = Attribute(""" """) manage_zmi_prefs = Attribute(""" """)
def manage_zmi_logout(REQUEST, RESPONSE): def manage_zmi_logout(REQUEST, RESPONSE):
......
...@@ -19,24 +19,24 @@ class TestImageFile(unittest.TestCase): ...@@ -19,24 +19,24 @@ class TestImageFile(unittest.TestCase):
App.config._config = self.oldcfg App.config._config = self.oldcfg
def test_warn_on_software_home_default(self): def test_warn_on_software_home_default(self):
App.ImageFile.ImageFile('App/www/zopelogo.jpg') App.ImageFile.ImageFile('App/www/zopelogo.png')
self.assertEquals(self.warningshook.warnings.pop()[0], self.assertEquals(self.warningshook.warnings.pop()[0],
App.ImageFile.NON_PREFIX_WARNING) App.ImageFile.NON_PREFIX_WARNING)
def test_no_warn_on_absolute_path(self): def test_no_warn_on_absolute_path(self):
path = os.path.join(os.path.dirname(App.__file__), path = os.path.join(os.path.dirname(App.__file__),
'www','zopelogo.jpg') 'www','zopelogo.png')
App.ImageFile.ImageFile(path) App.ImageFile.ImageFile(path)
self.assertFalse(self.warningshook.warnings) self.assertFalse(self.warningshook.warnings)
def test_no_warn_on_path_as_prefix(self): def test_no_warn_on_path_as_prefix(self):
prefix = os.path.dirname(App.__file__) prefix = os.path.dirname(App.__file__)
App.ImageFile.ImageFile('www/zopelogo.jpg', prefix) App.ImageFile.ImageFile('www/zopelogo.png', prefix)
self.assertFalse(self.warningshook.warnings) self.assertFalse(self.warningshook.warnings)
def test_no_warn_on_namespace_as_prefix(self): def test_no_warn_on_namespace_as_prefix(self):
prefix = App.__dict__ # same as calling globals() inside the App module prefix = App.__dict__ # same as calling globals() inside the App module
App.ImageFile.ImageFile('www/zopelogo.jpg', prefix) App.ImageFile.ImageFile('www/zopelogo.png', prefix)
self.assertFalse(self.warningshook.warnings) self.assertFalse(self.warningshook.warnings)
def test_suite(): def test_suite():
......
...@@ -7,8 +7,6 @@ ...@@ -7,8 +7,6 @@
<tr tal:repeat="info databases"> <tr tal:repeat="info databases">
<td tal:define="name python: info[0]; <td tal:define="name python: info[0];
qname python: info[1]"> qname python: info[1]">
<img src="/p_/DatabaseManagement_icon"
tal:attributes="src string:${request/BASE1}/p_/DatabaseManagement_icon" />
<a tal:content="name" tal:attributes="href <a tal:content="name" tal:attributes="href
string:${context/absolute_url}/${qname}/manage_main">Main</a> string:${context/absolute_url}/${qname}/manage_main">Main</a>
</td> </td>
......
...@@ -15,7 +15,6 @@ ...@@ -15,7 +15,6 @@
import os, sys import os, sys
from logging import getLogger from logging import getLogger
from cgi import escape
import Products import Products
import transaction import transaction
...@@ -153,15 +152,6 @@ class Application(ApplicationDefaultPermissions, ...@@ -153,15 +152,6 @@ class Application(ApplicationDefaultPermissions,
ZopeTime = PrincipiaTime ZopeTime = PrincipiaTime
security.declarePublic('ZopeAttributionButton')
def ZopeAttributionButton(self):
"""Returns an HTML fragment that displays the 'powered by zope'
button along with a link to the Zope site."""
return '<a href="http://www.zope.org/Credits" target="_top"><img ' \
'src="%s/p_/ZopeButton" width="115" height="50" border="0" ' \
'alt="Powered by Zope" /></a>' % escape(self.REQUEST.BASE1, 1)
def DELETE(self, REQUEST, RESPONSE): def DELETE(self, REQUEST, RESPONSE):
"""Delete a resource object.""" """Delete a resource object."""
self.dav__init(REQUEST, RESPONSE) self.dav__init(REQUEST, RESPONSE)
...@@ -172,9 +162,6 @@ class Application(ApplicationDefaultPermissions, ...@@ -172,9 +162,6 @@ class Application(ApplicationDefaultPermissions,
self.dav__init(REQUEST, RESPONSE) self.dav__init(REQUEST, RESPONSE)
raise Forbidden, 'This resource cannot be moved.' raise Forbidden, 'This resource cannot be moved.'
test_url___allow_groups__=None
test_url = ZopeAttributionButton
def absolute_url(self, relative=0): def absolute_url(self, relative=0):
"""The absolute URL of the root object is BASE1 or "/". """The absolute URL of the root object is BASE1 or "/".
""" """
...@@ -230,8 +217,6 @@ InitializeClass(Application) ...@@ -230,8 +217,6 @@ InitializeClass(Application)
class Expired(Persistent): class Expired(Persistent):
icon='p_/broken'
def __setstate__(self, s={}): def __setstate__(self, s={}):
dict=self.__dict__ dict=self.__dict__
if s.has_key('id'): if s.has_key('id'):
...@@ -649,7 +634,6 @@ def install_standards(app): ...@@ -649,7 +634,6 @@ def install_standards(app):
# Install the replaceable standard objects # Install the replaceable standard objects
from App.Common import package_home from App.Common import package_home
from App.special_dtml import DTMLFile from App.special_dtml import DTMLFile
from Products.PageTemplates.PageTemplateFile import PageTemplateFile
std_dir = os.path.join(package_home(globals()), 'standard') std_dir = os.path.join(package_home(globals()), 'standard')
wrote = False wrote = False
...@@ -661,17 +645,6 @@ def install_standards(app): ...@@ -661,17 +645,6 @@ def install_standards(app):
ob = DTMLFile(base, std_dir) ob = DTMLFile(base, std_dir)
app.manage_addProduct['OFSP'].manage_addDTMLMethod( app.manage_addProduct['OFSP'].manage_addDTMLMethod(
id=base, file=open(ob.raw)) id=base, file=open(ob.raw))
elif ext in ('.pt', '.zpt'):
if hasattr(app, base):
continue
ob = PageTemplateFile(fn, std_dir, __name__=fn)
app.manage_addProduct['PageTemplates'].manage_addPageTemplate(
id=base, title='', text=open(ob.filename))
elif ext in ('.ico', '.gif', '.png'):
if hasattr(app, fn):
continue
app.manage_addProduct['OFSP'].manage_addImage(
id=fn, title='', file=open(os.path.join(std_dir, fn)))
else: else:
continue continue
wrote = True wrote = True
......
...@@ -342,12 +342,11 @@ def findCacheables(ob, manager_id, require_assoc, subfolders, ...@@ -342,12 +342,11 @@ def findCacheables(ob, manager_id, require_assoc, subfolders,
if not sm.checkPermission('Change cache settings', subob): if not sm.checkPermission('Change cache settings', subob):
continue continue
subpath = path + (subob.getId(),) subpath = path + (subob.getId(),)
icon = getattr(aq_base(subob), 'icon', '')
info = { info = {
'sortkey': subpath, 'sortkey': subpath,
'path': '/'.join(subpath), 'path': '/'.join(subpath),
'title': getattr(aq_base(subob), 'title', ''), 'title': getattr(aq_base(subob), 'title', ''),
'icon': icon, 'icon': None,
'associated': associated,} 'associated': associated,}
rval.append(info) rval.append(info)
......
...@@ -36,7 +36,6 @@ class DTMLDocument(PropertyManager, DTMLMethod): ...@@ -36,7 +36,6 @@ class DTMLDocument(PropertyManager, DTMLMethod):
""" DocumentTemplate.HTML objects whose 'self' is the DTML object. """ DocumentTemplate.HTML objects whose 'self' is the DTML object.
""" """
meta_type = 'DTML Document' meta_type = 'DTML Document'
icon ='p_/dtmldoc'
manage_options = ( manage_options = (
DTMLMethod.manage_options[:2] + DTMLMethod.manage_options[:2] +
......
...@@ -14,7 +14,6 @@ ...@@ -14,7 +14,6 @@
""" """
from cgi import escape from cgi import escape
import time
import sys import sys
from AccessControl.class_init import InitializeClass from AccessControl.class_init import InitializeClass
...@@ -25,7 +24,7 @@ from AccessControl.SecurityInfo import ClassSecurityInfo ...@@ -25,7 +24,7 @@ from AccessControl.SecurityInfo import ClassSecurityInfo
from AccessControl.SecurityManagement import getSecurityManager from AccessControl.SecurityManagement import getSecurityManager
from Acquisition import aq_base from Acquisition import aq_base
from Acquisition import aq_parent from Acquisition import aq_parent
from Acquisition import Implicit, Explicit from Acquisition import Implicit
from App.Common import iso8601_date from App.Common import iso8601_date
from App.Common import rfc1123_date from App.Common import rfc1123_date
from App.Dialogs import MessageDialog from App.Dialogs import MessageDialog
...@@ -104,7 +103,6 @@ class PropertySheet(Traversable, Persistent, Implicit): ...@@ -104,7 +103,6 @@ class PropertySheet(Traversable, Persistent, Implicit):
_properties=() _properties=()
_extensible=1 _extensible=1
icon='p_/Properties_icon'
security = ClassSecurityInfo() security = ClassSecurityInfo()
security.declareObjectProtected(access_contents_information) security.declareObjectProtected(access_contents_information)
......
...@@ -113,10 +113,6 @@ class Item(Base, ...@@ -113,10 +113,6 @@ class Item(Base,
# Alias id to __name__, which will make tracebacks a good bit nicer: # Alias id to __name__, which will make tracebacks a good bit nicer:
__name__=ComputedAttribute(lambda self: self.getId()) __name__=ComputedAttribute(lambda self: self.getId())
# Name, relative to BASEPATH1 of icon used to display item
# in folder listings.
icon=''
# Meta type used for selecting all objects of a given type. # Meta type used for selecting all objects of a given type.
meta_type='simple item' meta_type='simple item'
......
...@@ -32,7 +32,7 @@ LOG = getLogger('OFS.Uninstalled') ...@@ -32,7 +32,7 @@ LOG = getLogger('OFS.Uninstalled')
class BrokenClass(ZODB_Broken, Explicit, Item, Overridable): class BrokenClass(ZODB_Broken, Explicit, Item, Overridable):
_p_changed=0 _p_changed=0
meta_type='Broken Because Product is Gone' meta_type='Broken Because Product is Gone'
icon='p_/broken'
product_name='unknown' product_name='unknown'
id='broken' id='broken'
......
...@@ -50,8 +50,6 @@ are shown. ...@@ -50,8 +50,6 @@ are shown.
</td> </td>
<td align="left" valign="top"> <td align="left" valign="top">
<div class="form-text"> <div class="form-text">
<dtml-if icon><a href="../&dtml-path;/manage_main"><img src="&dtml-icon;"
border="0"></a> &nbsp;</dtml-if>
<a href="../&dtml-path;/manage_main">&dtml-path;</a><dtml-if <a href="../&dtml-path;/manage_main">&dtml-path;</a><dtml-if
title>(&dtml-title;)</dtml-if> title>(&dtml-title;)</dtml-if>
</div> </div>
......
...@@ -79,11 +79,7 @@ your search terms below. ...@@ -79,11 +79,7 @@ your search terms below.
<dtml-else> <dtml-else>
<TR class="row-hilite"> <TR class="row-hilite">
</dtml-if> </dtml-if>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="16"> <TD ALIGN="LEFT" VALIGN="TOP" WIDTH="16"></TD>
<A HREF="&dtml.url_quote-sequence-key;/manage_workspace">
<IMG SRC="&dtml-BASEPATH1;/&dtml-icon;"
ALT="[&dtml-meta_type;]" BORDER="0"></A>
</TD>
<TD ALIGN="LEFT" VALIGN="TOP"> <TD ALIGN="LEFT" VALIGN="TOP">
<div class="list-item"> <div class="list-item">
<A HREF="&dtml.url_quote-sequence-key;/manage_workspace"> <A HREF="&dtml.url_quote-sequence-key;/manage_workspace">
......
...@@ -118,25 +118,7 @@ function toggleSelect() { ...@@ -118,25 +118,7 @@ function toggleSelect() {
<input type="checkbox" name="ids:list" value="&dtml-sequence-key;" /> <input type="checkbox" name="ids:list" value="&dtml-sequence-key;" />
</td> </td>
<td align="left" valign="top" nowrap="nowrap"> <td align="left" valign="top" nowrap="nowrap">
<i>&dtml-meta_type;</i>
<dtml-if om_icons>
<a href="&dtml.url_quote-sequence-key;/manage_workspace">
<dtml-in om_icons mapping>
<img src="&dtml-BASEPATH1;/&dtml.url_quote-path;" alt="&dtml.missing-alt;"
title="&dtml.missing-title;" border="0" width="16" height="16"/></dtml-in></a>
<dtml-else>
<dtml-if icon>
<a href="&dtml.url_quote-sequence-key;/manage_workspace">
<img src="&dtml-BASEPATH1;/&dtml-icon;" alt="&dtml-meta_type;"
title="&dtml-meta_type;" border="0" /></a>
<dtml-else>
&nbsp;
</dtml-if>
</dtml-if>
</td> </td>
<td align="left" valign="top"> <td align="left" valign="top">
...@@ -146,7 +128,7 @@ function toggleSelect() { ...@@ -146,7 +128,7 @@ function toggleSelect() {
</a> </a>
<dtml-try> <dtml-try>
<dtml-if "wl_isLocked()==1"> <dtml-if "wl_isLocked()==1">
<img src="/p_/davlocked"> Locked
</dtml-if> </dtml-if>
<dtml-except> <dtml-except>
</dtml-try> </dtml-try>
......
...@@ -20,8 +20,6 @@ user to edit that user. ...@@ -20,8 +20,6 @@ user to edit that user.
</td> </td>
<td align="left" valign="top"> <td align="left" valign="top">
<div class="list-item"> <div class="list-item">
<a href="manage_users?name=&dtml.url_quote-sequence-item;&submit=Edit"><img src="&dtml-BASEPATH1;/p_/User_icon"
alt="" border="0" /></a>
<a href="manage_users?name=&dtml.url_quote-sequence-item;&submit=Edit">&dtml-sequence-item;</a> <a href="manage_users?name=&dtml.url_quote-sequence-item;&submit=Edit">&dtml-sequence-item;</a>
</div> </div>
</td> </td>
......
...@@ -15,11 +15,9 @@ ...@@ -15,11 +15,9 @@
<a href="&dtml-id;/manage">&dtml-id; <dtml-if xml_namespace>(<dtml-var xml_namespace>)</dtml-if></a> <a href="&dtml-id;/manage">&dtml-id; <dtml-if xml_namespace>(<dtml-var xml_namespace>)</dtml-if></a>
<dtml-if locked_in_session> <dtml-if locked_in_session>
<dtml-if modified_in_session> <dtml-if modified_in_session>
<img src="&dtml-BASEPATH1;/p_/locked" This item has been modified in this session
alt="This item has been modified in this session" />
<dtml-else> <dtml-else>
<img src="&dtml-BASEPATH1;/p_/lockedo" This item has been modified in another session
alt="This item has been modified in another session" />
</dtml-if> </dtml-if>
</dtml-if> </dtml-if>
</td> </td>
......
...@@ -9,9 +9,7 @@ ...@@ -9,9 +9,7 @@
<table border="0"> <table border="0">
<dtml-in expr="manage_CopyContainerAllItems(REQUEST)"> <dtml-in expr="manage_CopyContainerAllItems(REQUEST)">
<tr> <tr>
<td align="left" valign="bottom" width="16"> <td align="left" valign="bottom" width="16"></td>
<img src="&dtml-BASEPATH1;/&dtml-icon;" alt="" border="0" />
</td>
<td align="left" valign="bottom"> <td align="left" valign="bottom">
<div class="form-text"> <div class="form-text">
&dtml-id; &dtml-id;
......
...@@ -336,11 +336,6 @@ class IItem(IZopeObject, IManageable, IFTPAccess, IDAVResource, ...@@ -336,11 +336,6 @@ class IItem(IZopeObject, IManageable, IFTPAccess, IDAVResource,
title=u"Title" title=u"Title"
) )
icon = BytesLine(
title=u"Icon",
description=u"Name of icon, relative to BASEPATH1",
)
def getId(): def getId():
"""Return the id of the object as a string. """Return the id of the object as a string.
...@@ -858,12 +853,6 @@ class IApplication(IFolder, IRoot): ...@@ -858,12 +853,6 @@ class IApplication(IFolder, IRoot):
ZopeTime = PrincipiaTime ZopeTime = PrincipiaTime
def ZopeAttributionButton():
"""Returns an HTML fragment that displays the 'powered by zope'
button along with a link to the Zope site."""
test_url = ZopeAttributionButton
def absolute_url(relative=0): def absolute_url(relative=0):
"""The absolute URL of the root object is BASE1 or "/". """The absolute URL of the root object is BASE1 or "/".
""" """
......
...@@ -118,10 +118,6 @@ def _registerClass(class_, meta_type, permission, addview, icon, global_): ...@@ -118,10 +118,6 @@ def _registerClass(class_, meta_type, permission, addview, icon, global_):
setattr(class_, 'meta_type', meta_type) setattr(class_, 'meta_type', meta_type)
permission_obj = getUtility(IPermission, permission) permission_obj = getUtility(IPermission, permission)
if icon:
setattr(class_, 'icon', '++resource++%s' % icon)
interfaces = tuple(implementedBy(class_)) interfaces = tuple(implementedBy(class_))
info = {'name': meta_type, info = {'name': meta_type,
...@@ -151,10 +147,6 @@ def registerClass(_context, class_, meta_type, permission, addview=None, ...@@ -151,10 +147,6 @@ def registerClass(_context, class_, meta_type, permission, addview=None,
def unregisterClass(class_): def unregisterClass(class_):
delattr(class_, 'meta_type') delattr(class_, 'meta_type')
try:
delattr(class_, 'icon')
except AttributeError:
pass
def setDeprecatedManageAddDelete(class_): def setDeprecatedManageAddDelete(class_):
......
...@@ -31,47 +31,9 @@ class p_: ...@@ -31,47 +31,9 @@ class p_:
security = ClassSecurityInfo() security = ClassSecurityInfo()
security.declareObjectPublic() security.declareObjectPublic()
here = dirname(__file__)
broken = ImageFile('www/broken.gif', here)
import OFS
ofs_dir = dirname(OFS.__file__)
User_icon = ImageFile('www/User_icon.gif', ofs_dir)
locked = ImageFile('www/modified.gif', here)
lockedo = ImageFile('www/locked.gif', here)
import webdav
davlocked = ImageFile('www/davlock.gif', dirname(webdav.__file__))
pl = ImageFile('www/Plus_icon.gif', ofs_dir)
mi = ImageFile('www/Minus_icon.gif', ofs_dir)
import App import App
app_dir = dirname(App.__file__) app_dir = dirname(App.__file__)
rtab = ImageFile('www/rtab.gif', app_dir) zopelogo_png = ImageFile('www/zopelogo.png', app_dir)
ltab = ImageFile('www/ltab.gif', app_dir)
sp = ImageFile('www/sp.gif', app_dir)
r_arrow_gif = ImageFile('www/r_arrow.gif', here)
l_arrow_gif = ImageFile('www/l_arrow.gif', here)
ControlPanel_icon = ImageFile('www/ControlPanel_icon.gif', ofs_dir)
ApplicationManagement_icon = ImageFile('www/cpSystem.gif', app_dir)
DatabaseManagement_icon = ImageFile('www/dbManage.gif', app_dir)
DebugManager_icon = ImageFile('www/DebugManager_icon.gif', app_dir)
InstalledProduct_icon = ImageFile('www/installedProduct.gif', app_dir)
BrokenProduct_icon = ImageFile('www/brokenProduct.gif', app_dir)
Product_icon = ImageFile('www/product.gif', app_dir)
Permission_icon = ImageFile('www/permission.gif', app_dir)
ProductFolder_icon = ImageFile('www/productFolder.gif', app_dir)
PyPoweredSmall_Gif = ImageFile('www/PythonPoweredSmall.gif', app_dir)
ZopeButton = ImageFile('www/zope_button.jpg', app_dir)
ZButton = ImageFile('www/z_button.jpg', app_dir)
zopelogo_jpg = ImageFile('www/zopelogo.jpg', app_dir)
Properties_icon = ImageFile('www/Properties_icon.gif', ofs_dir)
Propertysheets_icon = ImageFile('www/Properties_icon.gif', ofs_dir)
InitializeClass(p_) InitializeClass(p_)
......
<tal:text tal:replace="structure context/zope_quick_start" />
...@@ -31,19 +31,10 @@ ...@@ -31,19 +31,10 @@
an error.</li> an error.</li>
</ul> </ul>
<p>For more detailed information about the error, please
refer to the error log.
</p>
<p>If the error persists please contact the site maintainer. <p>If the error persists please contact the site maintainer.
Thank you for your patience. Thank you for your patience.
</p> </p>
<dtml-comment>
Here, events like logging and other actions may also be performed, such as
sending mail automatically to the administrator.
</dtml-comment>
</dtml-if> </dtml-if>
</body> </body>
......
...@@ -202,7 +202,7 @@ class TestInitialization( unittest.TestCase ): ...@@ -202,7 +202,7 @@ class TestInitialization( unittest.TestCase ):
self.configure(good_cfg) self.configure(good_cfg)
i = self.getOne() i = self.getOne()
i.install_products() i.install_products()
self.assertTrue(Application.misc_.__dict__.has_key('OFSP')) self.assertTrue('__roles__' in Application.misc_.__dict__)
def test_install_standards(self): def test_install_standards(self):
self.configure(good_cfg) self.configure(good_cfg)
......
...@@ -87,13 +87,6 @@ class Test__registerClass(unittest.TestCase): ...@@ -87,13 +87,6 @@ class Test__registerClass(unittest.TestCase):
self.assertEqual(mt[0]['instance'], klass) self.assertEqual(mt[0]['instance'], klass)
self.assertEqual(mt[0]['container_filter'], None) self.assertEqual(mt[0]['container_filter'], None)
def test_w_icon(self):
klass = self._makeClass()
self._registerPermission('perm')
self._callFUT(klass, 'Dummy', 'perm', icon='dummy.png')
self.assertEqual(klass.icon, '++resource++dummy.png')
def test_w_global_(self): def test_w_global_(self):
klass = self._makeClass() klass = self._makeClass()
self._registerPermission('perm') self._registerPermission('perm')
......
...@@ -73,7 +73,6 @@ def test_registerClass(): ...@@ -73,7 +73,6 @@ def test_registerClass():
... meta_type="Foo Type" ... meta_type="Foo Type"
... permission="foo.add" ... permission="foo.add"
... addview="addfoo.html" ... addview="addfoo.html"
... icon="foo_icon.png"
... global="false" ... global="false"
... /> ... />
... </configure>''' ... </configure>'''
...@@ -85,8 +84,6 @@ def test_registerClass(): ...@@ -85,8 +84,6 @@ def test_registerClass():
>>> from OFS.tests.test_registerclass import SimpleContent >>> from OFS.tests.test_registerclass import SimpleContent
>>> SimpleContent.meta_type >>> SimpleContent.meta_type
'Foo Type' 'Foo Type'
>>> SimpleContent.icon
'++resource++foo_icon.png'
And the meta_type is registered correctly:: And the meta_type is registered correctly::
...@@ -138,8 +135,6 @@ def test_registerClass(): ...@@ -138,8 +135,6 @@ def test_registerClass():
>>> SimpleContent.meta_type >>> SimpleContent.meta_type
'Bar Type' 'Bar Type'
>>> SimpleContent.icon
''
And the meta_type is registered correctly:: And the meta_type is registered correctly::
...@@ -168,8 +163,6 @@ def test_registerClass(): ...@@ -168,8 +163,6 @@ def test_registerClass():
>>> tearDown() >>> tearDown()
>>> SimpleContent.meta_type >>> SimpleContent.meta_type
'simple item' 'simple item'
>>> SimpleContent.icon
''
>>> [info for info in Products.meta_types if info['name'] == 'Bar Type'] >>> [info for info in Products.meta_types if info['name'] == 'Bar Type']
[] []
""" """
......
...@@ -302,7 +302,6 @@ class UserFolder(accesscontrol_userfolder.UserFolder, BasicUserFolder): ...@@ -302,7 +302,6 @@ class UserFolder(accesscontrol_userfolder.UserFolder, BasicUserFolder):
UserFolders function chiefly to control access by authenticating UserFolders function chiefly to control access by authenticating
users and binding them to a collection of roles.""" users and binding them to a collection of roles."""
icon = 'p_/UserFolder'
_ofs_migrated = False _ofs_migrated = False
def __init__(self): def __init__(self):
......
...@@ -54,47 +54,11 @@ Let's check for the various aq_* attributes: ...@@ -54,47 +54,11 @@ Let's check for the various aq_* attributes:
>>> view.aq_self == view >>> view.aq_self == view
True True
Let's try to acquire something from the root folder:
>>> button = view.aq_acquire('ZopeAttributionButton')
>>> print button()
<a href="http://www.zope.org/Credits" target="_top"><img src="http://nohost/p_/ZopeButton" width="115" height="50" border="0" alt="Powered by Zope" /></a>
Let's check that we're in the right context:
>>> view.aq_inContextOf(self.folder)
1
>>> view.aq_inContextOf(self.app)
1
>>> view.aq_inContextOf(object())
0
Views also still support the __of__ protocol, at least pro forma: Views also still support the __of__ protocol, at least pro forma:
>>> view == view.__of__(self.app) >>> view == view.__of__(self.app)
True True
Acquisition API legacy on a browser view's template
---------------------------------------------------
A view's template will also support the various aq_* attributes:
>>> view = getMultiAdapter((self.folder, request), name='template')
>>> template = view.template
>>> template.aq_parent == view
True
>>> template.aq_inner == template
True
>>> template.aq_base == template
True
>>> template.aq_self == template
True
>>> button = template.aq_acquire('ZopeAttributionButton')
>>> print button()
<a href="http://www.zope.org/Credits" target="_top"><img src="http://nohost/p_/ZopeButton" width="115" height="50" border="0" alt="Powered by Zope" /></a>
Mixing in Acquisition.{Ex|Im}plicit Mixing in Acquisition.{Ex|Im}plicit
----------------------------------- -----------------------------------
......
...@@ -26,7 +26,6 @@ from Acquisition import Acquired ...@@ -26,7 +26,6 @@ from Acquisition import Acquired
from Acquisition import Explicit from Acquisition import Explicit
from Acquisition import aq_get from Acquisition import aq_get
from App.Common import package_home from App.Common import package_home
from App.ImageFile import ImageFile
from DateTime.DateTime import DateTime from DateTime.DateTime import DateTime
from OFS.SimpleItem import SimpleItem from OFS.SimpleItem import SimpleItem
from OFS.History import Historical, html_diff from OFS.History import Historical, html_diff
...@@ -387,18 +386,6 @@ class ZopePageTemplate(Script, PageTemplate, Historical, Cacheable, ...@@ -387,18 +386,6 @@ class ZopePageTemplate(Script, PageTemplate, Historical, Cacheable,
return self._text return self._text
return self.read() return self.read()
def om_icons(self):
"""Return a list of icon URLs to be displayed by an ObjectManager"""
icons = ({'path': 'misc_/PageTemplates/zpt.gif',
'alt': self.meta_type, 'title': self.meta_type},)
if not self._v_cooked:
self._cook()
if self._v_errors:
icons = icons + ({'path': 'misc_/PageTemplates/exclamation.gif',
'alt': 'Error',
'title': 'This template has an error'},)
return icons
security.declareProtected(view, 'pt_source_file') security.declareProtected(view, 'pt_source_file')
def pt_source_file(self): def pt_source_file(self):
"""Returns a file name to be compiled into the TAL code.""" """Returns a file name to be compiled into the TAL code."""
...@@ -490,8 +477,6 @@ def manage_addPageTemplate(self, id, title='', text='', encoding='utf-8', ...@@ -490,8 +477,6 @@ def manage_addPageTemplate(self, id, title='', text='', encoding='utf-8',
else: else:
return zpt return zpt
from Products.PageTemplates import misc_
misc_['exclamation.gif'] = ImageFile('www/exclamation.gif', globals())
def initialize(context): def initialize(context):
context.registerClass( context.registerClass(
...@@ -499,5 +484,4 @@ def initialize(context): ...@@ -499,5 +484,4 @@ def initialize(context):
permission='Add Page Templates', permission='Add Page Templates',
constructors=(manage_addPageTemplateForm, constructors=(manage_addPageTemplateForm,
manage_addPageTemplate), manage_addPageTemplate),
icon='www/zpt.gif',
) )
...@@ -436,7 +436,6 @@ class BrowserIdManager(Item, Persistent, Implicit, RoleManager, Owned, Tabs): ...@@ -436,7 +436,6 @@ class BrowserIdManager(Item, Persistent, Implicit, RoleManager, Owned, Tabs):
registerBeforeTraverse(parent, hook, name, priority) registerBeforeTraverse(parent, hook, name, priority)
# ZMI # ZMI
icon = 'misc_/Sessions/idmgr.gif'
manage_options=({'label': 'Settings', 'action':'manage_browseridmgr'}, manage_options=({'label': 'Settings', 'action':'manage_browseridmgr'},
{'label': 'Security', 'action':'manage_access'}, {'label': 'Security', 'action':'manage_access'},
{'label': 'Ownership', 'action':'manage_owner'}, {'label': 'Ownership', 'action':'manage_owner'},
......
...@@ -54,6 +54,11 @@ def constructSessionDataManager(self, id, title='', path=None, ...@@ -54,6 +54,11 @@ def constructSessionDataManager(self, id, title='', path=None,
if REQUEST is not None: if REQUEST is not None:
return self.manage_main(self, REQUEST, update_menu=1) return self.manage_main(self, REQUEST, update_menu=1)
class SessionIdManagerErr(Exception):
pass
class SessionDataManager(Item, Implicit, Persistent, RoleManager, Owned, Tabs): class SessionDataManager(Item, Implicit, Persistent, RoleManager, Owned, Tabs):
""" The Zope default session data manager implementation """ """ The Zope default session data manager implementation """
...@@ -84,8 +89,6 @@ class SessionDataManager(Item, Implicit, Persistent, RoleManager, Owned, Tabs): ...@@ -84,8 +89,6 @@ class SessionDataManager(Item, Implicit, Persistent, RoleManager, Owned, Tabs):
security.setPermissionDefault(ACCESS_SESSIONDATA_PERM, security.setPermissionDefault(ACCESS_SESSIONDATA_PERM,
['Manager','Anonymous']) ['Manager','Anonymous'])
icon='misc_/CoreSessionTracking/datamgr.gif'
implements(ISessionDataManager) implements(ISessionDataManager)
manage_sessiondatamgr = DTMLFile('dtml/manageDataManager', manage_sessiondatamgr = DTMLFile('dtml/manageDataManager',
...@@ -214,7 +217,7 @@ class SessionDataManager(Item, Implicit, Persistent, RoleManager, Owned, Tabs): ...@@ -214,7 +217,7 @@ class SessionDataManager(Item, Implicit, Persistent, RoleManager, Owned, Tabs):
if self.obpath is None: if self.obpath is None:
err = 'Session data container is unspecified in %s' % self.getId() err = 'Session data container is unspecified in %s' % self.getId()
LOG.warn(err) LOG.warn(err)
raise SessionIdManagerErr, err raise SessionIdManagerErr(err)
try: try:
# This should arguably use restrictedTraverse, but it # This should arguably use restrictedTraverse, but it
# currently fails for mounted storages. This might # currently fails for mounted storages. This might
......
...@@ -22,7 +22,6 @@ def initialize(context): ...@@ -22,7 +22,6 @@ def initialize(context):
context.registerClass( context.registerClass(
BrowserIdManager.BrowserIdManager, BrowserIdManager.BrowserIdManager,
icon="www/idmgr.gif",
permission=BrowserIdManager.ADD_BROWSER_ID_MANAGER_PERM, permission=BrowserIdManager.ADD_BROWSER_ID_MANAGER_PERM,
constructors=(BrowserIdManager.constructBrowserIdManagerForm, constructors=(BrowserIdManager.constructBrowserIdManagerForm,
BrowserIdManager.constructBrowserIdManager) BrowserIdManager.constructBrowserIdManager)
...@@ -30,7 +29,6 @@ def initialize(context): ...@@ -30,7 +29,6 @@ def initialize(context):
context.registerClass( context.registerClass(
SessionDataManager.SessionDataManager, SessionDataManager.SessionDataManager,
icon='www/datamgr.gif',
permission=SessionDataManager.ADD_SESSION_DATAMANAGER_PERM, permission=SessionDataManager.ADD_SESSION_DATAMANAGER_PERM,
constructors=(SessionDataManager.constructSessionDataManagerForm, constructors=(SessionDataManager.constructSessionDataManagerForm,
SessionDataManager.constructSessionDataManager) SessionDataManager.constructSessionDataManager)
......
...@@ -28,7 +28,6 @@ def manage_addAccessRule(self, method_id=None, REQUEST=None, **ignored): ...@@ -28,7 +28,6 @@ def manage_addAccessRule(self, method_id=None, REQUEST=None, **ignored):
# We want the original object, not stuff in between, and no acquisition # We want the original object, not stuff in between, and no acquisition
self = self.this() self = self.this()
self = getattr(self, 'aq_base', self) self = getattr(self, 'aq_base', self)
priority = (1, 'AccessRule')
if method_id is None or (REQUEST and REQUEST.form.has_key('none')): if method_id is None or (REQUEST and REQUEST.form.has_key('none')):
rules = unregisterBeforeTraverse(self, 'AccessRule') rules = unregisterBeforeTraverse(self, 'AccessRule')
...@@ -51,7 +50,7 @@ def manage_addAccessRule(self, method_id=None, REQUEST=None, **ignored): ...@@ -51,7 +50,7 @@ def manage_addAccessRule(self, method_id=None, REQUEST=None, **ignored):
hook = AccessRule(method_id) hook = AccessRule(method_id)
registerBeforeTraverse(self, hook, 'AccessRule', 1) registerBeforeTraverse(self, hook, 'AccessRule', 1)
try: try:
getattr(self, method_id).icon = 'misc_/SiteAccess/AccessRule.gif' getattr(self, method_id).icon = 'accessrule.gif'
except: except:
pass pass
if REQUEST: if REQUEST:
......
...@@ -7,14 +7,11 @@ def initialize(context): ...@@ -7,14 +7,11 @@ def initialize(context):
context.registerClass(instance_class=SiteRoot.SiteRoot, context.registerClass(instance_class=SiteRoot.SiteRoot,
permission='Add Site Roots', permission='Add Site Roots',
constructors=SiteRoot.constructors, legacy=SiteRoot.constructors, constructors=SiteRoot.constructors, legacy=SiteRoot.constructors)
icon='www/SiteRoot.gif')
context.registerClass(instance_class=AccessRule.AccessRule, context.registerClass(instance_class=AccessRule.AccessRule,
permission='Manage Access Rules', constructors=AccessRule.constructors, permission='Manage Access Rules', constructors=AccessRule.constructors)
icon='www/AccessRule.gif')
context.registerClass(instance_class=VirtualHostMonster.VirtualHostMonster, context.registerClass(instance_class=VirtualHostMonster.VirtualHostMonster,
permission='Add Virtual Host Monsters', permission='Add Virtual Host Monsters',
constructors=VirtualHostMonster.constructors, constructors=VirtualHostMonster.constructors)
icon='www/VirtualHostMonster.gif')
...@@ -150,7 +150,7 @@ class Test_manage_addAccessRule(unittest.TestCase): ...@@ -150,7 +150,7 @@ class Test_manage_addAccessRule(unittest.TestCase):
rule = container.__before_traverse__[(1, 'AccessRule')] rule = container.__before_traverse__[(1, 'AccessRule')]
self.assertEqual(rule.name, 'new_rule') self.assertEqual(rule.name, 'new_rule')
self.assertFalse('icon' in old_rule.__dict__) self.assertFalse('icon' in old_rule.__dict__)
self.assertEqual(new_rule.icon, 'misc_/SiteAccess/AccessRule.gif') self.assertEqual(new_rule.icon, 'accessrule.gif')
def test_w_valid_method_id_w_existing_rules_w_request(self): def test_w_valid_method_id_w_existing_rules_w_request(self):
from ZPublisher.BeforeTraverse import registerBeforeTraverse from ZPublisher.BeforeTraverse import registerBeforeTraverse
...@@ -169,7 +169,7 @@ class Test_manage_addAccessRule(unittest.TestCase): ...@@ -169,7 +169,7 @@ class Test_manage_addAccessRule(unittest.TestCase):
rule = container.__before_traverse__[(1, 'AccessRule')] rule = container.__before_traverse__[(1, 'AccessRule')]
self.assertEqual(rule.name, 'new_rule') self.assertEqual(rule.name, 'new_rule')
self.assertFalse('icon' in old_rule.__dict__) self.assertFalse('icon' in old_rule.__dict__)
self.assertEqual(new_rule.icon, 'misc_/SiteAccess/AccessRule.gif') self.assertEqual(new_rule.icon, 'accessrule.gif')
class Test_getAccessRule(unittest.TestCase): class Test_getAccessRule(unittest.TestCase):
......
...@@ -11,18 +11,11 @@ ...@@ -11,18 +11,11 @@
# FOR A PARTICULAR PURPOSE. # FOR A PARTICULAR PURPOSE.
# #
############################################################################## ##############################################################################
"""Site error log product.
"""
import SiteErrorLog import SiteErrorLog
from App.ImageFile import ImageFile
misc_={
'ok.gif': ImageFile('www/ok.gif', globals()),
}
def initialize(context): def initialize(context):
context.registerClass(SiteErrorLog.SiteErrorLog, context.registerClass(SiteErrorLog.SiteErrorLog,
constructors=(SiteErrorLog.manage_addErrorLog,), constructors=(SiteErrorLog.manage_addErrorLog,),
permission=SiteErrorLog.use_error_logging, permission=SiteErrorLog.use_error_logging)
icon='www/error.gif')
...@@ -91,9 +91,7 @@ No exceptions logged. ...@@ -91,9 +91,7 @@ No exceptions logged.
</td> </td>
<td><a href="#" <td><a href="#"
tal:attributes="href string:${context/absolute_url}/forgetEntry?id=${entry/id}" tal:attributes="href string:${context/absolute_url}/forgetEntry?id=${entry/id}"
><img title="Forget this entry" src="/misc_/SiteErrorLog/ok.gif" border="0" >Forget this entry</a></td>
tal:attributes="src string:${request/BASEPATH1}/misc_/SiteErrorLog/ok.gif"
/></a></td>
</tr> </tr>
</table> </table>
......
...@@ -47,7 +47,6 @@ constructTemporaryFolderForm=HTMLFile('dtml/addTemporaryFolder', globals()) ...@@ -47,7 +47,6 @@ constructTemporaryFolderForm=HTMLFile('dtml/addTemporaryFolder', globals())
class SimpleTemporaryContainer(Folder): class SimpleTemporaryContainer(Folder):
# dbtab-style container class # dbtab-style container class
meta_type = 'Temporary Folder' meta_type = 'Temporary Folder'
icon = 'misc_/TemporaryFolder/tempfolder.gif'
class MountedTemporaryFolder(MountPoint, Item): class MountedTemporaryFolder(MountPoint, Item):
...@@ -58,7 +57,6 @@ class MountedTemporaryFolder(MountPoint, Item): ...@@ -58,7 +57,6 @@ class MountedTemporaryFolder(MountPoint, Item):
XXX this is only here for backwards compatibility purposes: XXX this is only here for backwards compatibility purposes:
DBTab uses the SimpleTemporaryContainer class instead. DBTab uses the SimpleTemporaryContainer class instead.
""" """
icon = 'p_/broken'
manage_options = ({'label':'Traceback', 'action':'manage_traceback'},) manage_options = ({'label':'Traceback', 'action':'manage_traceback'},)
meta_type = 'Broken Temporary Folder' meta_type = 'Broken Temporary Folder'
...@@ -86,11 +84,9 @@ class MountedTemporaryFolder(MountPoint, Item): ...@@ -86,11 +84,9 @@ class MountedTemporaryFolder(MountPoint, Item):
def _populate(self, folder, root): def _populate(self, folder, root):
# Set up our folder object # Set up our folder object
folder.id = self.id # be a chameleon folder.id = self.id
folder.title = self.title folder.title = self.title
folder.icon = "misc_/TemporaryFolder/tempfolder.gif"
s=folder.manage_options[1:] s=folder.manage_options[1:]
folder.manage_options = ( folder.manage_options = (
{'label':'Contents', 'action':'manage_main', {'label':'Contents', 'action':'manage_main'},
'help':('TemporaryFolder','TemporaryFolder.stx')},
)+s )+s
...@@ -25,7 +25,6 @@ def initialize(context): ...@@ -25,7 +25,6 @@ def initialize(context):
context.registerClass( context.registerClass(
TemporaryFolder.MountedTemporaryFolder, TemporaryFolder.MountedTemporaryFolder,
permission=TemporaryFolder.ADD_TEMPORARY_FOLDER_PERM, permission=TemporaryFolder.ADD_TEMPORARY_FOLDER_PERM,
icon='www/tempfolder.gif',
meta_type='Temporary Folder', meta_type='Temporary Folder',
constructors=(TemporaryFolder.constructTemporaryFolderForm, constructors=(TemporaryFolder.constructTemporaryFolderForm,
TemporaryFolder.constructTemporaryFolder), TemporaryFolder.constructTemporaryFolder),
......
...@@ -100,7 +100,6 @@ class TransientObjectContainer(SimpleItem): ...@@ -100,7 +100,6 @@ class TransientObjectContainer(SimpleItem):
after a period of inactivity """ after a period of inactivity """
meta_type = "Transient Object Container" meta_type = "Transient Object Container"
icon = "misc_/Transience/datacontainer.gif"
implements(ItemWithId, implements(ItemWithId,
StringKeyedHomogeneousItemContainer, StringKeyedHomogeneousItemContainer,
......
...@@ -25,7 +25,6 @@ def initialize(context): ...@@ -25,7 +25,6 @@ def initialize(context):
context.registerClass( context.registerClass(
Transience.TransientObjectContainer, Transience.TransientObjectContainer,
permission=Transience.ADD_CONTAINER_PERM, permission=Transience.ADD_CONTAINER_PERM,
icon='www/datacontainer.gif',
constructors=(Transience.constructTransientObjectContainerForm, constructors=(Transience.constructTransientObjectContainerForm,
Transience.constructTransientObjectContainer) Transience.constructTransientObjectContainer)
) )
...@@ -122,7 +122,6 @@ class MountedObject(SimpleItem): ...@@ -122,7 +122,6 @@ class MountedObject(SimpleItem):
#_create_mount_points = 0 #_create_mount_points = 0
_create_mount_points = True _create_mount_points = True
icon = 'p_/broken'
manage_options = ({'label':'Traceback', 'action':'manage_traceback'},) manage_options = ({'label':'Traceback', 'action':'manage_traceback'},)
_v_mount_params = None _v_mount_params = None
_v_data = None _v_data = None
......
...@@ -4,9 +4,5 @@ def initialize(context): ...@@ -4,9 +4,5 @@ def initialize(context):
context.registerClass( context.registerClass(
ZReST.ZReST, ZReST.ZReST,
meta_type = 'ReStructuredText Document', meta_type = 'ReStructuredText Document',
icon='www/zrest.gif', constructors = (ZReST.manage_addZReSTForm, ZReST.manage_addZReST)
constructors = (
ZReST.manage_addZReSTForm, ZReST.manage_addZReST
) )
)
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
""" """
from Tree import TreeMaker, TreeNode, b2a from Tree import TreeMaker, TreeNode, b2a
from cgi import escape
class SimpleTreeNode(TreeNode): class SimpleTreeNode(TreeNode):
def branch(self): def branch(self):
...@@ -24,20 +24,16 @@ class SimpleTreeNode(TreeNode): ...@@ -24,20 +24,16 @@ class SimpleTreeNode(TreeNode):
if self.state < 0: if self.state < 0:
setst = 'expand' setst = 'expand'
exnum = self.aq_parent.expansion_number exnum = self.aq_parent.expansion_number
img = 'pl'
else: else:
setst = 'collapse' setst = 'collapse'
exnum = self.expansion_number exnum = self.expansion_number
img = 'mi'
base = self.aq_acquire('baseURL')
obid = self.id obid = self.id
pre = self.aq_acquire('tree_pre') pre = self.aq_acquire('tree_pre')
return {'link': '?%s-setstate=%s,%s,%s#%s' % \ return {'link': '?%s-setstate=%s,%s,%s#%s' % \
(pre, setst[0], exnum, obid, obid), (pre, setst[0], exnum, obid, obid),
'img': '<img src="%s/p_/%s" alt="%s" border="0">' % \ 'img': ''}
(escape(base, 1), img, setst)}
class SimpleTreeMaker(TreeMaker): class SimpleTreeMaker(TreeMaker):
......
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