commit-gnue
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

gnue/reports/src GRLayout.py GRParameters.py GR...


From: Jason Cater
Subject: gnue/reports/src GRLayout.py GRParameters.py GR...
Date: Thu, 04 Apr 2002 00:55:38 -0500

CVSROOT:        /home/cvs
Module name:    gnue
Changes by:     Jason Cater <address@hidden>    02/04/04 00:55:37

Modified files:
        reports/src    : GRLayout.py GRParameters.py GRParser.py 
                         GRReport.py 

Log message:
        improved support in reports for user-supplied parameters

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/reports/src/GRLayout.py.diff?cvsroot=OldCVS&tr1=1.13&tr2=1.14&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/reports/src/GRParameters.py.diff?cvsroot=OldCVS&tr1=1.5&tr2=1.6&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/reports/src/GRParser.py.diff?cvsroot=OldCVS&tr1=1.18&tr2=1.19&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/reports/src/GRReport.py.diff?cvsroot=OldCVS&tr1=1.17&tr2=1.18&r1=text&r2=text

Patches:
Index: gnue/reports/src/GRLayout.py
diff -c gnue/reports/src/GRLayout.py:1.13 gnue/reports/src/GRLayout.py:1.14
*** gnue/reports/src/GRLayout.py:1.13   Mon Mar 25 23:34:07 2002
--- gnue/reports/src/GRLayout.py        Thu Apr  4 00:55:37 2002
***************
*** 30,35 ****
--- 30,36 ----
  
  from gnue.common.GObjects import *
  from gnue.common import GDebug, GConditions
+ from GRParameters import GRStubParam
  import GRExceptions
  import string
  
***************
*** 404,409 ****
--- 405,422 ----
      dest.write (self._mymapper.getSummary(self.name, self.function, 
self.format))
      structuralComment(dest,"<!--[/summ:%s]-->" % self.name)
  
+ 
+ 
+ ############################################################
+ #
+ # Parameters
+ #
+ class GRParam(GRLayoutElement, GRStubParam):
+   _typestub = 'GRParam'
+ 
+   def __init__(self, parent):
+     GRLayoutElement.__init__(self, *args, **parms)
+     GRStubParam.__init__(self, *args, **parms)
  
  
  
Index: gnue/reports/src/GRParameters.py
diff -c gnue/reports/src/GRParameters.py:1.5 
gnue/reports/src/GRParameters.py:1.6
*** gnue/reports/src/GRParameters.py:1.5        Mon Mar 25 23:34:07 2002
--- gnue/reports/src/GRParameters.py    Thu Apr  4 00:55:37 2002
***************
*** 1,19 ****
  #
  # This file is part of GNU Enterprise.
  #
! # GNU Enterprise is free software; you can redistribute it 
! # and/or modify it under the terms of the GNU General Public 
! # License as published by the Free Software Foundation; either 
  # version 2, or (at your option) any later version.
  #
! # GNU Enterprise is distributed in the hope that it will be 
! # useful, but WITHOUT ANY WARRANTY; without even the implied 
! # warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
  # PURPOSE. See the GNU General Public License for more details.
  #
! # You should have received a copy of the GNU General Public 
! # License along with program; see the file COPYING. If not, 
! # write to the Free Software Foundation, Inc., 59 Temple Place 
  # - Suite 330, Boston, MA 02111-1307, USA.
  #
  # Copyright 2000-2002 Free Software Foundation
--- 1,19 ----
  #
  # This file is part of GNU Enterprise.
  #
! # GNU Enterprise is free software; you can redistribute it
! # and/or modify it under the terms of the GNU General Public
! # License as published by the Free Software Foundation; either
  # version 2, or (at your option) any later version.
  #
! # GNU Enterprise is distributed in the hope that it will be
! # useful, but WITHOUT ANY WARRANTY; without even the implied
! # warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
  # PURPOSE. See the GNU General Public License for more details.
  #
! # You should have received a copy of the GNU General Public
! # License along with program; see the file COPYING. If not,
! # write to the Free Software Foundation, Inc., 59 Temple Place
  # - Suite 330, Boston, MA 02111-1307, USA.
  #
  # Copyright 2000-2002 Free Software Foundation
***************
*** 22,93 ****
  # GRParameters.py
  #
  # DESCRIPTION:
! # Class 
  #
  # NOTES:
  #
- # HISTORY:
- #
  
  from gnue.common.GObjects import *
  import string
  
! class GRParameters (GObj): 
!   def __init__ (self, parent): 
!     GObj.__init__(self, parent, type='GRParameters') 
      self._parameters = {}
  
!   # 
    # Set the parameters actually supplied by the user
    #
