Package Products :: Package ZenModel :: Module Report
[hide private]
[frames] | no frames]

Source Code for Module Products.ZenModel.Report

  1  ############################################################################## 
  2  #  
  3  # Copyright (C) Zenoss, Inc. 2007, all rights reserved. 
  4  #  
  5  # This content is made available according to terms specified in 
  6  # License.zenoss under the directory where your Zenoss product is installed. 
  7  #  
  8  ############################################################################## 
  9   
 10   
 11  __doc__="""Report 
 12   
 13  Report represents a report definition loaded from an .rpt file 
 14   
 15  $Id: Report.py,v 1.3 2004/04/06 02:19:04 edahl Exp $""" 
 16   
 17  __version__ = "$Revision: 1.3 $"[11:-2] 
 18   
 19  from urllib import quote 
 20   
 21  from Globals import InitializeClass 
 22  from AccessControl import ClassSecurityInfo 
 23   
 24  from Products.PageTemplates.ZopePageTemplate import ZopePageTemplate 
 25  from Products.PageTemplates.PageTemplateFile import PageTemplateFile 
 26   
 27  from ZenModelRM import ZenModelRM 
 28  from ZenPackable import ZenPackable 
 29  from Products.ZenModel.BaseReport import BaseReport 
 30  from Products.ZenMessaging.audit import audit 
 31  from Products.ZenUtils.Utils import getDisplayType 
 32  from Products.ZenUtils.deprecated import deprecated 
33 34 @deprecated 35 -def manage_addReport(context, id, title = None, text=None, 36 REQUEST = None, submit=None):
37 """make a Report""" 38 id = str(id) 39 if REQUEST is None: 40 context._setObject(id, Report(id, text)) 41 ob = getattr(context, id) 42 if title: 43 ob.pt_setTitle(title) 44 return ob 45 else: 46 file = REQUEST.form.get('file') 47 headers = getattr(file, 'headers', None) 48 if headers is None or not file.filename: 49 zpt = Report(id) 50 else: 51 zpt = Report(id, file, headers.get('content_type')) 52 53 context._setObject(id, zpt) 54 55 audit('UI.Report.Add', zpt.id, title=title, text=text, reportType=getDisplayType(zpt), organizer=context) 56 57 try: 58 u = context.DestinationURL() 59 except AttributeError: 60 u = REQUEST['URL1'] 61 62 if submit == " Add and Edit ": 63 u = "%s/%s" % (u, quote(id)) 64 REQUEST.RESPONSE.redirect(u+'/manage_main') 65 return ''
66 67 68 addReport = PageTemplateFile('www/reportAdd', globals(), 69 __name__='addReport')
70 71 72 -class Report(BaseReport, ZenPackable):
73 """Report object""" 74 75 __pychecker__ = 'no-override' 76 77 meta_type = 'Report' 78 79 # this is deprecated don't use!!! 80 description = "" 81 82 security = ClassSecurityInfo() 83 84 _relations = ZenPackable._relations 85
86 - def __init__(self, id, title = None, text=None, content_type='text/html'):
87 ZenModelRM.__init__(self, id); 88 self._template = ZopePageTemplate(id, text, content_type) 89 self.title = title
90
91 - def __call__(self, *args, **kwargs):
92 """Return our rendered template not our default page 93 """ 94 if not 'args' in kwargs: 95 kwargs['args'] = args 96 template = self._template.__of__(self) 97 path_info = template.REQUEST['PATH_INFO'].replace(' ', '%20') 98 if (path_info.startswith('/zport/dmd/Reports') and 99 path_info not in template.REQUEST['HTTP_REFERER'] and 100 'adapt=false' not in template.REQUEST['QUERY_STRING']): 101 url = '/zport/dmd/reports#reporttree:' 102 url += path_info.replace('/', '.') 103 template.REQUEST['RESPONSE'].redirect(url) 104 self.auditRunReport() 105 return template.pt_render(extra_context={'options': kwargs})
106 107
108 - def ZScriptHTML_tryForm(self, *args, **kwargs):
109 """Test form called from ZMI test tab 110 """ 111 return self.__call__(self, args, kwargs)
112 113
114 - def manage_main(self):
115 """Return the ZMI edit page of our template not ourself 116 """ 117 template = self._template.__of__(self) 118 return template.pt_editForm()
119 pt_editForm = manage_main 120 121
122 - def pt_editAction(self, REQUEST, title, text, content_type, expand):
123 """Send changes to our template instead of ourself""" 124 template = self._template.__of__(self) 125 return template.pt_editAction(REQUEST, 126 title, text, content_type, expand)
127 128 129 InitializeClass(Report) 130