Mercurial > p > roundup > code
annotate frontends/ZRoundup/ZRoundup.py @ 446:ea9a4ca3fb84
Added a Zope frontend for roundup.
| author | Richard Jones <richard@users.sourceforge.net> |
|---|---|
| date | Wed, 12 Dec 2001 23:27:14 +0000 |
| parents | |
| children | 70bdd0cef7e4 |
| rev | line source |
|---|---|
|
446
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
1 # Copyright (c) 2001 Bizar Software Pty Ltd (http://www.bizarsoftware.com.au/) |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
2 # This module is free software, and you may redistribute it and/or modify |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
3 # under the same terms as Python, so long as this copyright message and |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
4 # disclaimer are retained in their original form. |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
5 # |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
6 # IN NO EVENT SHALL BIZAR SOFTWARE PTY LTD BE LIABLE TO ANY PARTY FOR |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
7 # DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
8 # OUT OF THE USE OF THIS CODE, EVEN IF THE AUTHOR HAS BEEN ADVISED OF THE |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
9 # POSSIBILITY OF SUCH DAMAGE. |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
10 # |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
11 # BIZAR SOFTWARE PTY LTD SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
12 # BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
13 # FOR A PARTICULAR PURPOSE. THE CODE PROVIDED HEREUNDER IS ON AN "AS IS" |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
14 # BASIS, AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE, |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
15 # SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
16 # |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
17 # $Id: ZRoundup.py,v 1.1 2001-12-12 23:27:13 richard Exp $ |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
18 # |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
19 ''' ZRoundup module - exposes the roundup web interface to Zope |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
20 ''' |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
21 from Globals import InitializeClass, HTMLFile |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
22 from OFS.SimpleItem import Item |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
23 from OFS.PropertyManager import PropertyManager |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
24 from Acquisition import Implicit |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
25 from Persistence import Persistent |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
26 from AccessControl import ClassSecurityInfo |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
27 from AccessControl import ModuleSecurityInfo |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
28 modulesecurity = ModuleSecurityInfo() |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
29 |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
30 import roundup.instance |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
31 from roundup import cgi_client |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
32 |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
33 modulesecurity.declareProtected('View management screens', 'manage_addZRoundupForm') |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
34 manage_addZRoundupForm = HTMLFile('dtml/manage_addZRoundupForm', globals()) |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
35 |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
36 modulesecurity.declareProtected('Add Z Roundups', 'manage_addZRoundup') |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
37 def manage_addZRoundup(self, id, instance_home, REQUEST): |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
38 """Add a ZRoundup product """ |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
39 # validate the instance_home |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
40 roundup.instance.open(instance_home) |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
41 self._setObject(id, ZRoundup(id, instance_home)) |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
42 return self.manage_main(self, REQUEST) |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
43 |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
44 class RequestWrapper: |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
45 '''Make the Zope RESPONSE look like a BaseHTTPServer |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
46 ''' |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
47 def __init__(self, RESPONSE): |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
48 self.RESPONSE = RESPONSE |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
49 self.wfile = self.RESPONSE |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
50 def send_response(self, status): |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
51 self.RESPONSE.setStatus(status) |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
52 def send_header(self, header, value): |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
53 self.RESPONSE.addHeader(header, value) |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
54 def end_headers(self): |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
55 # not needed - the RESPONSE object handles this internally on write() |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
56 pass |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
57 |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
58 class FormItem: |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
59 '''Make a Zope form item look like a cgi.py one |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
60 ''' |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
61 def __init__(self, value): |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
62 self.value = value |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
63 if hasattr(self.value, 'filename'): |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
64 self.filename = self.value.filename |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
65 self.file = self.value |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
66 |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
67 class FormWrapper: |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
68 '''Make a Zope form dict look like a cgi.py one |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
69 ''' |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
70 def __init__(self, form): |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
71 self.form = form |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
72 def __getitem__(self, item): |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
73 return FormItem(self.form[item]) |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
74 def has_key(self, item): |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
75 return self.form.has_key(item) |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
76 def keys(self): |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
77 return self.form.keys() |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
78 |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
79 class ZRoundup(Item, PropertyManager, Implicit, Persistent): |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
80 '''An instance of this class provides an interface between Zope and roundup for one |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
81 roundup instance |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
82 ''' |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
83 meta_type = 'Z Roundup' |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
84 security = ClassSecurityInfo() |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
85 |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
86 def __init__(self, id, instance_home): |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
87 self.id = id |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
88 self.instance_home = instance_home |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
89 |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
90 # define the properties that define this object |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
91 _properties = ( |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
92 {'id':'id', 'type': 'string', 'mode': 'w'}, |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
93 {'id':'instance_home', 'type': 'string', 'mode': 'w'}, |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
94 ) |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
95 property_extensible_schema__ = 0 |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
96 |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
97 # define the tabs for the management interface |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
98 manage_options= PropertyManager.manage_options + ( |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
99 {'label': 'View', 'action':'index_html'}, |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
100 ) + Item.manage_options |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
101 |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
102 icon = "misc_/ZRoundup/icon" |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
103 |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
104 security.declarePrivate('_opendb') |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
105 def _opendb(self): |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
106 '''Open the roundup instnace database for a transaction |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
107 ''' |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
108 instance = roundup.instance.open(self.instance_home) |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
109 request = RequestWrapper(self.REQUEST['RESPONSE']) |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
110 env = self.REQUEST.environ |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
111 env['INSTANCE_NAME'] = self.id |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
112 if env['REQUEST_METHOD'] == 'GET': |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
113 # force roundup to re-parse the request because Zope fiddles |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
114 # with it and we lose all the :filter, :columns, etc goodness |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
115 form = None |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
116 else: |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
117 form = FormWrapper(self.REQUEST.form) |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
118 return instance.Client(instance, request, env, form) |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
119 |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
120 security.declareProtected('View', 'index_html') |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
121 def index_html(self): |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
122 '''Alias index_html to roundup's index |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
123 ''' |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
124 client = self._opendb() |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
125 # fake the path that roundup should use |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
126 client.split_path = ['index'] |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
127 return client.main() |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
128 |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
129 def __getitem__(self, item): |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
130 '''All other URL accesses are passed throuh to roundup |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
131 ''' |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
132 try: |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
133 client = self._opendb() |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
134 # fake the path that roundup should use |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
135 client.split_path = [item] |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
136 # and call roundup to do something |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
137 client.main() |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
138 return '' |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
139 except cgi_client.NotFound: |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
140 raise 'NotFound', self.REQUEST.URL |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
141 pass |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
142 except: |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
143 import traceback |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
144 traceback.print_exc() |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
145 # all other exceptions in roundup are valid |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
146 raise |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
147 raise KeyError, item |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
148 |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
149 |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
150 InitializeClass(ZRoundup) |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
151 modulesecurity.apply(globals()) |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
152 |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
153 |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
154 # |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
155 # $Log: not supported by cvs2svn $ |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
156 # |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
157 # |
|
ea9a4ca3fb84
Added a Zope frontend for roundup.
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
158 # vim: set filetype=python ts=4 sw=4 et si |
