Code

- fixed filtering by id in anydbm
authorrichard <richard@57a73879-2fb5-44c3-a270-3262357dd7e2>
Wed, 6 Nov 2002 05:39:50 +0000 (05:39 +0000)
committerrichard <richard@57a73879-2fb5-44c3-a270-3262357dd7e2>
Wed, 6 Nov 2002 05:39:50 +0000 (05:39 +0000)
- show issue ID in the headings (sf bug 631598)

git-svn-id: http://svn.roundup-tracker.org/svnroot/roundup/trunk@1377 57a73879-2fb5-44c3-a270-3262357dd7e2

CHANGES.txt
roundup/backends/back_anydbm.py
roundup/cgi/client.py
roundup/templates/classic/html/issue.item
roundup/templates/classic/html/issue.search

index 3d8b95c0822c8dfc38c7a9ac4f3ac7ef9377f9ce..3f1ea6e71264cadeddac650e2b7444ca39eff502 100644 (file)
@@ -20,6 +20,8 @@ are given with the most recent entry first.
 - documented dependency on Active State (sf bug 623959)
 - ensured there's no zero-length files in source (sf bug 633622)
 - added ID to the search page (sf bug 631601)
+- fixed filtering by id in anydbm
+- show issue ID in the headings (sf bug 631598)
 
 
 2002-10-16 0.5.1
index 13ba17ae286839f0a36b46124b0a2e6a3f32277c..bad6989b53e9d7732782dd8b36c99a661f3d7160 100644 (file)
@@ -15,7 +15,7 @@
 # BASIS, AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE,
 # SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
 # 
-#$Id: back_anydbm.py,v 1.90 2002-10-31 04:03:48 richard Exp $
+#$Id: back_anydbm.py,v 1.91 2002-11-06 05:39:49 richard Exp $
 '''
 This module defines a backend that saves the hyperdatabase in a database
 chosen by anydbm. It is guaranteed to always be available in python
@@ -1591,7 +1591,7 @@ class Class(hyperdb.Class):
                                 k, entry, self.properties[k].classname)
                     u.append(entry)
                 l.append((MULTILINK, k, u))
-            elif isinstance(propclass, String):
+            elif isinstance(propclass, String) and k != 'id':
                 # simple glob searching
                 v = re.sub(r'([\|\{\}\\\.\+\[\]\(\)])', r'\\\1', v)
                 v = v.replace('?', '.')
@@ -1612,6 +1612,7 @@ class Class(hyperdb.Class):
         # now, find all the nodes that are active and pass filtering
         l = []
         cldb = self.db.getclassdb(cn)
+        print filterspec
         try:
             # TODO: only full-scan once (use items())
             for nodeid in self.db.getnodeids(cn, cldb):
@@ -1620,6 +1621,10 @@ class Class(hyperdb.Class):
                     continue
                 # apply filter
                 for t, k, v in filterspec:
+                    # handle the id prop
+                    if k == 'id' and v == nodeid:
+                        continue
+
                     # make sure the node has the property
                     if not node.has_key(k):
                         # this node doesn't have this property, so reject it
index 10fd44897bd8e423e252cc1e8304f868725af3e4..6f598c722e5852e89132479671480ce6fb4227be 100644 (file)
@@ -1,4 +1,4 @@
-# $Id: client.py,v 1.55 2002-10-18 03:34:58 richard Exp $
+# $Id: client.py,v 1.56 2002-11-06 05:39:50 richard Exp $
 
 __doc__ = """
 WWW request handler (also used in the stand-alone server).
@@ -1189,8 +1189,6 @@ def parsePropsFromForm(db, cl, form, nodeid=0, num_re=re.compile('^\d+$')):
         # of MiniFieldStorages.
         value = form[key]
 
-        print (mlaction, propname, value)
-
         # make sure non-multilinks only get one value
         if not isinstance(proptype, hyperdb.Multilink):
             if isinstance(value, type([])):
index 20941856cca0856c2a45ea1761141095af9f96e5..6afb146dc94611cf80dd83f64c15912f4382258c 100644 (file)
@@ -1,7 +1,12 @@
 <!-- dollarId: issue.item,v 1.4 2001/08/03 01:19:43 richard Exp dollar-->
 <tal:block metal:use-macro="templates/page/macros/icing">
-<title metal:fill-slot="head_title">Issue editing</title>
-<td class="page-header-top" metal:fill-slot="body_title"><h2>Issue Editing</h2>
+<title metal:fill-slot="head_title">
+ Issue<span tal:replace="context/id" /> editing
+</title>
+<td class="page-header-top" metal:fill-slot="body_title">
+ <h2>
+  Issue<span tal:replace="context/id" /> Editing
+ </h2>
 </td>
 
 <td class="content" metal:fill-slot="content">
index fb720f0558710f21b09e6d08b632977b846ca1e2..da34b9b960cc6d6b4280273dc7d5e615aff61a39 100644 (file)
@@ -58,8 +58,8 @@
 <tr>
  <th>ID:</th>
  <td><input name="id"></td>
- <td><input type="checkbox" name=":columns" value="title" checked></td>
- <td><input type="radio" name=":sort" value="title"></td>
+ <td><input type="checkbox" name=":columns" value="id" checked></td>
+ <td><input type="radio" name=":sort" value="id"></td>
  <td>&nbsp;</td>
 </tr>