commit-gnue
[Top][All Lists]
Advanced

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

[gnue] r10126 - trunk/gnue-forms/src/GFObjects


From: johannes
Subject: [gnue] r10126 - trunk/gnue-forms/src/GFObjects
Date: Sat, 12 Dec 2009 08:29:05 -0600 (CST)

Author: johannes
Date: 2009-12-12 08:29:05 -0600 (Sat, 12 Dec 2009)
New Revision: 10126

Modified:
   trunk/gnue-forms/src/GFObjects/GFField.py
Log:
Split fk_description only on commas which are not within braces. This way we
can use SQL functions within fk_description


Modified: trunk/gnue-forms/src/GFObjects/GFField.py
===================================================================
--- trunk/gnue-forms/src/GFObjects/GFField.py   2009-12-11 17:58:25 UTC (rev 
10125)
+++ trunk/gnue-forms/src/GFObjects/GFField.py   2009-12-12 14:29:05 UTC (rev 
10126)
@@ -201,7 +201,7 @@
           if not hasattr (self, 'fk_description'):
               self.fk_description = self.fk_key
 
-          self._fk_descr = self.fk_description.split (',')
+          self._fk_descr = self.__split_fields(self.fk_description)
 
           source = self.fk_source.lower()
           if not source in self._block._form._datasourceDictionary:
@@ -244,6 +244,38 @@
 
 
     # -------------------------------------------------------------------------
+
+    def __split_fields(self, value):
+        parts = []
+        brace_level = 0
+        current = ''
+
+        for c in value:
+            if c == '(':
+                brace_level += 1
+                current += c
+
+            elif c == ')':
+                brace_level -= 1
+                current += c
+
+            elif c == ',':
+                if brace_level:
+                    current += c
+                else:
+                    parts.append(current)
+                    current = ''
+
+            else:
+                current += c
+            
+        if current:
+            parts.append(current)
+
+        return parts
+
+
+    # -------------------------------------------------------------------------
     # Determine wether a field is editable or not
     # -------------------------------------------------------------------------
 





reply via email to

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