Mercurial > p > roundup > code
diff roundup/cgi/actions.py @ 3850:326269886c32
Fix form handling of editing existing hyperdb items from a new item page.
| author | Richard Jones <richard@users.sourceforge.net> |
|---|---|
| date | Fri, 27 Apr 2007 00:17:11 +0000 |
| parents | 1a44e4bb2b54 |
| children | 5fe1f30f7f30 |
line wrap: on
line diff
--- a/roundup/cgi/actions.py Mon Apr 23 19:35:41 2007 +0000 +++ b/roundup/cgi/actions.py Fri Apr 27 00:17:11 2007 +0000 @@ -1,4 +1,4 @@ -#$Id: actions.py,v 1.65 2007-04-19 12:18:50 stefan Exp $ +#$Id: actions.py,v 1.66 2007-04-27 00:17:11 richard Exp $ import re, cgi, StringIO, urllib, Cookie, time, random, csv, codecs @@ -367,13 +367,16 @@ deps = {} links = {} for cn, nodeid, propname, vlist in all_links: - if not all_props.has_key((cn, nodeid)): + if not (nodeid or all_props.has_key((cn, nodeid))): # link item to link to doesn't (and won't) exist continue - for value in vlist: - if not all_props.has_key(value): + + for vcn, vid in vlist: + if vid == '-1': vid = None + if not (vid or all_props.has_key((vcn, vid))): # link item to link to doesn't (and won't) exist continue + value = (vcn, vid) deps.setdefault((cn, nodeid), []).append(value) links.setdefault(value, []).append((cn, nodeid, propname)) @@ -401,36 +404,34 @@ m = [] for needed in order: props = all_props[needed] - if not props: - # nothing to do - continue - cn, nodeid = needed + if props: + cn, nodeid = needed - if nodeid is not None and int(nodeid) > 0: - # make changes to the node - props = self._changenode(cn, nodeid, props) + if nodeid is not None and int(nodeid) > 0: + # make changes to the node + props = self._changenode(cn, nodeid, props) - # and some nice feedback for the user - if props: - info = ', '.join(map(self._, props.keys())) - m.append( - self._('%(class)s %(id)s %(properties)s edited ok') - % {'class':cn, 'id':nodeid, 'properties':info}) + # and some nice feedback for the user + if props: + info = ', '.join(map(self._, props.keys())) + m.append( + self._('%(class)s %(id)s %(properties)s edited ok') + % {'class':cn, 'id':nodeid, 'properties':info}) + else: + m.append(self._('%(class)s %(id)s - nothing changed') + % {'class':cn, 'id':nodeid}) else: - m.append(self._('%(class)s %(id)s - nothing changed') - % {'class':cn, 'id':nodeid}) - else: - assert props + assert props - # make a new node - newid = self._createnode(cn, props) - if nodeid is None: - self.nodeid = newid - nodeid = newid + # make a new node + newid = self._createnode(cn, props) + if nodeid is None: + self.nodeid = newid + nodeid = newid - # and some nice feedback for the user - m.append(self._('%(class)s %(id)s created') - % {'class':cn, 'id':newid}) + # and some nice feedback for the user + m.append(self._('%(class)s %(id)s created') + % {'class':cn, 'id':newid}) # fill in new ids in links if links.has_key(needed):
