[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[gnue] r9461 - trunk/gnue-forms/src/GFObjects
From: |
reinhard |
Subject: |
[gnue] r9461 - trunk/gnue-forms/src/GFObjects |
Date: |
Sat, 7 Apr 2007 09:34:42 -0500 (CDT) |
Author: reinhard
Date: 2007-04-07 09:34:42 -0500 (Sat, 07 Apr 2007)
New Revision: 9461
Modified:
trunk/gnue-forms/src/GFObjects/GFBlock.py
trunk/gnue-forms/src/GFObjects/GFField.py
Log:
Several fixes for dropdowns.
Modified: trunk/gnue-forms/src/GFObjects/GFBlock.py
===================================================================
--- trunk/gnue-forms/src/GFObjects/GFBlock.py 2007-04-03 06:40:12 UTC (rev
9460)
+++ trunk/gnue-forms/src/GFObjects/GFBlock.py 2007-04-07 14:34:42 UTC (rev
9461)
@@ -1044,7 +1044,7 @@
del self.__query_values[field]
else:
self.__query_values[field] = value
- field.value_changed()
+ field.value_changed(value)
elif self.mode == 'init':
self.__initializing_record[field.field] = value
@@ -1056,7 +1056,7 @@
self.__resultset.current[field.field] = value
if field.defaultToLast:
self._lastValues[field.field] = value
- field.value_changed()
+ field.value_changed(value)
field.processTrigger('Post-Change')
self.processTrigger('Post-Change')
Modified: trunk/gnue-forms/src/GFObjects/GFField.py
===================================================================
--- trunk/gnue-forms/src/GFObjects/GFField.py 2007-04-03 06:40:12 UTC (rev
9460)
+++ trunk/gnue-forms/src/GFObjects/GFField.py 2007-04-07 14:34:42 UTC (rev
9461)
@@ -356,6 +356,11 @@
if isinstance(value, datatypes.InvalidValueType):
raise value.exception
+ # Do not convert if it is a lookup, because the datatype refers to the
+ # (lookup) user value, not to the DB value.
+ if hasattr(self, '_GFField__fk_resultSet'):
+ return value
+
# FIXME: This conversion should be in gnue-common.
try:
value = datatypes.convert(value, self.datatype, self.length,
@@ -380,7 +385,10 @@
"""
# Don't convert when in query mode, so :operator: magic works.
- if self._block.mode != 'query':
+ # Also, do not convert if it is a lookup, because the datatype refers
+ # to the (lookup) user value, not to the DB value.
+ if self._block.mode != 'query' \
+ and not hasattr(self, '_GFField__fk_resultSet'):
# FIXME: This conversion should be in gnue-common.
try:
value = datatypes.convert(value, self.datatype, self.length,
@@ -414,18 +422,20 @@
# Notification of value change
# -------------------------------------------------------------------------
- def value_changed(self):
+ def value_changed(self, new_value):
"""
Notify the field that the db or query value behind it has changed.
This function gets called whenever the user interface has to be
updated.
+
+ @param new_value: the new value for this field.
"""
# If the field is a foreign key, move the result set to the
# selected value.
if hasattr(self, '_GFField__fk_resultSet'):
- self.__fk_resultSet.findRecord({self.fk_key: self.__get_value()})
+ self.__fk_resultSet.findRecord({self.fk_key: new_value})
# This will cause __refresh_ui_current() to be called via
# __dsCursorMoved
else:
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [gnue] r9461 - trunk/gnue-forms/src/GFObjects,
reinhard <=