Code

. #516854 ] "My Issues" and redisplay
authorrichard <richard@57a73879-2fb5-44c3-a270-3262357dd7e2>
Sat, 16 Feb 2002 08:39:43 +0000 (08:39 +0000)
committerrichard <richard@57a73879-2fb5-44c3-a270-3262357dd7e2>
Sat, 16 Feb 2002 08:39:43 +0000 (08:39 +0000)
git-svn-id: http://svn.roundup-tracker.org/svnroot/roundup/trunk@633 57a73879-2fb5-44c3-a270-3262357dd7e2

CHANGES.txt
roundup/backends/__init__.py
roundup/htmltemplate.py
roundup/templates/classic/html/issue.filter
roundup/templates/extended/html/issue.filter

index 01b42acc7854289bbcd59e9d17abd79fc172a2d7..9956e7c249da21868937dc5c57daf764083464a4 100644 (file)
@@ -22,6 +22,7 @@ Fixed:
  . All forms now have "double-submit" protection when Javascript is enabled
    on the client-side.
  . #516883 ] mail interface + ANONYMOUS_REGISTER
+ . #516854 ] "My Issues" and redisplay
 
 
 2002-01-24 - 0.4.0
index e25f6cb4b28da46e4f2e9ef7a0cf83be9320bba9..5bb5366ab75508261d8238ffa4c403d79396728d 100644 (file)
@@ -15,7 +15,7 @@
 # BASIS, AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE,
 # SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
 # 
-# $Id: __init__.py,v 1.10 2002-01-22 07:08:50 richard Exp $
+# $Id: __init__.py,v 1.11 2002-02-16 08:39:42 richard Exp $
 
 __all__ = []
 
@@ -31,7 +31,7 @@ try:
     anydbm = back_anydbm
     __all__.append('anydbm')
 except AssertionError:
-    del back_anydbm
+    pass
 except ImportError:
     pass
 
@@ -51,6 +51,10 @@ except ImportError:
 
 #
 # $Log: not supported by cvs2svn $
+# Revision 1.10  2002/01/22 07:08:50  richard
+# I was certain I'd already done this (there's even a change note in
+# CHANGES)...
+#
 # Revision 1.9  2001/12/12 02:30:51  richard
 # I fixed the problems with people whose anydbm was using the dbm module at the
 # backend. It turns out the dbm module modifies the file name to append ".db"
index 75af618ca1c79673e5ef832554dce1b3f90d26c0..48282742c38f1bbf61d6bdc240479217b30296f2 100644 (file)
 # BASIS, AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE,
 # SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
 # 
-# $Id: htmltemplate.py,v 1.73 2002-02-15 07:08:44 richard Exp $
+# $Id: htmltemplate.py,v 1.74 2002-02-16 08:39:42 richard Exp $
 
 __doc__ = """
 Template engine.
 """
 
-import os, re, StringIO, urllib, cgi, errno
+import os, re, StringIO, urllib, cgi, errno, types
 
 import hyperdb, date, password
 from i18n import _
@@ -257,20 +257,17 @@ class TemplateFunctions:
         value = self.determine_value(property)
 
         # display
-        if isinstance(propclass, hyperdb.Link):
+        if isinstance(propclass, hyperdb.Multilink):
             linkcl = self.db.classes[propclass.classname]
-            l = ['<select name="%s">'%property]
-            k = linkcl.labelprop()
-            s = ''
-            if value is None:
-                s = 'selected '
-            l.append(_('<option %svalue="-1">- no selection -</option>')%s)
             options = linkcl.list()
             options.sort(sortfunc)
+            height = height or min(len(options), 7)
+            l = ['<select multiple name="%s" size="%s">'%(property, height)]
+            k = linkcl.labelprop()
             for optionid in options:
                 option = linkcl.get(optionid, k)
                 s = ''
-                if optionid == value:
+                if optionid in value:
                     s = 'selected '
                 if showid:
                     lab = '%s%s: %s'%(propclass.classname, optionid, option)
@@ -279,20 +276,27 @@ class TemplateFunctions:
                 if size is not None and len(lab) > size:
                     lab = lab[:size-3] + '...'
                 lab = cgi.escape(lab)
