From: richard Date: Wed, 21 Nov 2001 04:04:43 +0000 (+0000) Subject: *sigh* more missing value handling X-Git-Url: https://git.tokkee.org/?a=commitdiff_plain;h=bfaf138d0381496e1ca7e2ccee600e033931c136;p=roundup.git *sigh* more missing value handling git-svn-id: http://svn.roundup-tracker.org/svnroot/roundup/trunk@409 57a73879-2fb5-44c3-a270-3262357dd7e2 --- diff --git a/roundup/htmltemplate.py b/roundup/htmltemplate.py index 9d8d7e9..4ed94ff 100644 --- a/roundup/htmltemplate.py +++ b/roundup/htmltemplate.py @@ -15,7 +15,7 @@ # BASIS, AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE, # SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. # -# $Id: htmltemplate.py,v 1.42 2001-11-21 03:40:54 richard Exp $ +# $Id: htmltemplate.py,v 1.43 2001-11-21 04:04:43 richard Exp $ import os, re, StringIO, urllib, cgi, errno @@ -573,7 +573,7 @@ class IndexTemplate(TemplateFunctions): for nodeid in nodeids: # check for a group heading if group_names: - this_group = [self.cl.get(nodeid, name) for name in group_names] + this_group = [self.cl.get(nodeid, name, '[no value]') for name in group_names] if this_group != old_group: l = [] for name in group_names: @@ -593,7 +593,7 @@ class IndexTemplate(TemplateFunctions): for value in self.cl.get(nodeid, name): l.append(group_cl.get(value, key)) else: - value = self.cl.get(nodeid, name) + value = self.cl.get(nodeid, name, '[no value]') if value is None: value = '[empty %s]'%name else: @@ -861,6 +861,9 @@ class NewItemTemplate(TemplateFunctions): # # $Log: not supported by cvs2svn $ +# Revision 1.42 2001/11/21 03:40:54 richard +# more new property handling +# # Revision 1.41 2001/11/15 10:26:01 richard # . missing "return" in filter_section (thanks Roch'e Compaan) # diff --git a/roundup/hyperdb.py b/roundup/hyperdb.py index cd2e33d..f19ed35 100644 --- a/roundup/hyperdb.py +++ b/roundup/hyperdb.py @@ -15,7 +15,7 @@ # BASIS, AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE, # SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. # -# $Id: hyperdb.py,v 1.33 2001-11-21 03:40:54 richard Exp $ +# $Id: hyperdb.py,v 1.34 2001-11-21 04:04:43 richard Exp $ # standard python modules import cPickle, re, string @@ -680,17 +680,28 @@ class Class: # sort by group and then sort for list in group, sort: for dir, prop in list: - # handle the properties that might be "faked" - if not an.has_key(prop): - an[prop] = cl.get(a_id, prop) - av = an[prop] - if not bn.has_key(prop): - bn[prop] = cl.get(b_id, prop) - bv = bn[prop] - # sorting is class-specific propclass = properties[prop] + # handle the properties that might be "faked" + # also, handle possible missing properties + try: + if not an.has_key(prop): + an[prop] = cl.get(a_id, prop) + av = an[prop] + except KeyError: + # the node doesn't have a value for this property + if isinstance(propclass, Multilink): av = [] + else: av = '' + try: + if not bn.has_key(prop): + bn[prop] = cl.get(b_id, prop) + bv = bn[prop] + except KeyError: + # the node doesn't have a value for this property + if isinstance(propclass, Multilink): bv = [] + else: bv = '' + # String and Date values are sorted in the natural way if isinstance(propclass, String): # clean up the strings @@ -849,6 +860,9 @@ def Choice(name, *options): # # $Log: not supported by cvs2svn $ +# Revision 1.33 2001/11/21 03:40:54 richard +# more new property handling +# # Revision 1.32 2001/11/21 03:11:28 richard # Better handling of new properties. #