示例#1
0
 def __init__(self, id):
     self.id = id
     self.dat = PersistentMapping()  # automatical Persictence of Dictionary
     self.dat.update({
         'title': None,
         'graphname': None,
         'gridlines': None,
         'height': None,
         'width': None,
         'data': TALESMethod(None),
         'legend': TALESMethod(None),
         'colnames': TALESMethod(None),
         'stylesheet': None,
         'convertername': None,
         'fixcolumn': None,
         'specialattrib': None,
         'intcaption': None,
         'fillgaps': None,
         'taltitle': TALESMethod(None),
     })
     self.current_version = self.version  # set at creation & update
示例#2
0
    def _update(self):
        """Update older versions."""
        try:
            version = self.current_version
        except AttributeError:
            # from 0.1a3 --> 0.1a4
            if self.dat['graphname'] == 'Einfaches Balkendiagramm' or \
                   self.dat['graphname'] == 'Zweifaches Balkendiagramm':
                self.dat['graphname'] = 'simple bar diagram'
            elif self.dat['graphname'] == 'Einfaches Liniendiagramm':
                self.dat['graphname'] = 'simple line diagram'
            elif self.dat['graphname'] == 'Gespiegeltes Liniendiagramm':
                self.dat['graphname'] = 'mirrored line diagram'
            elif self.dat['graphname'] == 'Einfaches Säulendiagramm':
                self.dat['graphname'] = 'simple column diagram'

            # from 0.1a4 --> 0.15
            self.current_version = '0.15'
            if self.dat['convertername'] == 'Z SQL Method to RowGraph':
                self.dat['convertername'] = 'ZSQL (Data in Columns) to y-Axis'
            elif self.dat['convertername'] == 'Z SQL Method to Graph':
                self.dat['convertername'] = 'ZSQL (Data in Columns) to x-Axis'
        if self.current_version == '0.15':
            self.current_version = '0.16'
            # nothing else to do
        if self.current_version < '0.19':
            self.rnd = random.Random()
            self.current_version = '0.19'
        if self.current_version < '0.20':
            self.dat['intcaption'] = None
            self.dat['fillgaps'] = None
            self.current_version = '0.20'
        if self.current_version < '0.21':
            self.dat['taltitle'] = TALESMethod(None)
            self.current_version = '0.21'
        if self.current_version < '0.22':
            #print "deleting rnd"
            del self.rnd
            self.current_version = '0.22'
        if self.current_version < '0.23':
            # set self.current_version to new version
            pass
示例#3
0
 def colnames(self, default=None):
     "get colnames."
     return self.getAttribute('colnames', TALESMethod(None), default)
示例#4
0
 def legend(self, default=None):
     "get legend."
     return self.getAttribute('legend', TALESMethod(None), default)
示例#5
0
 def data(self, default=None):
     "get data."
     return self.getAttribute('data', TALESMethod(None), default)
示例#6
0
 def taltitle(self, default=None):
     "get taltitle."
     return self.getAttribute('taltitle', TALESMethod(None), default)
示例#7
0
    def changeProperties(self, REQUEST=None, encoding='iso-8859-1', **kw):
        if REQUEST is None:
            REQUEST = kw
        if REQUEST == {}:
            return

        d = 'graphname'
        req = REQUEST.get(d, None)
        if not req or req == _useDefaultDiagramKind:
            self.dat[d] = None
        else:
            self.dat[d] = req

        d = 'convertername'
        req = REQUEST.get(d, None)
        if not req or req == _useDefaultConverter:
            self.dat[d] = None
        else:
            self.dat[d] = req

        data = ['title', 'stylesheet', 'fixcolumn', 'specialattrib']
        for d in data:
            req = REQUEST.get(d, None)
            if req:  # catch also empty strings
                self.dat[d] = req
            else:
                self.dat[d] = None

        try:
            dataInt = ["gridlines", "height", "width"]
            for dd in dataInt:
                if REQUEST.get(dd):  # catch also empty strings
                    self.dat[dd] = int(REQUEST.get(dd))
                else:
                    self.dat[dd] = None
        except ValueError:
            raise ValueError, '%s must be an integer number' % (dd)

        try:
            dataBool = ["intcaption", "fillgaps"]
            for dd in dataBool:
                if REQUEST.get(dd):  # catch also empty strings
                    self.dat[dd] = int(REQUEST.get(dd))
                    if self.dat[dd] == 2:
                        self.dat[dd] = None
                else:
                    self.dat[dd] = None
        except ValueError:
            raise ValueError, '%s must be an integer number' % (dd)

        # Update TALES Methods
        tales = [
            "data",
            "legend",
            "colnames",
            "taltitle",
        ]
        for x in tales:
            expression = REQUEST.get(x)
            if expression is None:
                self.dat[x] = TALESMethod(None)
            else:
                self.dat[x] = TALESMethod(unicode(expression, encoding))