source: ZMS/trunk/zmsproxyobject.py @ 1557

Revision 1557, 21.0 KB checked in by zmsdev, 11 months ago (diff)

removed old zms artefacts

Line 
1################################################################################
2# zmsproxyobject.py
3#
4# This program is free software; you can redistribute it and/or
5# modify it under the terms of the GNU General Public License
6# as published by the Free Software Foundation; either version 2
7# of the License, or (at your option) any later version.
8#
9# This program is distributed in the hope that it will be useful,
10# but WITHOUT ANY WARRANTY; without even the implied warranty of
11# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12# GNU General Public License for more details.
13#
14# You should have received a copy of the GNU General Public License
15# along with this program; if not, write to the Free Software
16# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
17################################################################################
18
19# Imports.
20from types import StringTypes
21from zope.interface import implements
22# Product Imports.
23import IZMSMetamodelProvider, IZMSFormatProvider
24from zmscontainerobject import ZMSContainerObject
25
26
27################################################################################
28################################################################################
29###
30###  Class
31###
32################################################################################
33################################################################################
34class ZMSProxyObject(ZMSContainerObject):
35    implements(
36      IZMSMetamodelProvider.IZMSMetamodelProvider,
37      IZMSFormatProvider.IZMSFormatProvider)
38
39
40    # --------------------------------------------------------------------------
41    #  ZMSProxyObject.__init__:
42    # --------------------------------------------------------------------------
43    def __init__(self, root, base, url_base, id, proxy, recursive=False):
44      """ Constructor """
45      self.__root__ = root
46      self.base = base
47      self.url_base = url_base
48      self.meta_type = proxy.meta_type
49      self.meta_id = proxy.meta_id
50      self.dGlobalAttrs = proxy.dGlobalAttrs
51      self.REQUEST = proxy.REQUEST
52      self.id = id
53      self.proxy = proxy
54      self.recursive = recursive
55
56
57    # --------------------------------------------------------------------------
58    #  ZMSProxyObject.__proxy__:
59    # --------------------------------------------------------------------------
60    def __proxy__(self):
61      return self
62
63
64    # --------------------------------------------------------------------------
65    #  ZMSProxyObject.getProxy
66    # --------------------------------------------------------------------------
67    def getProxy(self):
68      return self
69
70
71    # --------------------------------------------------------------------------
72    #  ZMSProxyObject.getPhysicalPath
73    # --------------------------------------------------------------------------
74    def getPhysicalPath(self):
75      rtn = list( self.__root__.getPhysicalPath())
76      for id in list( self.base.getPhysicalPath())+[self.id]:
77        if id not in rtn:
78          rtn.append( id)
79      return tuple( rtn)
80
81
82    # --------------------------------------------------------------------------
83    #  ZMSProxyObject.__request__
84    # --------------------------------------------------------------------------
85    def __request__(self, REQUEST):
86      proxy = self.proxy
87      if type( REQUEST) in StringTypes:
88        return proxy.REQUEST
89      return REQUEST
90
91
92    # --------------------------------------------------------------------------
93    #  ZMSProxyObject.absolute_url
94    # --------------------------------------------------------------------------
95    def absolute_url(self, relative=0):
96      url_base = self.url_base
97      rtn = url_base
98      return rtn
99
100
101    # --------------------------------------------------------------------------
102    #  ZMSProxyObject.getMetaobjAttrIds:
103    # --------------------------------------------------------------------------
104    def getMetaobjAttrIds(self, meta_id, types=[]):
105      proxy = self.proxy
106      rtn = proxy.getMetaobjAttrIds( meta_id, types)
107      return rtn
108
109
110    # --------------------------------------------------------------------------
111    #  MetaobjManager.getMetaobjAttr:
112    # --------------------------------------------------------------------------
113    def getMetaobjAttr(self, meta_id, key):
114      proxy = self.proxy
115      rtn = proxy.getMetaobjAttr( meta_id, key)
116      return rtn
117
118
119    # --------------------------------------------------------------------------
120    #  ZMSProxyObject.getConfProperty
121    # --------------------------------------------------------------------------
122    def getConfProperty(self, key, default=None):
123      proxy = self.proxy
124      rtn = proxy.getConfProperty( key, default)
125      return rtn
126
127
128    # --------------------------------------------------------------------------
129    #  ZMSProxyObject.getObjAttrs
130    # --------------------------------------------------------------------------
131    def getObjAttrs(self, meta_type=None):
132      proxy = self.proxy
133      rtn = proxy.getObjAttrs( meta_type)
134      return rtn
135     
136     
137    # --------------------------------------------------------------------------
138    #  ZMSProxyObject._getObjAttrValue
139    # --------------------------------------------------------------------------
140    def _getObjAttrValue(self, obj_attr, obj_vers, lang):
141      proxy = self.proxy
142      rtn = proxy._getObjAttrValue( obj_attr, obj_vers, lang)
143      return rtn
144
145
146    # --------------------------------------------------------------------------
147    #  ZMSProxyObject.getObjAttrValue
148    # --------------------------------------------------------------------------
149    def getObjAttrValue(self, obj_attr, REQUEST):
150      proxy = self.proxy
151      req = self.__request__( REQUEST)
152      rtn = proxy.getObjAttrValue( obj_attr, req)
153      return rtn
154
155
156    # --------------------------------------------------------------------------
157    #  ZMSProxyObject.getDocumentElement
158    # --------------------------------------------------------------------------
159    def getDocumentElement(self):
160      base = self.base
161      rtn = base.getDocumentElement( )
162      return rtn
163
164
165    # --------------------------------------------------------------------------
166    #  ZMSProxyObject.getHome
167    # --------------------------------------------------------------------------
168    def getHome(self):
169      base = self.base
170      rtn = base.getHome( )
171      return rtn
172
173
174    # --------------------------------------------------------------------------
175    #  ZMSProxyObject.getDCCoverage
176    # --------------------------------------------------------------------------
177    def getDCCoverage(self, REQUEST={}):
178      proxy = self.proxy
179      rtn = proxy.getDCCoverage( REQUEST)
180      return rtn
181
182
183    # --------------------------------------------------------------------------
184    #  ZMSProxyObject.getDCType
185    # --------------------------------------------------------------------------
186    def getDCType(self, REQUEST):
187      proxy = self.proxy
188      rtn = proxy.getDCType( REQUEST)
189      return rtn
190
191
192    # --------------------------------------------------------------------------
193    #  ZMSProxyObject.getDCDescription
194    # --------------------------------------------------------------------------
195    def getDCDescription(self, REQUEST):
196      proxy = self.proxy
197      rtn = proxy.getDCDescription( REQUEST)
198      return rtn
199
200
201    # --------------------------------------------------------------------------
202    #  ZMSProxyObject.getUserAttr:
203    #
204    #  Overrides AccessManager.getUserAttr.
205    # --------------------------------------------------------------------------
206    def getUserAttr(self, user, name, default, flag=0):
207      proxy = self.proxy
208      rtn = proxy.getUserAttr( user, name, default, flag)
209      return rtn
210
211
212    # --------------------------------------------------------------------------
213    #  ZMSProxyObject.getPageExt
214    # --------------------------------------------------------------------------
215    def getPageExt(self, REQUEST):
216      proxy = self.proxy
217      req = self.__request__( REQUEST)
218      rtn = proxy.getPageExt( req)
219      return rtn
220
221
222    # --------------------------------------------------------------------------
223    #  ZMSProxyObject.getTitle
224    # --------------------------------------------------------------------------
225    def getTitle(self, REQUEST):
226      proxy = self.proxy
227      req = self.__request__( REQUEST)
228      rtn = proxy.getTitle( req)
229      return rtn
230
231
232    # --------------------------------------------------------------------------
233    #  ZMSProxyObject.getTitlealt:
234    # --------------------------------------------------------------------------
235    def getTitlealt(self, REQUEST):
236      proxy = self.proxy
237      req = self.__request__( REQUEST)
238      rtn = proxy.getTitlealt( req)
239      return rtn
240
241
242    # --------------------------------------------------------------------------
243    #  ZMSProxyObject.getPenetrance:
244    # --------------------------------------------------------------------------
245    def getPenetrance(self, REQUEST):
246      proxy = self.proxy
247      req = self.__request__( REQUEST)
248      rtn = proxy.getPenetrance( req)
249      return rtn
250
251
252    # --------------------------------------------------------------------------
253    #  ZMSProxyObject.getChildNodes:
254    # --------------------------------------------------------------------------
255    def getChildNodes(self, REQUEST={}, meta_types=None, reid=None):
256      rtn = []
257      recursive = self.recursive
258      if recursive:
259        proxy = self.proxy
260        req = self.__request__( REQUEST)
261        if hasattr( proxy, 'getChildNodesPROXY'):
262          rtn = map( lambda x: ZMSProxyObject( self.__root__, self, self.absolute_url()+'/'+x.id, x.id, x, recursive), proxy.getChildNodesPROXY( proxy, req, meta_types, reid))
263        else:
264          rtn = map( lambda x: ZMSProxyObject( self.__root__, self, self.absolute_url()+'/'+x.id, x.id, x, recursive), proxy.getChildNodes( req, meta_types, reid))
265      return rtn
266
267
268    # --------------------------------------------------------------------------
269    #  ZMSProxyObject.getSecNo
270    # --------------------------------------------------------------------------
271    def getSecNo(self):
272      proxy = self.proxy
273      rtn = proxy.getSecNo( )
274      return rtn
275
276
277    # --------------------------------------------------------------------------
278    #  ZMSProxyObject.getLevel
279    # --------------------------------------------------------------------------
280    def getLevel(self):
281      proxy = self.proxy
282      base = self.base
283      rtn = base.getLevel( ) + 1
284      recursive = self.recursive
285      if proxy is not None and proxy is ZMSProxyObject:
286        if hasattr( proxy, 'getLevelPROXY'):
287          rtn = proxy.getLevelPROXY( proxy)
288        else:
289          rtn = proxy.getLevel()
290      return rtn
291
292
293    # --------------------------------------------------------------------------
294    #  ZMSProxyObject.getObjProperty
295    # --------------------------------------------------------------------------
296    def getObjProperty(self, key, REQUEST={}, default=None):
297      proxy = self.proxy
298      req = self.__request__( REQUEST)
299      if hasattr( proxy, 'getObjPropertyPROXY'):
300        rtn = proxy.getObjPropertyPROXY( proxy, key, req, default)
301      else:
302        rtn = proxy.getObjProperty( key, req, default)
303      return rtn
304
305
306    # --------------------------------------------------------------------------
307    #  ZMSProxyObject.getParentNode
308    # --------------------------------------------------------------------------
309    getParentNode__roles__ = None
310    def getParentNode(self):
311      """
312      The parent of this node.
313      All nodes except root may have a parent.
314      """
315      rtn = self.base
316      return rtn
317
318
319    # --------------------------------------------------------------------------
320    #  ZMSProxyObject.getType
321    # --------------------------------------------------------------------------
322    def getType(self):
323      proxy = self.proxy
324      rtn = proxy.getType()
325      return rtn
326
327
328    # --------------------------------------------------------------------------
329    #  ZMSProxyObject.isActive
330    # --------------------------------------------------------------------------
331    def isActive(self, REQUEST):
332      proxy = self.proxy
333      rtn = proxy.isActive( REQUEST)
334      return rtn
335
336
337    # --------------------------------------------------------------------------
338    #  ZMSProxyObject.isMetaType:
339    # --------------------------------------------------------------------------
340    def isMetaType(self, meta_type, REQUEST={'preview':'preview'}):
341      proxy = self.proxy
342      req = self.__request__( REQUEST)
343      rtn = proxy.isMetaType( meta_type, req)
344      return rtn
345
346
347    # --------------------------------------------------------------------------
348    #  ZMSProxyObject.isResource:
349    # --------------------------------------------------------------------------
350    def isResource(self, REQUEST):
351      proxy = self.proxy
352      req = self.__request__( REQUEST)
353      rtn = proxy.isResource( req)
354      return rtn
355
356
357    # --------------------------------------------------------------------------
358    #  ZMSProxyObject.isPage:
359    # --------------------------------------------------------------------------
360    def isPage(self):
361      proxy = self.proxy
362      rtn = proxy.isPage( )
363      return rtn
364
365
366    # --------------------------------------------------------------------------
367    #  ZMSProxyObject.isPageElement:
368    # --------------------------------------------------------------------------
369    def isPageElement(self):
370      proxy = self.proxy
371      rtn = proxy.isPageElement( )
372      return rtn
373
374
375    # --------------------------------------------------------------------------
376    #  ZMSProxyObject.isVisible:
377    # --------------------------------------------------------------------------
378    def isVisible(self, REQUEST):
379      proxy = self.proxy
380      req = self.__request__( REQUEST)
381      rtn = proxy.isVisible( req)
382      return rtn
383
384
385    # --------------------------------------------------------------------------
386    #  ZMSProxyObject._getBodyContent:
387    # --------------------------------------------------------------------------
388    def _getBodyContent(self, REQUEST):
389      proxy = self.proxy
390      req = self.__request__( REQUEST)
391      rtn = proxy._getBodyContent( req)
392      return rtn
393
394    def getBodyContent(self, REQUEST, forced=False):
395      """
396      HTML presentation in body-content.
397      """
398      proxy = self.proxy
399      req = self.__request__( REQUEST)
400      rtn = proxy.getBodyContent( req)
401      return rtn
402
403
404    # --------------------------------------------------------------------------
405    #  ZMSProxyObject.display_icon:
406    # --------------------------------------------------------------------------
407    def display_icon(self, REQUEST, meta_type=None, key='icon'):
408      proxy = self.proxy
409      req = self.__request__( REQUEST)
410      rtn = proxy.display_icon( req, meta_type, key)
411      return rtn
412
413
414    # --------------------------------------------------------------------------
415    #  ZMSProxyObject.getLangIds:
416    # --------------------------------------------------------------------------
417    def getLangIds(self, sort=1):
418      proxy = self.proxy
419      rtn = proxy.getLangIds( sort)
420      return rtn
421
422
423    # --------------------------------------------------------------------------
424    #   ZMSProxyObject.get_manage_lang:
425    # --------------------------------------------------------------------------
426    def get_manage_lang(self):
427      proxy = self.proxy
428      rtn = proxy.get_manage_lang( )
429      return rtn
430
431
432    # --------------------------------------------------------------------------
433    #   ZMSProxyObject.getZMILangStr:
434    # --------------------------------------------------------------------------
435    def getZMILangStr(self, key):
436      proxy = self.proxy
437      rtn = proxy.getZMILangStr( key)
438      return rtn
439
440
441    # --------------------------------------------------------------------------
442    #  ZMSProxyObject.getLangStr:
443    # --------------------------------------------------------------------------
444    def getLangStr(self, key, lang=None):
445      proxy = self.proxy
446      rtn = proxy.getLangStr( key, lang)
447      return rtn
448
449
450    # --------------------------------------------------------------------------
451    #  ZMSProxyObject.getPrimaryLanguage:
452    # --------------------------------------------------------------------------
453    def getPrimaryLanguage(self):
454      proxy = self.proxy
455      rtn = proxy.getPrimaryLanguage()
456      return rtn
457   
458
459    # --------------------------------------------------------------------------
460    #  ZMSProxyObject.hasAccess:
461    # --------------------------------------------------------------------------
462    def hasAccess(self, REQUEST):
463      proxy = self.proxy
464      req = self.__request__( REQUEST)
465      rtn = proxy.hasAccess( req)
466      return rtn
467
468
469    # --------------------------------------------------------------------------
470    #  ZMSProxyObject.getObjVersion:
471    # --------------------------------------------------------------------------
472    def getObjVersion(self, REQUEST={}):
473      proxy = self.proxy
474      req = self.__request__( REQUEST)
475      rtn = proxy.getObjVersion( req)
476      return rtn
477
478
479    # --------------------------------------------------------------------------
480    #  ZMSProxyObject.breadcrumbs_obj_path:
481    # --------------------------------------------------------------------------
482    def breadcrumbs_obj_path(self, portalMaster=True):
483      proxy = self.proxy
484      base = self.base
485      rtn = base.breadcrumbs_obj_path( ) + [ self]
486      recursive = self.recursive
487      if proxy is not None and proxy is ZMSProxyObject:
488        if hasattr( proxy, 'breadcrumbs_obj_pathPROXY'):
489          rtn = proxy.breadcrumbs_obj_pathPROXY( proxy, portalMaster)
490        else:
491          rtn = proxy.breadcrumbs_obj_path(portalMaster)
492      return rtn
493
494
495    # --------------------------------------------------------------------------
496    #  ZMSProxyObject.getDeclUrl:
497    # --------------------------------------------------------------------------
498    def getDeclUrl(self, REQUEST={}):
499      if self.getConfProperty('ZMS.pathhandler',0) == 0:
500        rtn = self.absolute_url()
501      else:
502        base = self.base
503        req = self.__request__( REQUEST)
504        rtn = base.getDeclUrl( req)
505        rtn += '/' + self.getDeclId( req)
506      return rtn
507
508
509    # --------------------------------------------------------------------------
510    #  ZMSProxyObject.getHref2IndexHtml:
511    # --------------------------------------------------------------------------
512    def getHref2IndexHtml(self, REQUEST, deep=1):
513      proxy = self.proxy
514      rtn = ZMSContainerObject.getHref2IndexHtml( self, REQUEST, deep)
515      return rtn
516
517
518    # --------------------------------------------------------------------------
519    #  ZMSProxyObject.getStylesheet:
520    # --------------------------------------------------------------------------
521    def getStylesheet(self, id=None):
522      base = self.base
523      rtn = base.getStylesheet( id)
524      return rtn
525
526
527    # --------------------------------------------------------------------------
528    #  ZMSProxyObject.printHtml:
529    # --------------------------------------------------------------------------
530    def printHtml(self, level, sectionizer, REQUEST, deep=True):
531      proxy = self.proxy
532      rtn = proxy.printHtml( level, sectionizer, REQUEST, deep)
533      return rtn
534
535
536    ############################################################################
537    ###
538    ###   Interface IZMSMetamodelProvider: delegate to proxy
539    ###
540    ############################################################################
541
542    def getMetaobjId(self, name):
543      return self.proxy.getMetaobjId( name)
544
545    def getMetaobjIds(self, sort=1, excl_ids=[]):
546      return self.proxy.getMetaobjIds( sort, excl_ids)
547
548    def getMetaobj(self, id):
549      return self.proxy.getMetaobj( id)
550
551    def getMetaobjAttrIds(self, meta_id, types=[]):
552      return self.proxy.getMetaobjAttrIds( meta_id, types)
553
554    def getMetaobjAttr(self, meta_id, key):
555      return self.proxy.getMetaobjAttr( meta_id, key)
556
557
558    ############################################################################
559    ###
560    ###   Interface IZMSFormatProvider: delegate to proxy
561    ###
562    ############################################################################
563
564    def getTextFormatDefault(self):
565      return self.proxy.getTextFormatDefault()
566
567    def getTextFormat(self, id, REQUEST):
568      return self.proxy.getTextFormat(id, REQUEST)
569
570    def getTextFormats(self, REQUEST):
571      return self.proxy.getTextFormats(REQUEST)
572
573    def getCharFormats(self):
574      return self.proxy.getCharFormats()
575
576################################################################################
Note: See TracBrowser for help on using the repository browser.