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

Source Code for Module Products.ZenModel.Report

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