!   def setUserParameters(self, parameters): 
!     if parameters == None: 
        self._parameters = {}
!     else: 
!       self._parameters = parameters
  
    #
    # Get a user parameter. If parameter not specified, pull default value
    #
!   def getParameter(self, parameter): 
!     if self._parameters.has_key(string.lower(parameter)): 
!       return self._paramters[string.lower(parameter)]
!     else: 
        rv = None
!       for child in children: 
!         if string.lower(child.id) == string.lower(parameter):
            rv = child.default
      return rv
!     
    #
!   # Return an xml markup of the user supplied or default  
    # parameters used to run the current report
    #
!   def getRunOptionsAsXML(self): 
      from xml.sax import saxutils
  
      xml = ""
      parameters = {}
  
!     for child in self._children: 
!       if child.default != None: 
!         parameters[string.lower(child.id)] = child.default
! 
!     for param in self._parameters.keys(): 
!       parameters[string.lower(param)] = self._parameters[param]
  
  
!     for param in parameters.keys(): 
!       xml = xml + '    <GNUe-request-parameter 
id="%s">%s</GNUe-request-parameter>\n' % \
              (param, saxutils.escape(parameters[param]))
  
      return xml
  
! 
! class GRParameter (GObj): 
!   def __init__ (self, parent): 
!     GObj.__init__(self, parent, type='GRParameter') 
!     self.id = ""
      self.required = 0
      self.default = None
  
--- 22,144 ----
  # GRParameters.py
  #
  # DESCRIPTION:
! # Class
  #
  # NOTES:
  #
  
  from gnue.common.GObjects import *
+ from gnue.common import GConditions
  import string
  
! #
! #
! #
! class GRParameters (GObj):
!   def __init__ (self, parent):
!     GObj.__init__(self, parent, type='GRParameters')
      self._parameters = {}
  
!   #
    # Set the parameters actually supplied by the user
    #
!   def setUserParameters(self, parameters):
!     if parameters == None:
        self._parameters = {}
!     else:
!       for key in parameters.keys():
!         self._parameters[string.lower(key)] = parameters[key]
  
    #
    # Get a user parameter. If parameter not specified, pull default value
    #
!   def getParameter(self, parameter):
!     param = string.lower(parameter)
!     try:
!       return self._parameters[param]
!     except KeyError:
        rv = None
!       for child in self._children:
!         if child._name == param:
            rv = child.default
+           self._parameters[param] = rv
+           break
      return rv
! 
    #
!   # Return an xml markup of the user supplied or default
    # parameters used to run the current report
    #
!   def getRunOptionsAsXML(self):
      from xml.sax import saxutils
  
      xml = ""
      parameters = {}
  
!     for child in self._children:
!       if child.default != None:
!         parameters[child._name] = child.default
  
+     parameters.update(self._parameters)
  
!     for param in parameters.keys():
!       xml += '    <GNUe-request-parameter 
name="%s">%s</GNUe-request-parameter>\n' % \
              (param, saxutils.escape(parameters[param]))
  
      return xml
  
! #
! #
! #
! class GRParameter (GObj):
!   def __init__ (self, parent):
!     GObj.__init__(self, parent, type='GRParameter')
!     self.name = ""
      self.required = 0
      self.default = None
  
