[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
r5609 - trunk/gnue-forms/src/GFObjects
From: |
reinhard |
Subject: |
r5609 - trunk/gnue-forms/src/GFObjects |
Date: |
Thu, 1 Apr 2004 17:12:02 -0600 (CST) |
Author: reinhard
Date: 2004-04-01 17:12:01 -0600 (Thu, 01 Apr 2004)
New Revision: 5609
Modified:
trunk/gnue-forms/src/GFObjects/GFField.py
Log:
Update list of allowed values automatically if the fk_source for a dropdown is
a detail datasource.
Modified: trunk/gnue-forms/src/GFObjects/GFField.py
===================================================================
--- trunk/gnue-forms/src/GFObjects/GFField.py 2004-04-01 20:03:39 UTC (rev
5608)
+++ trunk/gnue-forms/src/GFObjects/GFField.py 2004-04-01 23:12:01 UTC (rev
5609)
@@ -185,6 +185,13 @@
for field in [self.fk_key] + self._fk_descr:
self._fk_datasource.referenceField(field, None)
+ # Register as a result set listener
+ # if self._fk_datasource.hasMaster (): - not usable before phase 2 init
+ if hasattr (self._fk_datasource, 'master') and
self._fk_datasource.master:
+ self._fk_datasource.registerResultSetListener
(self.__loadAllowedValues)
+ else:
+ self.__loadAllowedValues (self._fk_datasource.createResultSet ())
+
if hasattr(self, 'queryDefault') and \
self.queryDefault != None and \
self._bound and \
@@ -300,35 +307,34 @@
#
# allowedValues
#
- def allowedValues(self):
- if not self._allowedValues and hasattr(self,'_fk_datasource'):
- rs = self._fk_datasource.createResultSet()
- more = rs.firstRecord()
- self._allowedValues = {"":""}
- self._allowedValuesDescr = [""]
- self._allowedValuesReverse = {"":""}
- dropdownSeparator = gConfigForms('DropdownSeparator')
- while more:
- try:
- key = "%s" % rs.current.getField(self.fk_key)
- descriptions = []
- for i in self._fk_descr:
- descriptions.append("%s" % rs.current.getField(i))
- descr = string.join(descriptions,dropdownSeparator)
+ def __loadAllowedValues (self, resultSet):
+ self._allowedValues = {"":""}
+ self._allowedValuesDescr = [""]
+ self._allowedValuesReverse = {"":""}
+ dropdownSeparator = gConfigForms('DropdownSeparator')
+ more = resultSet.firstRecord()
+ while more:
+ try:
+ key = "%s" % resultSet.current.getField(self.fk_key)
+ descriptions = []
+ for i in self._fk_descr:
+ descriptions.append("%s" % resultSet.current.getField(i))
+ descr = string.join(descriptions,dropdownSeparator)
- self._allowedValues[key] = descr
- self._allowedValuesDescr.append(descr)
- self._allowedValuesReverse[descr] = key
- except AttributeError:
- # TODO: What's this for?
- self._allowedValues[rs.current.getField(self.fk_key)] = None
- more = rs.nextRecord()
- GDebug.printMesg (5,'Created for DropDown: %s' % self._allowedValues)
+ self._allowedValues[key] = descr
+ self._allowedValuesDescr.append(descr)
+ self._allowedValuesReverse[descr] = key
+ except AttributeError:
+ # TODO: What's this for?
+ self._allowedValues[resultSet.current.getField(self.fk_key)] = None
+ more = resultSet.nextRecord()
+ GDebug.printMesg (5,'Created for DropDown: %s' % self._allowedValues)
+ def allowedValues(self):
return (self._allowedValues, self._allowedValuesDescr)
def resetForeignKey(self):
- self._allowedValues = None
- self.allowedValues()
-
-
+ # does nothing at all, because it's done automatically now
+ # self._allowedValues = None
+ # self.allowedValues()
+ pass
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- r5609 - trunk/gnue-forms/src/GFObjects,
reinhard <=