diff roundup/backends/rdbms_common.py @ 1596:33a0d94c7658

searching on ranges of intervals is implemented
author Andrey Lebedev <kedder@users.sourceforge.net>
date Sun, 20 Apr 2003 11:58:45 +0000
parents ba13c04814f0
children cc96bf971b33
line wrap: on
line diff
--- a/roundup/backends/rdbms_common.py	Sat Apr 19 09:57:27 2003 +0000
+++ b/roundup/backends/rdbms_common.py	Sun Apr 20 11:58:45 2003 +0000
@@ -1,4 +1,4 @@
-# $Id: rdbms_common.py,v 1.53 2003-04-08 06:41:48 richard Exp $
+# $Id: rdbms_common.py,v 1.54 2003-04-20 11:58:45 kedder Exp $
 ''' Relational database (SQL) backend common code.
 
 Basics:
@@ -1866,8 +1866,20 @@
                     where.append('_%s in (%s)'%(k, s))
                     args = args + [date.Interval(x).serialise() for x in v]
                 else:
-                    where.append('_%s=%s'%(k, a))
-                    args.append(date.Interval(v).serialise())
+                    try:
+                        # Try to filter on range of intervals
+                        date_rng = Range(v, date.Interval)
+                        if (date_rng.from_value):
+                            where.append('_%s > %s'%(k, a))                            
+                            args.append(date_rng.from_value.serialise())
+                        if (date_rng.to_value):
+                            where.append('_%s < %s'%(k, a))
+                            args.append(date_rng.to_value.serialise())
+                    except ValueError:
+                        # If range creation fails - ignore that search parameter
+                        pass                        
+                    #where.append('_%s=%s'%(k, a))
+                    #args.append(date.Interval(v).serialise())
             else:
                 if isinstance(v, type([])):
                     s = ','.join([a for x in v])

Roundup Issue Tracker: http://roundup-tracker.org/