+   def _buildObject(self):
+     self._name = string.lower(self.id)
+     return GObj._buildObject(self)
+ 
+ 
+   def __init__(self, parent, type):
+     GObj.__init(self, parent, type='GRStubParam')
+ 
+ 
+ #
+ #
+ #
+ class GRStubParam(GConditions.GCParam):
+ 
+   def __init__(self, *args, **parms):
+     GConditions.GCParam.__init__(self, *args, **parms)
+     self._inits.append(self.initialize)
+     self._type = self._typestub
+ 
+   def initialize(self):
+     self._parameters = self.findParentOfType('GRReport')._parameters
+ 
+   def getValue(self):
+     val = self._parameters.getParameter(self.name)
+     if val is None:
+       return ""
+     elif self.type = 'number':
+       return float(val)
+     else:
+       return "%s" % val
+ 
+   def getFormattedValue(self):
+     # TODO: Format masks
+     val = self._parameters.getParameter(self.name)
+     if val is None:
+       return ""
+     else:
+       return "%s" % val
+ 
+ 
+ #
+ # Used by datasource conditionals
+ #
+ class GRConditionParam(GRStubParam):
+   _typestub = 'GRCParam'
Index: gnue/reports/src/GRParser.py
diff -c gnue/reports/src/GRParser.py:1.18 gnue/reports/src/GRParser.py:1.19
*** gnue/reports/src/GRParser.py:1.18   Wed Apr  3 18:52:54 2002
--- gnue/reports/src/GRParser.py        Thu Apr  4 00:55:37 2002
***************
*** 89,95 ****
        'parameter':    {
           'BaseClass': GRParameters.GRParameter,
           'Attributes': {
!             'id':          {
                 'Required': 1,
                 'Unique': 1,
                 'Typecast': GTypecast.name },
--- 89,95 ----
        'parameter':    {
           'BaseClass': GRParameters.GRParameter,
           'Attributes': {
!             'name':          {
                 'Required': 1,
                 'Unique': 1,
                 'Typecast': GTypecast.name },
***************
*** 167,173 ****
           'BaseClass': GRLayout.GRDefault,
           'MixedContent': 1,
           'KeepWhitespace': 1,
!          'ParentTags':  ('layout',) },
  
        'field':        {
           'BaseClass': GRLayout.GRField,
--- 167,179 ----
           'BaseClass': GRLayout.GRDefault,
           'MixedContent': 1,
           'KeepWhitespace': 1,
!          'ParentTags':  ('section',) },
! 
!       'default':      {
!          'BaseClass': GRLayout.GRDefault,
!          'MixedContent': 1,
!          'KeepWhitespace': 1,
!          'ParentTags':  ('section',) },
  
        'field':        {
           'BaseClass': GRLayout.GRField,
***************
*** 179,185 ****
                 'Typecast': GTypecast.name },
              'format':      {
                 'Typecast': GTypecast.name } },
!          'ParentTags':  ('layout',) },
  
        'summ':         {
           'BaseClass': GRLayout.GRSumm,
--- 185,191 ----
                 'Typecast': GTypecast.name },
              'format':      {
                 'Typecast': GTypecast.name } },
!          'ParentTags':  ('section',) },
  
        'summ':         {
           'BaseClass': GRLayout.GRSumm,
***************
*** 199,204 ****
--- 205,220 ----
                 'Typecast': GTypecast.name } },
           'ParentTags':  ('layout',) },
  
+       'param':         {
+          'BaseClass': GRLayout.GRParam,
+          'Attributes': {
+             'name':        {
+                'Required': 1,
+                'Typecast': GTypecast.name },
+             'format':      {
+                'Typecast': GTypecast.name } },
+          'ParentTags':  ('layout',) },
+ 
        'sources':      {
           'BaseClass': GRSources.GRSources,
           'SingleInstance': 1,
***************
*** 212,219 ****
         GDataSource.getXMLelements(
            {'datasource':   {
                 'BaseClass': GRSources.GRDataSource,
!                'ParentTags':  ('sources',) }
            }))
  
  
    return xmlElements
--- 228,238 ----
         GDataSource.getXMLelements(
            {'datasource':   {
                 'BaseClass': GRSources.GRDataSource,
!                'ParentTags':  ('sources',) },
!            'cparam': {
!                'BaseClass': GRParameters.GRConditionParam }
            }))
+ 
  
  
    return xmlElements
Index: gnue/reports/src/GRReport.py
diff -c gnue/reports/src/GRReport.py:1.17 gnue/reports/src/GRReport.py:1.18
*** gnue/reports/src/GRReport.py:1.17   Mon Mar 25 23:34:07 2002
--- gnue/reports/src/GRReport.py        Thu Apr  4 00:55:37 2002
***************
*** 83,88 ****
--- 83,90 ----
      sources =     self.getChildOfType('GRSources')
      layout =      self.getChildOfType('GRLayout')
  
+     # For use by the child parameter types
+     self._parameters = parameters
  
      #
      # Raise exceptions if _sources or _parameters is None
***************
*** 108,114 ****
      layout.prepare(mapper, parameters)
  
      # Write common header information
!     if not omitGNUeXML: 
        dest.write ('<?xml version="1.0"?>\n')
        dest.write ("<GNUe-report-output>\n")
        dest.write ("  <GNUe-report-request>\n")
--- 110,116 ----
      layout.prepare(mapper, parameters)
  
      # Write common header information
!     if not omitGNUeXML:
        dest.write ('<?xml version="1.0"?>\n')
        dest.write ("<GNUe-report-output>\n")
        dest.write ("  <GNUe-report-request>\n")
***************
*** 118,124 ****
  
      layout.process(dest, includeStructuralComments)
  
!     if not omitGNUeXML: 
        dest.write ("\n</GNUe-report-output>\n")
  
  
--- 120,126 ----
  
      layout.process(dest, includeStructuralComments)
  
!     if not omitGNUeXML:
        dest.write ("\n</GNUe-report-output>\n")
  
  



reply via email to

[Prev in Thread] Current Thread [Next in Thread]