[Zope3-checkins] CVS: Zope3/src/zope/app/browser -
absoluteurl.py:1.11 auth.zcml:1.3 configure.zcml:1.21
introspector.pt:1.9 introspector.py:1.7 introspector.zcml:1.6
login.pt:1.2 login_failed.pt:1.2 logout.pt:1.2
managementviewselector.py:1.4 marker.pt:1.3 menus.zcml:1.10
onlinehelp.py:1.13 onlinehelp.zcml:1.8 onlinehelptopic.pt:1.3
redirect.pt:1.2 traversal.zcml:1.8 undo.py:1.8 undo.zcml:1.4
undo_log.pt:1.8
Stephan Richter
srichter at cosmos.phy.tufts.edu
Wed Aug 6 11:42:27 EDT 2003
Update of /cvs-repository/Zope3/src/zope/app/browser
In directory cvs.zope.org:/tmp/cvs-serv17028/app/browser
Modified Files:
absoluteurl.py auth.zcml configure.zcml introspector.pt
introspector.py introspector.zcml login.pt login_failed.pt
logout.pt managementviewselector.py marker.pt menus.zcml
onlinehelp.py onlinehelp.zcml onlinehelptopic.pt redirect.pt
traversal.zcml undo.py undo.zcml undo_log.pt
Log Message:
Internationalized a whole bunch templates and screens. I also took the
oppurtunity to clean some old code up.
I noticed that particularly the basic Content Objects are in bad shape.
There is still a lot left to do!
=== Zope3/src/zope/app/browser/absoluteurl.py 1.10 => 1.11 ===
--- Zope3/src/zope/app/browser/absoluteurl.py:1.10 Thu Jun 12 05:29:27 2003
+++ Zope3/src/zope/app/browser/absoluteurl.py Wed Aug 6 10:41:11 2003
@@ -11,9 +11,8 @@
# FOR A PARTICULAR PURPOSE
#
##############################################################################
-"""
+"""Absolute URL View components
-Revision information:
$Id$
"""
@@ -21,7 +20,9 @@
from zope.publisher.browser import BrowserView
from zope.proxy import sameProxiedObjects
-_insufficientContext = ("There isn't enough context to get URL information. "
+from zope.app.i18n import ZopeMessageIDFactory as _
+
+_insufficientContext = _("There isn't enough context to get URL information. "
"This is probably due to a bug in setting up context "
"wrappers.")
=== Zope3/src/zope/app/browser/auth.zcml 1.2 => 1.3 ===
--- Zope3/src/zope/app/browser/auth.zcml:1.2 Sun Aug 3 13:48:37 2003
+++ Zope3/src/zope/app/browser/auth.zcml Wed Aug 6 10:41:11 2003
@@ -1,24 +1,19 @@
-<configure
- xmlns:browser="http://namespaces.zope.org/browser"
- i18n_domain='zope'
- >
+<configure xmlns="http://namespaces.zope.org/browser">
-<browser:page
- name="login.html"
- for="*"
- class=".auth.HTTPAuthenticationLogin"
- attribute="login"
- permission="zope.Public"
- allowed_interface="zope.app.interfaces.publisher.http.ILogin"
- />
-
-<browser:page
- name="logout.html"
- for="*"
- class=".auth.HTTPAuthenticationLogout"
- attribute="logout"
- permission="zope.Public"
- allowed_interface="zope.app.interfaces.publisher.http.ILogout"
- />
+ <page
+ name="login.html"
+ for="*"
+ class=".auth.HTTPAuthenticationLogin"
+ attribute="login"
+ permission="zope.Public"
+ allowed_interface="zope.app.interfaces.publisher.http.ILogin" />
+
+ <page
+ name="logout.html"
+ for="*"
+ class=".auth.HTTPAuthenticationLogout"
+ attribute="logout"
+ permission="zope.Public"
+ allowed_interface="zope.app.interfaces.publisher.http.ILogout" />
</configure>
=== Zope3/src/zope/app/browser/configure.zcml 1.20 => 1.21 ===
--- Zope3/src/zope/app/browser/configure.zcml:1.20 Sun Aug 3 13:48:37 2003
+++ Zope3/src/zope/app/browser/configure.zcml Wed Aug 6 10:41:11 2003
@@ -1,28 +1,28 @@
<configure xmlns="http://namespaces.zope.org/browser">
-<defaultView name="index.html" />
-
-<include file="menus.zcml" />
-<include package=".applicationcontrol" />
-<include package=".cache" />
-<include package=".component" />
-<include package=".container" />
-<include package=".content" />
-<include package=".dublincore" />
-<include package=".form" />
-<include package=".security" />
-<include package=".services" />
-<include package=".skins" />
-<include package=".index" />
-<include package=".rdb" />
-<include package=".workflow" />
-<include package=".catalog" />
-<include file="onlinehelp.zcml" />
-<include file="introspector.zcml" />
-<include file="traversal.zcml" />
-<include file="undo.zcml" />
-<include file="auth.zcml" />
-
-<include package=".exception" />
+ <defaultView name="index.html" />
+
+ <include file="menus.zcml" />
+ <include package=".applicationcontrol" />
+ <include package=".cache" />
+ <include package=".component" />
+ <include package=".container" />
+ <include package=".content" />
+ <include package=".dublincore" />
+ <include package=".form" />
+ <include package=".security" />
+ <include package=".services" />
+ <include package=".skins" />
+ <include package=".index" />
+ <include package=".rdb" />
+ <include package=".workflow" />
+ <include package=".catalog" />
+ <include file="onlinehelp.zcml" />
+ <include file="introspector.zcml" />
+ <include file="traversal.zcml" />
+ <include file="undo.zcml" />
+ <include file="auth.zcml" />
+
+ <include package=".exception" />
</configure>
=== Zope3/src/zope/app/browser/introspector.pt 1.8 => 1.9 ===
--- Zope3/src/zope/app/browser/introspector.pt:1.8 Sat Jul 5 09:41:55 2003
+++ Zope3/src/zope/app/browser/introspector.pt Wed Aug 6 10:41:11 2003
@@ -1,181 +1,179 @@
<html metal:use-macro="views/standard_macros/page">
<head>
-<style type="text/css" metal:fill-slot="style_slot">
-.preclass {
- color : #000066;
- font-family : monospace;
- white-space : pre;
+ <style type="text/css" metal:fill-slot="style_slot">
+ .preclass {
+ color : #000066;
+ font-family : monospace;
+ white-space : pre;
}
-th.introspector {
- vertical-align: top;
+ th.introspector {
+ vertical-align: top;
}
-</style>
+ </style>
</head>
<body>
<div metal:fill-slot="body">
-<tal:block
- tal:define =
- "global introspector view/getIntrospector;
- global services view/getServicesFor">
-
-<div tal:condition="python:introspector.isInterface()">
-
-<table tal:define =
- "global interfacedata introspector/getInterfaceDetails">
- <tr>
- <th colspan="2">Interface Browser</th>
- </tr>
- <tr>
- <th class="introspector">Interface:</th>
- <td tal:content="python:interfacedata[0]">Interface</td>
- </tr>
- <tr>
- <th class="introspector">Bases:</th>
- <td>
+ <tal:block
+ tal:define="global introspector view/getIntrospector;
+ global services view/getServicesFor">
+
+ <div tal:condition="python:introspector.isInterface()">
+
+ <table tal:define="global interfacedata introspector/getInterfaceDetails">
+ <tr>
+ <th colspan="2" i18n:translate="">Interface Browser</th>
+ </tr>
+ <tr>
+ <th class="introspector" i18n:translate="">Interface:</th>
+ <td tal:content="python:interfacedata[0]">Interface</td>
+ </tr>
+ <tr>
+ <th class="introspector" i18n:translate="">Bases:</th>
+ <td>
<div tal:repeat="interface python:interfacedata[1]">
- <a href=""
- tal:attributes="href
- string: ++module++${repeat/interface/item}"
- tal:content="repeat/interface/item">Interface</a>
- </div>
- </td>
- </tr>
- <tr>
- <th class="introspector">Description:</th>
- <td>
- <!-- the start of all of these preclass spans are carefully
- spatially placed (in terms of whitespace), because they are
- "pre" formatted (i.e., whitespace matters within the span) -->
- <span class="preclass"
- tal:content="python:interfacedata[2]">
- Description</span>
- </td>
- </tr>
- <tr>
- <th class="introspector">Attributes:</th>
- <td>
+ <a href=""
+ tal:attributes="href
+ string: ++module++${repeat/interface/item}"
+ tal:content="repeat/interface/item">Interface</a>
+ </div>
+ </td>
+ </tr>
+ <tr>
+ <th class="introspector" i18n:translate="">Description:</th>
+ <td>
+ <!-- the start of all of these preclass spans are carefully
+ spatially placed (in terms of whitespace), because they are
+ "pre" formatted (i.e., whitespace matters within the span) -->
+ <span class="preclass"
+ tal:content="python:interfacedata[2]">
+ Description</span>
+ </td>
+ </tr>
+ <tr>
+ <th class="introspector" i18n:translate="">Attributes:</th>
+ <td>
<div tal:repeat="attributes python:interfacedata[4]">
- <tal:block tal:define="details repeat/attributes/item">
- <strong tal:content="python:details[0]">
- Atttribute Name</strong>
- <div class="preclass">
- <span
- tal:content="python:details[1]">
- Attribute Description</span></div>
- </tal:block>
- </div>
- </td>
- </tr>
- <tr>
- <th class="introspector">Methods:</th>
- <td>
+ <tal:block tal:define="details repeat/attributes/item">
+ <strong tal:content="python:details[0]">
+ Atttribute Name</strong>
+ <div class="preclass" tal:content="python:details[1]">
+ Attribute Description
+ </div>
+ </tal:block>
+ </div>
+ </td>
+ </tr>
+ <tr>
+ <th class="introspector" i18n:translate="">Methods:</th>
+ <td>
<div tal:repeat="methods python:interfacedata[3]">
- <tal:block tal:define="details repeat/methods/item">
- <strong tal:content="python:details[0]">
- Method Name</strong>
- <strong tal:content="python:details[1]">
- Signature</strong>
- <div class="preclass">
- <span
- tal:content="python:details[2]">
- Method Description</span></div>
- </tal:block>
- </div>
- </td>
- </tr>
- <!-- this section is currently not available
- <tr>
- <th class="introspector">Services:</th>
- <td>
+ <tal:block tal:define="details repeat/methods/item">
+ <strong tal:content="python:details[0]">
+ Method Name</strong>
+ <strong tal:content="python:details[1]">
+ Signature</strong>
+ <div class="preclass" tal:content="python:details[2]">
+ Method Description
+ </div>
+ </tal:block>
+ </div>
+ </td>
+ </tr>
+
+ <!-- this section is currently not available
+ <tr>
+ <th class="introspector" i18n:translate="">Services:</th>
+ <td>
<div tal:repeat="servicedic services">
- <span tal:define="dic repeat/servicedic/item">
- <a tal:content="python:dic.keys()[0]"/>
- </span>
- </div>
- </td>
- </tr>
- -->
-</table>
-</div>
-
-<div tal:condition="python:introspector.isInterface()==0">
-
-<table>
- <tr>
- <th colspan="2">Class Browser</th>
- </tr>
- <tr>
- <th class="introspector">Class:</th>
- <td><span tal:content="introspector/getClass">Name</span></td>
- </tr>
- <tr>
- <th class="introspector">Bases:</th>
- <td>
+ <span tal:define="dic repeat/servicedic/item">
+ <a tal:content="python:dic.keys()[0]"/>
+ </span>
+ </div>
+ </td>
+ </tr>
+ -->
+ </table>
+ </div>
+
+ <div tal:condition="python:introspector.isInterface()==0">
+
+ <table>
+ <tr>
+ <th colspan="2" i18n:translate="">Class Browser</th>
+ </tr>
+ <tr>
+ <th class="introspector" i18n:translate="">Class:</th>
+ <td><span tal:content="introspector/getClass">Name</span></td>
+ </tr>
+ <tr>
+ <th class="introspector" i18n:translate="">Bases:</th>
+ <td>
<div tal:repeat="base introspector/getBaseClassNames">
<span tal:replace="repeat/base/item" />
- <!--
+ <!--
<a href=""
- tal:attributes="href
- string: ++module++${repeat/base/item}"
- tal:content="repeat/base/item">Base</a>
- -->
- </div>
- </td>
- </tr>
- <tr>
- <th class="introspector">Module:</th>
- <td><span tal:content="introspector/getModule">Module</span></td>
- </tr>
- <tr>
- <th>Description:</th>
- <td>
- <span class="preclass"
- tal:content="introspector/getDocString">
- Description</span>
- </td>
- </tr>
- <tr>
- <th class="introspector">Interfaces from Class:</th>
- <td>
+ tal:attributes="href string: ++module++${repeat/base/item}"
+ tal:content="repeat/base/item">Base</a>
+ -->
+ </div>
+ </td>
+ </tr>
+ <tr>
+ <th class="introspector" i18n:translate="">Module:</th>
+ <td><span tal:content="introspector/getModule">Module</span></td>
+ </tr>
+ <tr>
+ <th i18n:translate="">Description:</th>
+ <td>
+ <span class="preclass"
+ tal:content="introspector/getDocString">
+ Description</span>
+ </td>
+ </tr>
+ <tr>
+ <th class="introspector" i18n:translate="">Interfaces from Class:</th>
+ <td>
<div tal:repeat="interface introspector/getInterfaceNames">
<div tal:define="url python: view.getInterfaceURL(interface)">
- <a href=""
- tal:attributes="href url"
- tal:content="interface"
- tal:condition="url">Interface</a>
- <span tal:condition="python: not url"
+ <a href=""
+ tal:attributes="href url"
+ tal:content="interface"
+ tal:condition="url">Interface</a>
+ <span tal:condition="python: not url"
tal:content="interface" />
- </div>
+ </div>
</div>
- </td>
- </tr>
- <tr>
- <th class="introspector">Interfaces from Object:</th>
- <td>
+ </td>
+ </tr>
+ <tr>
+ <th class="introspector"
+ i18n:translate="">Interfaces from Object:</th>
+ <td>
<div tal:repeat="interface introspector/getDirectlyProvidedNames"
- tal:condition="introspector/getDirectlyProvided">
+ tal:condition="introspector/getDirectlyProvided">
<div tal:define="url python: view.getInterfaceURL(interface)">
- <a href=""
- tal:attributes="href url"
- tal:content="interface"
- tal:condition="url">Interface</a>
+ <a href=""
+ tal:attributes="href url"
+ tal:content="interface"
+ tal:condition="url">Interface</a>
<span tal:condition="python: not url"
tal:content="interface" />
- </div>
+ </div>
</div>
- <form tal:attributes="
- action string:${request/URL/-1}/@@objectMarker.html"
- method="POST">
- <input type="submit" value="Modify" />
+ <form tal:attributes="
+ action string:${request/URL/-1}/@@objectMarker.html"
+ method="POST">
+ <input type="submit" value="Modify"
+ i18n:attributes="value modify-button"/>
</form>
- </td>
- </tr>
-</table>
-</div>
+ </td>
+ </tr>
+ </table>
+ </div>
-</tal:block>
+ </tal:block>
</div>
</body>
=== Zope3/src/zope/app/browser/introspector.py 1.6 => 1.7 ===
--- Zope3/src/zope/app/browser/introspector.py:1.6 Wed Jul 2 11:23:01 2003
+++ Zope3/src/zope/app/browser/introspector.py Wed Aug 6 10:41:11 2003
@@ -11,6 +11,10 @@
# FOR A PARTICULAR PURPOSE.
#
##############################################################################
+"""Introspector View class
+
+$Id$
+"""
from zope.publisher.browser import BrowserView
from zope.app.interfaces.introspector import IIntrospector
from zope.component import getAdapter
=== Zope3/src/zope/app/browser/introspector.zcml 1.5 => 1.6 ===
--- Zope3/src/zope/app/browser/introspector.zcml:1.5 Sun Aug 3 13:48:37 2003
+++ Zope3/src/zope/app/browser/introspector.zcml Wed Aug 6 10:41:11 2003
@@ -1,8 +1,4 @@
-<configure
- xmlns='http://namespaces.zope.org/browser'
- i18n_domain='zope'
- >
-<!-- Introspection -->
+<configure xmlns="http://namespaces.zope.org/browser">
<!--page
name="classBrowser.html"
@@ -13,28 +9,23 @@
title="Introspector"
menu="zmi_views"
/-->
+
<pages
for = "zope.interface.Interface"
permission="zope.ManageServices"
class="zope.app.browser.introspector.IntrospectorView" >
- <page name="classBrowser.html"
- title="Introspector"
- template="introspector.pt"
- menu="zmi_views"
- />
+ <page name="classBrowser.html" template="introspector.pt"
+ menu="zmi_views" title="Introspector" />
+ <page name="objectMarker.html" template="marker.pt" />
- <page name="objectMarker.html"
- template="marker.pt"
- />
- </pages>
+ </pages>
<page
name="index.html"
for="zope.interface.interfaces.IInterface"
permission="zope.View"
template="introspector.pt"
- class="zope.app.browser.introspector.IntrospectorView"
- />
+ class="zope.app.browser.introspector.IntrospectorView" />
</configure>
=== Zope3/src/zope/app/browser/login.pt 1.1 => 1.2 ===
--- Zope3/src/zope/app/browser/login.pt:1.1 Thu Jul 31 23:21:28 2003
+++ Zope3/src/zope/app/browser/login.pt Wed Aug 6 10:41:11 2003
@@ -2,13 +2,15 @@
<body>
<div metal:fill-slot="body">
- <h1>Login successful!</h1>
+ <h1 i18n:translate="">Login successful!</h1>
- <p style="font-size: 200%">
- You are now logged in as <em tal:content="view/request/user/getTitle"/>.
+ <p style="font-size: 200%" i18n:translate="">
+ You are now logged in as
+ <em tal:content="view/request/user/getTitle"
+ i18n:name="UserTitle">Joe Smith</em>.
</p>
- <a href=".">Back to the main page.</a>
+ <a href="." i18n:translate="">Back to the main page.</a>
</div>
</body>
=== Zope3/src/zope/app/browser/login_failed.pt 1.1 => 1.2 ===
--- Zope3/src/zope/app/browser/login_failed.pt:1.1 Fri Aug 1 09:47:38 2003
+++ Zope3/src/zope/app/browser/login_failed.pt Wed Aug 6 10:41:11 2003
@@ -2,12 +2,13 @@
<body>
<div metal:fill-slot="body">
- <h1>Login Failed!</h1>
+ <h1 i18n:translate="">Login Failed!</h1>
- <p style="font-size: 150%">
- You cancelled the login procedure. Click
- <a tal:attributes=
- "href python: view.request.get('nextURL', '.')">here</a> to return.
+ <p style="font-size: 150%" i18n:translate="">
+ You cancelled the login procedure.
+ <a tal:attributes= "href python: view.request.get('nextURL', '.')">
+ Click here to return.
+ </a>
</p>
</div>
=== Zope3/src/zope/app/browser/logout.pt 1.1 => 1.2 ===
--- Zope3/src/zope/app/browser/logout.pt:1.1 Thu Jul 31 23:21:28 2003
+++ Zope3/src/zope/app/browser/logout.pt Wed Aug 6 10:41:11 2003
@@ -2,13 +2,13 @@
<body>
<div metal:fill-slot="body">
- <h1>Logout successful!</h1>
+ <h1 i18n:translate="">Logout successful!</h1>
- <p style="font-size: 200%">
+ <p style="font-size: 200%" i18n:translate="">
You are now logged out.
</p>
- <a href=".">Back to the main page.</a>
+ <a href="." i18n:translate="">Back to the main page.</a>
</div>
</body>
=== Zope3/src/zope/app/browser/managementviewselector.py 1.3 => 1.4 ===
--- Zope3/src/zope/app/browser/managementviewselector.py:1.3 Fri Jun 6 17:35:15 2003
+++ Zope3/src/zope/app/browser/managementviewselector.py Wed Aug 6 10:41:11 2003
@@ -11,10 +11,10 @@
# FOR A PARTICULAR PURPOSE.
#
##############################################################################
-"""
+"""Selecting first available and allowed management view
+
$Id$
"""
-
__metaclass__ = type
from zope.interface import implements
@@ -23,8 +23,7 @@
from zope.publisher.interfaces.browser import IBrowserPublisher
class ManagementViewSelector(BrowserView):
- """View that selects the first available management view
- """
+ """View that selects the first available management view."""
implements(IBrowserPublisher)
=== Zope3/src/zope/app/browser/marker.pt 1.2 => 1.3 ===
--- Zope3/src/zope/app/browser/marker.pt:1.2 Sat Jul 5 09:41:55 2003
+++ Zope3/src/zope/app/browser/marker.pt Wed Aug 6 10:41:11 2003
@@ -1,65 +1,63 @@
<html metal:use-macro="views/standard_macros/page">
<head>
-<style type="text/css" metal:fill-slot="style_slot">
-.preclass {
- color : #000066;
- font-family : monospace;
- white-space : pre;
- }
-th.introspector {
- vertical-align: top;
- }
-</style>
+ <style type="text/css" metal:fill-slot="style_slot">
+ .preclass {
+ color : #000066;
+ font-family : monospace;
+ white-space : pre;
+ }
+ th.introspector {
+ vertical-align: top;
+ }
+ </style>
</head>
<body>
<div metal:fill-slot="body">
-<tal:block
- tal:define =
- "global introspector view/getIntrospector;
- global services view/getServicesFor;
- global status view/update">
-
-
-<form action="" tal:attributes="action request/URL" method="POST">
-
-<table>
- <tr>
- <th colspan="2">Class Browser</th>
- </tr>
- <tr>
- <th class="introspector">Class:</th>
+ <tal:block
+ tal:define ="global introspector view/getIntrospector;
+ global services view/getServicesFor;
+ global status view/update">
+
+ <form action="" tal:attributes="action request/URL" method="POST">
+
+ <table>
+ <tr>
+ <th colspan="2" i18n:translate="">Class Browser</th>
+ </tr>
+ <tr>
+ <th class="introspector" i18n:translate="">Class:</th>
<td><span tal:content="introspector/getClass">Name</span></td>
- </tr>
- <tr>
- <th class="introspector">Bases:</th>
- <td>
- <div tal:repeat="base introspector/getBaseClassNames">
- <span tal:replace="repeat/base/item" />
- <!--
- <a href=""
- tal:attributes="href
- string: ++module++${repeat/base/item}"
- tal:content="repeat/base/item">Base</a>
- -->
- </div>
+ </tr>
+ <tr>
+ <th class="introspector" i18n:translate="">Bases:</th>
+ <td>
+ <div tal:repeat="base introspector/getBaseClassNames">
+ <span tal:replace="repeat/base/item" />
+ <!--
+ <a href=""
+ tal:attributes="href
+ string: ++module++${repeat/base/item}"
+ tal:content="repeat/base/item">Base</a>
+ -->
+ </div>
</td>
- </tr>
- <tr>
- <th class="introspector">Module:</th>
+ </tr>
+ <tr>
+ <th class="introspector" i18n:translate="">Module:</th>
<td><span tal:content="introspector/getModule">Module</span></td>
- </tr>
- <tr>
- <th>Description:</th>
- <td>
- <span class="preclass"
- tal:content="introspector/getDocString">
- Description</span>
- </td>
- </tr>
- <tr>
- <th class="introspector">Interfaces from Class:</th>
+ </tr>
+ <tr>
+ <th i18n:translate="">Description:</th>
+ <td>
+ <span class="preclass"
+ tal:content="introspector/getDocString">
+ Description</span>
+ </td>
+ </tr>
+ <tr>
+ <th class="introspector" i18n:translate="">Interfaces from Class:</th>
<td>
<div tal:repeat="interface introspector/getInterfaceNames">
<div tal:define="url python: view.getInterfaceURL(interface)">
@@ -72,53 +70,57 @@
</div>
</div>
</td>
- </tr>
- <tr tal:condition="introspector/getDirectlyProvided">
- <th class="introspector">Interfaces from Object:</th>
- <td>
- <div tal:repeat="interface introspector/getDirectlyProvidedNames">
- <div tal:define="url python: view.getInterfaceURL(interface)">
- <a href=""
- tal:attributes="href url"
- tal:content="interface"
- tal:condition="url">Interface</a>
- <span tal:condition="python: not url"
- tal:content="interface" />
- </div>
- </div>
- </td>
- </tr>
-
- <tr tal:condition="introspector/getDirectlyProvided">
- <th class="introspector">Remove Interfaces:</th>
+ </tr>
+ <tr tal:condition="introspector/getDirectlyProvided">
+ <th class="introspector" i18n:translate="">Interfaces from Object:</th>
<td>
- <div tal:repeat="interface introspector/getDirectlyProvidedNames">
- <label><input type="checkbox"
- tal:attributes="name string:rem_${interface}"/>
- <span tal:replace="interface" />
- </label>
+ <div tal:repeat="interface introspector/getDirectlyProvidedNames">
+ <div tal:define="url python: view.getInterfaceURL(interface)">
+ <a href=""
+ tal:attributes="href url"
+ tal:content="interface"
+ tal:condition="url">Interface</a>
+ <span tal:condition="python: not url"
+ tal:content="interface" />
</div>
- <input type="submit" name="REMOVE" value="Remove" />
+ </div>
</td>
- </tr>
-
- <tr tal:condition="introspector/getMarkerInterfaceNames">
- <th class="introspector">Add Interfaces:</th>
- <td>
- <div tal:repeat="interface introspector/getMarkerInterfaceNames">
- <label><input type="checkbox"
- tal:attributes="name string:add_${interface}"/>
- <span tal:replace="interface" />
- </label>
- </div>
- <input type="submit" name="ADD" value="Add" />
+ </tr>
+
+ <tr tal:condition="introspector/getDirectlyProvided">
+ <th class="introspector" i18n:translate="">Remove Interfaces:</th>
+ <td>
+ <div tal:repeat="interface introspector/getDirectlyProvidedNames">
+ <label>
+ <input type="checkbox"
+ tal:attributes="name string:rem_${interface}"/>
+ <span tal:replace="interface" />
+ </label>
+ </div>
+ <input type="submit" name="REMOVE" value="Remove"
+ i18n:attributes="value remove-button"/>
</td>
- </tr>
-
-</table>
-</form>
+ </tr>
+
+ <tr tal:condition="introspector/getMarkerInterfaceNames">
+ <th class="introspector" i18n:translate="">Add Interfaces:</th>
+ <td>
+ <div tal:repeat="interface introspector/getMarkerInterfaceNames">
+ <label>
+ <input type="checkbox"
+ tal:attributes="name string:add_${interface}"/>
+ <span tal:replace="interface" />
+ </label>
+ </div>
+ <input type="submit" name="ADD" value="Add"
+ i18n:attributes="value add-button"/>
+ </td>
+ </tr>
+
+ </table>
+ </form>
-</tal:block>
+ </tal:block>
</div>
</body>
=== Zope3/src/zope/app/browser/menus.zcml 1.9 => 1.10 ===
--- Zope3/src/zope/app/browser/menus.zcml:1.9 Sun Aug 3 13:48:37 2003
+++ Zope3/src/zope/app/browser/menus.zcml Wed Aug 6 10:41:11 2003
@@ -1,84 +1,78 @@
-<configure
- xmlns="http://namespaces.zope.org/browser"
- i18n_domain="zope"
- >
-
- <menu id="zmi_views"
- title="Menu for displaying alternate representations of an object"
- usage="objectview"
- />
-
- <menu id="zmi_actions"
- title="Menu for displaying actions to be performed"
- usage="activitydialog"
- />
-
- <menu id="help_actions"
- title="Menu for displaying help actions to be performed with popup"
- usage="activitydialog"
- />
-
- <menu id="add_content"
- title="Menu of objects to be added to content folders"
- usage="addingdialog"
- />
-
- <menu id="add_component"
- title="Menu of objects to be added to service manager packages"
- usage="addingdialog"
- />
-
- <menu id="add_service"
- title="Menu of services to be added"
- usage="addingdialog"
- />
-
- <menu id="add_utility"
- title="Menu of utilities to be added"
- usage="addingdialog"
- />
-
- <menu id="add_connection"
- title="Menu of database connections to be added"
- usage="addingdialog"
- />
-
- <menu id="add_cache"
- title="Menu of database connections to be added"
- usage="addingdialog"
- />
-
- <menu id="add_registration"
- title="Menu of addable configuration objects"
- usage="addingdialog"
- />
+<configure xmlns="http://namespaces.zope.org/browser">
+
+ <menu
+ id="zmi_views"
+ title="Menu for displaying alternate representations of an object"
+ usage="objectview" />
+
+ <menu
+ id="zmi_actions"
+ title="Menu for displaying actions to be performed"
+ usage="activitydialog" />
+
+ <menu
+ id="help_actions"
+ title="Menu for displaying help actions to be performed with popup"
+ usage="activitydialog" />
+
+ <menu
+ id="add_content"
+ title="Menu of objects to be added to content folders"
+ usage="addingdialog" />
+
+ <menu
+ id="add_component"
+ title="Menu of objects to be added to service manager packages"
+ usage="addingdialog" />
+
+ <menu
+ id="add_service"
+ title="Menu of services to be added"
+ usage="addingdialog" />
+
+ <menu
+ id="add_utility"
+ title="Menu of utilities to be added"
+ usage="addingdialog" />
+
+ <menu
+ id="add_connection"
+ title="Menu of database connections to be added"
+ usage="addingdialog" />
+
+ <menu
+ id="add_cache"
+ title="Menu of database connections to be added"
+ usage="addingdialog" />
+
+ <menu
+ id="add_registration"
+ title="Menu of addable configuration objects"
+ usage="addingdialog" />
<!-- Management view selector -->
<!-- Get first accessable item from zmi_views menu -->
<page
- for="*"
- name="SelectedManagementView.html"
- permission="zope.Public"
- class=".managementviewselector.ManagementViewSelector"
- allowed_interface="zope.publisher.interfaces.browser.IBrowserPublisher"
- />
+ for="*"
+ name="SelectedManagementView.html"
+ permission="zope.Public"
+ class=".managementviewselector.ManagementViewSelector"
+ allowed_interface="zope.publisher.interfaces.browser.IBrowserPublisher" />
<!-- Make manage an alias for same -->
<page
- for="*"
- name="manage"
- permission="zope.ManageContent"
- class=".managementviewselector.ManagementViewSelector"
- allowed_interface="zope.publisher.interfaces.browser.IBrowserPublisher"
- />
+ for="*"
+ name="manage"
+ permission="zope.ManageContent"
+ class=".managementviewselector.ManagementViewSelector"
+ allowed_interface="zope.publisher.interfaces.browser.IBrowserPublisher" />
<!-- Menu access -->
<page
- for="*"
- name="view_get_menu"
- permission="zope.Public"
- class=".menu.MenuAccessView"
- allowed_interface="zope.app.interfaces.browser.menu.IMenuAccessView"
- />
+ for="*"
+ name="view_get_menu"
+ permission="zope.Public"
+ class=".menu.MenuAccessView"
+ allowed_interface="zope.app.interfaces.browser.menu.IMenuAccessView" />
</configure>
=== Zope3/src/zope/app/browser/onlinehelp.py 1.12 => 1.13 ===
--- Zope3/src/zope/app/browser/onlinehelp.py:1.12 Tue Jul 29 21:06:05 2003
+++ Zope3/src/zope/app/browser/onlinehelp.py Wed Aug 6 10:41:11 2003
@@ -28,6 +28,7 @@
from zope.proxy import removeAllProxies
class OnlineHelpTopicView(BrowserView):
+ """View for one particular help topic."""
def _makeSubTree(self, topic):
html = '<ul>\n'
=== Zope3/src/zope/app/browser/onlinehelp.zcml 1.7 => 1.8 ===
--- Zope3/src/zope/app/browser/onlinehelp.zcml:1.7 Sun Aug 3 13:48:37 2003
+++ Zope3/src/zope/app/browser/onlinehelp.zcml Wed Aug 6 10:41:11 2003
@@ -1,17 +1,11 @@
-<configure
- xmlns="http://namespaces.zope.org/browser"
- i18n_domain='zope'
- >
-
-<!-- OnlineHelp -->
+<configure xmlns="http://namespaces.zope.org/browser">
<page
name="find_help_topics"
for="*"
class=".onlinehelp.FindRelevantHelpTopics"
permission="zope.Public"
- allowed_attributes="__call__"
- />
+ allowed_attributes="__call__" />
<pages
for="zope.app.interfaces.onlinehelp.IOnlineHelpTopic"
@@ -23,14 +17,11 @@
</pages>
-
<menuItem
for="*"
filter="python:request.getURL().find('++help++')==-1"
menu="help_actions"
title="Help"
- action="++help++/++skin++Onlinehelp/@@index.html"
- />
+ action="++help++/++skin++Onlinehelp/@@index.html" />
-
</configure>
=== Zope3/src/zope/app/browser/onlinehelptopic.pt 1.2 => 1.3 ===
--- Zope3/src/zope/app/browser/onlinehelptopic.pt:1.2 Tue Jul 1 21:27:58 2003
+++ Zope3/src/zope/app/browser/onlinehelptopic.pt Wed Aug 6 10:41:11 2003
@@ -1,13 +1,16 @@
<html metal:use-macro="views/standard_macros/page">
<head>
- <title metal:fill-slot="title" tal:content="context/getTitle">Title</title>
+ <title metal:fill-slot="title" tal:content="context/getTitle"
+ i18n:translate="">Title</title>
</head>
<body>
<div metal:fill-slot="body">
-<h1 tal:content="context/getTitle">Title of Help Topic</h1>
+ <h1 tal:content="context/getTitle"
+ i18n:translate="">Title of Help Topic</h1>
-<p tal:content="structure context/getContent">Content of Online Help.</p>
+ <p tal:content="structure context/getContent"
+ i18n:translate="">Content of Online Help.</p>
</div>
=== Zope3/src/zope/app/browser/redirect.pt 1.1 => 1.2 ===
--- Zope3/src/zope/app/browser/redirect.pt:1.1 Fri Aug 1 09:47:38 2003
+++ Zope3/src/zope/app/browser/redirect.pt Wed Aug 6 10:41:11 2003
@@ -8,11 +8,12 @@
<body>
<div metal:fill-slot="body">
- <h1>You are being redirected!</h1>
+ <h1 i18n:translate="">You are being redirected!</h1>
<p style="font-size: 150%">
- If you you see this screen, click
- <a tal:attributes="href view/request/nextURL">here</a>.
+ <a tal:attributes="href view/request/nextURL" i18n:translate="">
+ If you you see this screen for more than 5 seconds, click here.
+ </a>
</p>
</div>
=== Zope3/src/zope/app/browser/traversal.zcml 1.7 => 1.8 ===
--- Zope3/src/zope/app/browser/traversal.zcml:1.7 Sun Aug 3 13:48:37 2003
+++ Zope3/src/zope/app/browser/traversal.zcml Wed Aug 6 10:41:11 2003
@@ -1,69 +1,67 @@
<configure
- xmlns='http://namespaces.zope.org/zope'
- xmlns:browser='http://namespaces.zope.org/browser'
- i18n_domain='zope'
- >
+ xmlns="http://namespaces.zope.org/zope"
+ xmlns:browser="http://namespaces.zope.org/browser">
-<browser:page
- name="_traverse"
- for="zope.interface.Interface"
- class="zope.app.publication.traversers.SimpleComponentTraverser"
- permission="zope.Public"
- />
-
-<browser:view
- name="_traverse"
- for="zope.app.interfaces.content.file.IFileContent"
- class="zope.app.publication.traversers.FileContentTraverser"
- permission="zope.Public"
- />
-
-<browser:page
- name="_traverse"
- for="zope.app.interfaces.container.IItemContainer"
- class="zope.app.container.traversal.ItemTraverser"
- permission="zope.Public"
- />
-
-<browser:page
- name="_traverse"
- for="zope.app.interfaces.container.ISimpleReadContainer"
- class="zope.app.container.traversal.ContainerTraverser"
- permission="zope.Public"
- />
-
-<view
- for="*"
- name="absolute_url"
- factory=".absoluteurl.AbsoluteURL"
- type="zope.publisher.interfaces.http.IHTTPPresentation"
- permission="zope.Public"
- allowed_interface="zope.app.interfaces.browser.absoluteurl.IAbsoluteURL"
- />
-
-<view
- for="zope.app.interfaces.traversing.IContainmentRoot"
- name="absolute_url"
- factory=".absoluteurl.SiteAbsoluteURL"
- type="zope.publisher.interfaces.http.IHTTPPresentation"
- permission="zope.Public"
- allowed_interface="zope.app.interfaces.browser.absoluteurl.IAbsoluteURL"
- />
-
-<browser:page
- for="*"
- name="absolute_url"
- class=".absoluteurl.AbsoluteURL"
- permission="zope.Public"
- allowed_interface="zope.app.interfaces.browser.absoluteurl.IAbsoluteURL"
- />
-
-<browser:page
- for="zope.app.interfaces.traversing.IContainmentRoot"
- name="absolute_url"
- class=".absoluteurl.SiteAbsoluteURL"
- permission="zope.Public"
- allowed_interface="zope.app.interfaces.browser.absoluteurl.IAbsoluteURL"
- />
+ <browser:page
+ name="_traverse"
+ for="zope.interface.Interface"
+ class="zope.app.publication.traversers.SimpleComponentTraverser"
+ permission="zope.Public"
+ />
+
+ <browser:view
+ name="_traverse"
+ for="zope.app.interfaces.content.file.IFileContent"
+ class="zope.app.publication.traversers.FileContentTraverser"
+ permission="zope.Public"
+ />
+
+ <browser:page
+ name="_traverse"
+ for="zope.app.interfaces.container.IItemContainer"
+ class="zope.app.container.traversal.ItemTraverser"
+ permission="zope.Public"
+ />
+
+ <browser:page
+ name="_traverse"
+ for="zope.app.interfaces.container.ISimpleReadContainer"
+ class="zope.app.container.traversal.ContainerTraverser"
+ permission="zope.Public"
+ />
+
+ <view
+ for="*"
+ name="absolute_url"
+ factory=".absoluteurl.AbsoluteURL"
+ type="zope.publisher.interfaces.http.IHTTPPresentation"
+ permission="zope.Public"
+ allowed_interface="zope.app.interfaces.browser.absoluteurl.IAbsoluteURL"
+ />
+
+ <view
+ for="zope.app.interfaces.traversing.IContainmentRoot"
+ name="absolute_url"
+ factory=".absoluteurl.SiteAbsoluteURL"
+ type="zope.publisher.interfaces.http.IHTTPPresentation"
+ permission="zope.Public"
+ allowed_interface="zope.app.interfaces.browser.absoluteurl.IAbsoluteURL"
+ />
+
+ <browser:page
+ for="*"
+ name="absolute_url"
+ class=".absoluteurl.AbsoluteURL"
+ permission="zope.Public"
+ allowed_interface="zope.app.interfaces.browser.absoluteurl.IAbsoluteURL"
+ />
+
+ <browser:page
+ for="zope.app.interfaces.traversing.IContainmentRoot"
+ name="absolute_url"
+ class=".absoluteurl.SiteAbsoluteURL"
+ permission="zope.Public"
+ allowed_interface="zope.app.interfaces.browser.absoluteurl.IAbsoluteURL"
+ />
</configure>
=== Zope3/src/zope/app/browser/undo.py 1.7 => 1.8 ===
--- Zope3/src/zope/app/browser/undo.py:1.7 Thu Jul 10 08:42:12 2003
+++ Zope3/src/zope/app/browser/undo.py Wed Aug 6 10:41:11 2003
@@ -35,20 +35,15 @@
class ZODBUndoManager:
- """Implement the basic undo management api for a single ZODB database.
- """
+ """Implement the basic undo management api for a single ZODB database."""
implements(IUndoManager)
def __init__(self, db):
self.__db = db
- ############################################################
- # Implementation methods for interface
- # zope.app.interfaces.undo.IUndoManager.
-
def getUndoInfo(self, first=0, last=-20, user_name=None):
- '''See interface IUndoManager'''
+ '''See zope.app.interfaces.undo.IUndoManager'''
# Entries are a list of dictionaries, containing
# id -> internal id for zodb
@@ -77,32 +72,26 @@
return entries
-
def undoTransaction(self, id_list):
- '''See interface IUndoManager'''
+ '''See zope.app.interfaces.undo.IUndoManager'''
for id in id_list:
self.__db.undo(id)
- #
- ############################################################
-
-class Undo(BrowserView):
+class Undo:
"""Undo View"""
- index = ViewPageTemplateFile('undo_log.pt')
-
- def action (self, id_list, REQUEST=None):
- """
- processes undo form and redirects to form again (if possible)
- """
+ def action (self, id_list):
+ """processes undo form and redirects to form again (if possible)"""
utility = getUtility(self.context, IUndoManager)
utility.undoTransaction(id_list)
-
- if REQUEST is not None:
- REQUEST.response.redirect('index.html')
+ self.request.response.redirect('index.html')
def getUndoInfo(self, first=0, last=-20, user_name=None):
utility = getUtility(self.context, IUndoManager)
- return utility.getUndoInfo(first, last, user_name)
+ info = utility.getUndoInfo(first, last, user_name)
+ formatter = self.request.locale.getDateTimeFormatter('medium')
+ for entry in info:
+ entry['datetime'] = formatter.format(entry['datetime'])
+ return info
=== Zope3/src/zope/app/browser/undo.zcml 1.3 => 1.4 ===
--- Zope3/src/zope/app/browser/undo.zcml:1.3 Sun Aug 3 13:48:37 2003
+++ Zope3/src/zope/app/browser/undo.zcml Wed Aug 6 10:41:11 2003
@@ -1,30 +1,24 @@
<configure
xmlns="http://namespaces.zope.org/browser"
- xmlns:event="http://namespaces.zope.org/event"
- i18n_domain='zope'
- >
-
-<!-- Undo -->
+ xmlns:event="http://namespaces.zope.org/event">
<pages
for="*"
permission="zope.ManageContent"
class="zope.app.browser.undo.Undo" >
- <page name="undoForm.html" attribute="index" />
- <page name="undo.html" attribute="action" />
- </pages>
+ <page name="undoForm.html" template="undo_log.pt" />
+ <page name="undo.html" attribute="action" />
+ </pages>
<menuItem
for="*"
menu="zmi_actions"
title="Undo"
- action="@@undoForm.html"
- />
+ action="@@undoForm.html" />
<event:subscribe
subscriber=".undo.undoSetup"
- event_types="zope.app.interfaces.event.IDatabaseOpenedEvent"
- />
+ event_types="zope.app.interfaces.event.IDatabaseOpenedEvent" />
</configure>
=== Zope3/src/zope/app/browser/undo_log.pt 1.7 => 1.8 ===
--- Zope3/src/zope/app/browser/undo_log.pt:1.7 Mon Jul 28 10:57:33 2003
+++ Zope3/src/zope/app/browser/undo_log.pt Wed Aug 6 10:41:11 2003
@@ -1,122 +1,114 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html metal:use-macro="views/standard_macros/page">
<head>
-<title>Undo Title</title>
-<link rel="stylesheet" type="text/css" href="/manage_page_style.css" />
+ <title i18n:translate="">Undo Title</title>
+ <link rel="stylesheet" type="text/css" href="/manage_page_style.css" />
</head>
<body>
<div metal:fill-slot="body">
-<form action="@@undo.html" method="post" tal:define="first python:int(request.get('first',0)); all python:request.get('all', None)">
-
-<p class="form-help">
-This application's transactional feature allows you to easily undo changes
-made to the application's settings or data. You can revert the application
-to a "snapshot" of it's state at a previous point in time.
-</p>
-
-<p class="form-help">
-Select one or more transactions below and then click on the "Undo"
-button to undo those transactions. Note that even though a transaction
-is shown below, you may not be able to undo it if later transactions
-modified objects that were modified by a selected transaction.
-</p>
-
-<span tal:condition="all">
-<p>You are <span tal:replace="request/user/getId">username</span>, looking at all transactions. <a href="?">View only your own transactions</a>.
-<span tal:omit-tag=""
- tal:define="global undoInfo python:view.getUndoInfo(first=first)"/></p>
-</span>
-<span tal:condition="not:all">
-<p>You are <span tal:replace="request/user/getId">username</span>, looking at your own transactions. <a href="?all=yes">View everyone's transactions</a>.
-<span tal:omit-tag=""
- tal:define="global undoInfo python:view.getUndoInfo(first=first, user_name=request.user.getId())"/></p>
-</span>
-
-<p><a tal:attributes="href python:'?first=%s'%(first+20)">View 20 earlier transactions</a></p>
-
-<a name="t_list" />
-
-<table width="100%" cellspacing="0" cellpadding="2" border="0" >
-
- <div tal:repeat="undoitem undoInfo">
- <span tal:condition="repeat/undoitem/odd" ><span tal:define="global rowclass string:content odd"/> </span>
- <span tal:condition="repeat/undoitem/even" ><span tal:define="global rowclass string:content even"/> </span>
-
- <tr tal:attributes="class rowclass">
- <td width="16" align="left" valign="top">
- <input type="checkbox" name="id_list:list" value="-1" tal:attributes="value undoitem/id"/>
- </td>
- <td tal:attributes="class rowclass" align="left" valign="top">
- <div class="list-item">
+ <form action="@@undo.html" method="post"
+ tal:define="first python:int(request.get('first',0));
+ all python:request.get('all', None)">
+
+ <p class="form-help" i18n:translate="">
+ This application's transactional feature allows you to easily undo
+ changes made to the application's settings or data. You can revert the
+ application to a "snapshot" of it's state at a previous point
+ in time.
+ </p>
+
+ <p class="form-help" i18n:translate="">
+ Select one or more transactions below and then click on the
+ "Undo" button to undo those transactions. Note that even
+ though a transaction is shown below, you may not be able to undo it if
+ later transactions modified objects that were modified by a selected
+ transaction.
+ </p>
+
+ <span tal:condition="all">
+ <p i18n:translate="">
+ You are
+ <span tal:replace="request/user/getId"
+ i18n:name="username">username</span>,
+ looking at all transactions. <a href="?">View only your own
+ transactions</a>.
+ </p>
+ <span tal:omit-tag=""
+ tal:define="global undoInfo python:view.getUndoInfo(first=first)"/>
+ </span>
+
+ <span tal:condition="not:all">
+ <p i18n:translate="">You are
+ <span tal:replace="request/user/getId"
+ i18n:name="username">username</span>,
+ looking at your own transactions.
+ <a href="?all=yes">View everyone's transactions</a>.
+ </p>
+ <span tal:omit-tag=""
+ tal:define="global undoInfo python:view.getUndoInfo(first=first,
+ user_name=request.user.getId())"/>
+ </span>
+
+ <p>
+ <a tal:attributes="href python:'?first=%s'%(first+20)"
+ i18n:translate="">View 20 earlier transactions</a>
+ </p>
+
+ <a name="t_list" />
+
+ <table width="100%" cellspacing="0" cellpadding="2" border="0" >
+
+ <div tal:repeat="undoitem undoInfo">
+ <span tal:condition="repeat/undoitem/odd" >
+ <span tal:define="global rowclass string:content odd"/>
+ </span>
+
+ <span tal:condition="repeat/undoitem/even">
+ <span tal:define="global rowclass string:content even"/>
+ </span>
+
+ <tr tal:attributes="class rowclass">
+
+ <td width="16" align="left" valign="top">
+ <input type="checkbox" name="id_list:list" value="-1"
+ tal:attributes="value undoitem/id"/>
+ </td>
+ <td tal:attributes="class rowclass" align="left" valign="top">
+ <div class="list-item">
- <i tal:condition="not:undoitem/description">no description available</i>
- <span tal:condition="undoitem/description" tal:omit-tag=""
- tal:content="undoitem/description">description goes here</span>
- <span tal:condition="undoitem/user_name" tal:omit-tag=""> by
- <strong tal:content="undoitem/user_name">user_name</strong>
- </span>
- </div>
- </td>
-
- <td align="right" valign="top" colspan="2" nowrap>
- <div class="list-item" tal:content="python:undoitem['datetime'].strftime('%Y/%m/%d %H:%M:%S')">
- blah date
- </div>
- </td>
-
- </tr>
-
-
-<!--
-
- <tr class="row-hilite">
- <td width="16" align="left" valign="top">
- <input type="checkbox" name="transaction_info:list"
- value="QTBOekEwdWl6ZmNBQUFBQUV2M0RDdw==
- 2002/03/17 00:23:17.7272 US/Eastern /test_area/chumphries/devis_internal_site/people/addDTMLMethod " />
- </td>
- <td align="left" valign="top">
- <div class="list-item">
- /test_area/chumphries/devis_internal_site/people/addDTMLMethod by <strong> chumphries</strong>
- </div>
- </td>
- <td align="right" valign="top" colspan="2" nowrap>
- <div class="list-item">
- 2002-03-17 12:23:17 AM
- </div>
- </td>
- </tr>
-
- </div>
-
- <tr class="row-normal">
- <td width="16" align="left" valign="top">
- <input type="checkbox" name="transaction_info:list"
- value="QTBOeTQzWURnOVVBQUFBQUV2M0FkUQ==
- 2002/03/16 23:51:27.6595 US/Eastern /test_area/chumphries/devis_internal_site/manage_renameObjects " />
- </td>
- <td align="left" valign="top">
- <div class="list-item">
- /test_area/chumphries/devis_internal_site/manage_renameObjects by <strong> chumphries</strong>
- </div>
- </td>
- <td align="right" valign="top" colspan="2" nowrap>
- <div class="list-item">
- 2002-03-16 11:51:27 PM
- </div>
- </td>
- </tr>
-
--->
-
-
-</div>
-<tr><td><input type="submit" value="Undo" /></td></tr>
-</table>
-</form>
+ <i tal:condition="not:undoitem/description"
+ i18n:translate="">
+ no description available
+ </i>
+ <span tal:condition="undoitem/description" tal:omit-tag=""
+ tal:content="undoitem/description">description goes here</span>
+ <span tal:condition="undoitem/user_name" tal:omit-tag=""
+ i18n:translate=""> by
+ <strong tal:content="undoitem/user_name"
+ i18n:name="username">user_name</strong>
+ </span>
+ </div>
+ </td>
+
+ <td align="right" valign="top" colspan="2" nowrap>
+ <div class="list-item" tal:content="undoitem/datetime">
+ blah date
+ </div>
+ </td>
+
+ </tr>
+ </div>
+
+ <tr>
+ <td>
+ <input type="submit" value="Undo"
+ i18n:attributes="value undo-button"/>
+ </td>
+ </tr>
+ </table>
+ </form>
</div>
</body>
More information about the Zope3-Checkins
mailing list