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
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
def colnames(self, default=None): "get colnames." return self.getAttribute('colnames', TALESMethod(None), default)
def legend(self, default=None): "get legend." return self.getAttribute('legend', TALESMethod(None), default)
def data(self, default=None): "get data." return self.getAttribute('data', TALESMethod(None), default)
def taltitle(self, default=None): "get taltitle." return self.getAttribute('taltitle', TALESMethod(None), default)
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))