-                l.append('<option %svalue="%s">%s</option>'%(s, optionid, lab))
+                l.append('<option %svalue="%s">%s</option>'%(s, optionid,
+                    lab))
             l.append('</select>')
             return '\n'.join(l)
-        if isinstance(propclass, hyperdb.Multilink):
+        if isinstance(propclass, hyperdb.Link):
+            # force the value to be a single choice
+            if type(value) is types.ListType:
+                value = value[0]
             linkcl = self.db.classes[propclass.classname]
+            l = ['<select name="%s">'%property]
+            k = linkcl.labelprop()
+            s = ''
+            if value is None:
+                s = 'selected '
+            l.append(_('<option %svalue="-1">- no selection -</option>')%s)
             options = linkcl.list()
             options.sort(sortfunc)
-            height = height or min(len(options), 7)
-            l = ['<select multiple name="%s" size="%s">'%(property, height)]
-            k = linkcl.labelprop()
             for optionid in options:
                 option = linkcl.get(optionid, k)
                 s = ''
-                if optionid in value:
+                if optionid == value:
                     s = 'selected '
                 if showid:
                     lab = '%s%s: %s'%(propclass.classname, optionid, option)
@@ -301,8 +305,7 @@ class TemplateFunctions:
                 if size is not None and len(lab) > size:
                     lab = lab[:size-3] + '...'
                 lab = cgi.escape(lab)
-                l.append('<option %svalue="%s">%s</option>'%(s, optionid,
-                    lab))
+                l.append('<option %svalue="%s">%s</option>'%(s, optionid, lab))
             l.append('</select>')
             return '\n'.join(l)
         return _('[Menu: not a link]')
@@ -768,7 +771,8 @@ class IndexTemplate(TemplateFunctions):
         for nodeid in nodeids:
             # check for a group heading
             if group_names:
-                this_group = [self.cl.get(nodeid, name, _('[no value]')) 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:
@@ -1064,6 +1068,10 @@ class NewItemTemplate(TemplateFunctions):
 
 #
 # $Log: not supported by cvs2svn $
+# Revision 1.73  2002/02/15 07:08:44  richard
+#  . Alternate email addresses are now available for users. See the MIGRATION
+#    file for info on how to activate the feature.
+#
 # Revision 1.72  2002/02/14 23:39:18  richard
 # . All forms now have "double-submit" protection when Javascript is enabled
 #   on the client-side.
index c032c718dd0556d5a2a234a83228a3acf9c234e2..29e5a1a1de716cb062aa1a5835a6cf27af95735c 100644 (file)
@@ -1,4 +1,4 @@
-<!-- $Id: issue.filter,v 1.2 2001-07-29 04:07:37 richard Exp $-->
+<!-- $Id: issue.filter,v 1.3 2002-02-16 08:39:42 richard Exp $-->
 <property name="title">
  <tr><th width="1%" align="right" class="location-bar">Title</th>
  <td><display call="field('title')"></td></tr>
@@ -11,3 +11,7 @@
  <tr><th width="1%" align="right" class="location-bar">Priority</th>
  <td><display call="checklist('priority')"></td></tr>
 </property>
+<property name="assignedto">
+ <tr><th width="1%" align="right" class="location-bar">Assigned&nbsp;to</th>
+ <td><display call="field('assignedto')"></td></tr>
+</property>
index e4ade857770ce34582260115fc3c36a8b12b0d0e..a05573d64824bfcd398b892bc092a65e9f40b671 100644 (file)
@@ -1,4 +1,4 @@
-<!-- $Id: issue.filter,v 1.2 2001-07-30 01:26:59 richard Exp $-->
+<!-- $Id: issue.filter,v 1.3 2002-02-16 08:39:43 richard Exp $-->
 <property name="title">
  <tr><th width="1%" align="right" class="location-bar">Title</th>
  <td><display call="field('title')"></td></tr>
@@ -25,5 +25,5 @@
 </property>
 <property name="assignedto">
  <tr><th width="1%" align="right" class="location-bar">Assigned&nbsp;to</th>
- <td><display call="checklist('assignedto')"></td></tr>
+ <td><display call="menu('assignedto')"></td></tr>
 </property>