Code

Better handling of new properties.
authorrichard <richard@57a73879-2fb5-44c3-a270-3262357dd7e2>
Wed, 21 Nov 2001 03:11:28 +0000 (03:11 +0000)
committerrichard <richard@57a73879-2fb5-44c3-a270-3262357dd7e2>
Wed, 21 Nov 2001 03:11:28 +0000 (03:11 +0000)
git-svn-id: http://svn.roundup-tracker.org/svnroot/roundup/trunk@406 57a73879-2fb5-44c3-a270-3262357dd7e2

roundup/cgi_client.py
roundup/hyperdb.py
roundup/templates/extended/htmlbase.py

index 24ff6314bbcc97ed77f0cf58684facba484a5604..ba3dc94fdb5a548e748df6e1ee76d70babadd661 100644 (file)
@@ -15,7 +15,7 @@
 # BASIS, AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE,
 # SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
 # 
-# $Id: cgi_client.py,v 1.57 2001-11-15 10:24:27 richard Exp $
+# $Id: cgi_client.py,v 1.58 2001-11-21 03:11:28 richard Exp $
 
 import os, cgi, pprint, StringIO, urlparse, re, traceback, mimetypes
 import binascii, Cookie, time
@@ -959,14 +959,26 @@ def parsePropsFromForm(db, cl, form, nodeid=0):
             l.sort()
             value = l
         props[key] = value
+
+        # get the old value
+        try:
+            existing = cl.get(nodeid, key)
+        except KeyError:
+            # this might be a new property for which there is no existing
+            # value
+            if not cl.properties.has_key(key): raise
+
         # if changed, set it
-        if nodeid and value != cl.get(nodeid, key):
+        if nodeid and value != existing:
             changed.append(key)
             props[key] = value
     return props, changed
 
 #
 # $Log: not supported by cvs2svn $
+# Revision 1.57  2001/11/15 10:24:27  richard
+# handle the case where there is no file attached
+#
 # Revision 1.56  2001/11/14 21:35:21  richard
 #  . users may attach files to issues (and support in ext) through the web now
 #
index 5a4e837645f4e11bffea554a3f3de7ede402fd4e..f1d5c14ad4799332b482af25efc787508c6cbbe9 100644 (file)
@@ -15,7 +15,7 @@
 # BASIS, AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE,
 # SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
 # 
-# $Id: hyperdb.py,v 1.31 2001-11-12 22:01:06 richard Exp $
+# $Id: hyperdb.py,v 1.32 2001-11-21 03:11:28 richard Exp $
 
 # standard python modules
 import cPickle, re, string
@@ -295,9 +295,6 @@ class Class:
             raise IndexError
         num_re = re.compile('^\d+$')
         for key, value in propvalues.items():
-            if not node.has_key(key):
-                raise KeyError, key
-
             # check to make sure we're not duplicating an existing key
             if key == self.key and node[key] != value:
                 try:
@@ -307,6 +304,7 @@ class Class:
                 else:
                     raise ValueError, 'node with key "%s" exists'%value
 
+            # this will raise the KeyError if the property isn't valid
             prop = self.properties[key]
 
             if isinstance(prop, Link):
@@ -849,6 +847,9 @@ def Choice(name, *options):
 
 #
 # $Log: not supported by cvs2svn $
+# Revision 1.31  2001/11/12 22:01:06  richard
+# Fixed issues with nosy reaction and author copies.
+#
 # Revision 1.30  2001/11/09 10:11:08  richard
 #  . roundup-admin now handles all hyperdb exceptions
 #
index 8cd83b26a78b77a527447b7efdb7a9d6db17272b..cdf463a21ef206691028c8e781a7640fefc6fb42 100644 (file)
@@ -102,7 +102,7 @@ issueDOTindex = """<!-- dollarId: issue.index,v 1.3 2001/08/01 05:15:09 richard
 </tr>
 """
 
-issueDOTitem = """<!-- dollarId: issue.item,v 1.5 2001/07/30 08:03:56 richard Exp dollar-->
+issueDOTitem = """<!-- dollarId: issue.item,v 1.7 2001/11/21 02:34:18 richard Exp dollar-->
 <table border=0 cellspacing=0 cellpadding=2>
 
 <tr class="strong-header">
@@ -117,11 +117,19 @@ issueDOTitem = """<!-- dollarId: issue.item,v 1.5 2001/07/30 08:03:56 richard Ex
 <tr bgcolor="ffffea">
     <td width=1% nowrap align=right><span class="form-label">Product</span></td>
     <td class="form-text" valign=middle><display call="menu('product')">
-    version:<display call="field('version', 5)"></td>
-    <td width=1% nowrap align=right><span class="form-label">Platform</span></td>
-    <td class="form-text" valign=middle><display call="checklist('platform')"></td>
+    <span class="form-label">version:</span><display call="field('version', 5)"></td>
+    <td rowspan=2 width=1% nowrap align=right><span class="form-label">Platform</span></td>
+    <td rowspan=2 class="form-text" valign=middle><display call="checklist('platform')"></td>
 </tr>
 
+<tr bgcolor="ffffea">
+    <td width=1% nowrap align=right>&nbsp;</td>
+    <td align=left><span class="form-label">Target Version</span>
+     <display call="field('targetversion', 5)">
+    </td>
+</tr>
+
+
 <tr bgcolor="ffffea">
     <td width=1% nowrap align=right><span class="form-label">Created</span></td>
     <td class="form-text"><display call="reldate('creation', pretty=1)">
@@ -481,7 +489,7 @@ supportDOTindex = """<!-- dollarId: support.index,v 1.2 2001/08/01 05:15:09 rich
 </tr>
 """
 
-supportDOTitem = """<!-- dollarId: support.item,v 1.2 2001/07/30 08:03:56 richard Exp dollar-->
+supportDOTitem = """<!-- dollarId: support.item,v 1.3 2001/11/14 21:35:22 richard Exp dollar-->
 <table border=0 cellspacing=0 cellpadding=2>
 
 <tr class="strong-header">