[Spambayes-checkins] spambayes/spambayes ProxyUI.py,1.46,1.47

Tony Meyer anadelonbrin at users.sourceforge.net
Fri Jul 16 03:02:41 CEST 2004


Update of /cvsroot/spambayes/spambayes/spambayes
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3001/spambayes

Modified Files:
	ProxyUI.py 
Log Message:
Fix [ 943852 ] Incorrect sort order for Score column

Also fix a related bug - the sort order for the ham messages would always be the
*reverse* of the spam/unsure messages.

Index: ProxyUI.py
===================================================================
RCS file: /cvsroot/spambayes/spambayes/spambayes/ProxyUI.py,v
retrieving revision 1.46
retrieving revision 1.47
diff -C2 -d -r1.46 -r1.47
*** ProxyUI.py	14 Jul 2004 07:23:53 -0000	1.46
--- ProxyUI.py	16 Jul 2004 01:02:26 -0000	1.47
***************
*** 259,263 ****
          return keys, date, prior, start, end
  
!     def _sortMessages(self, messages, sort_order):
          """Sorts the message by the appropriate attribute.  If this was the
          previous sort order, then reverse it."""
--- 259,263 ----
          return keys, date, prior, start, end
  
!     def _sortMessages(self, messages, sort_order, reverse=False):
          """Sorts the message by the appropriate attribute.  If this was the
          previous sort order, then reverse it."""
***************
*** 272,290 ****
                  self.previous_sort = 'received'
              return messages
!         else:
!             tmplist = [(getattr(x[1], sort_order), x) for x in messages]
          tmplist.sort()
!         if self.previous_sort == sort_order:
              tmplist.reverse()
-             self.previous_sort = None
-         else:
-             self.previous_sort = sort_order
          return [x for (key, x) in tmplist]
  
!     def _appendMessages(self, table, keyedMessageInfo, label, sort_order):
          """Appends the rows of a table of messages to 'table'."""
          stripe = 0
  
!         keyedMessageInfo = self._sortMessages(keyedMessageInfo, sort_order)
          nrows = options["html_ui", "rows_per_section"]
          for key, messageInfo in keyedMessageInfo[:nrows]:
--- 272,288 ----
                  self.previous_sort = 'received'
              return messages
!         tmplist = [(getattr(x[1], sort_order), x) for x in messages]
          tmplist.sort()
!         if reverse:
              tmplist.reverse()
          return [x for (key, x) in tmplist]
  
!     def _appendMessages(self, table, keyedMessageInfo, label, sort_order,
!                         reverse=False):
          """Appends the rows of a table of messages to 'table'."""
          stripe = 0
  
!         keyedMessageInfo = self._sortMessages(keyedMessageInfo, sort_order,
!                                               reverse)
          nrows = options["html_ui", "rows_per_section"]
          for key, messageInfo in keyedMessageInfo[:nrows]:
***************
*** 293,297 ****
              row = self.html.reviewRow.clone()
              try:
!                 score = float(messageInfo.score.rstrip('%'))
              except ValueError:
                  score = None
--- 291,295 ----
              row = self.html.reviewRow.clone()
              try:
!                 score = messageInfo.score
              except ValueError:
                  score = None
***************
*** 334,338 ****
              # the message score, and the time the message was received.
              if options["html_ui", "display_score"]:
!                 row.score_ = messageInfo.score
              else:
                  del row.score_
--- 332,340 ----
              # the message score, and the time the message was received.
              if options["html_ui", "display_score"]:
!                 if isinstance(messageInfo.score, types.StringTypes):
!                     # Presumably either "?" or "Err".
!                     row.score_ = messageInfo.score
!                 else:
!                     row.score_ = "%.2f%%" % (messageInfo.score,)
              else:
                  del row.score_
***************
*** 556,559 ****
--- 558,572 ----
              templateRow = page.reviewRow.clone()
  
+             # The decision about whether to reverse the sort
+             # order has to go here, because _sortMessages gets called
+             # thrice, and so the ham list would end up sorted backwards.
+             sort_order = params.get('sort')
+             if self.previous_sort == sort_order:
+                 reverse = True
+                 self.previous_sort = None
+             else:
+                 reverse = False
+                 self.previous_sort = sort_order
+ 
              page.table = ""  # To make way for the real rows.
              for header, label in ((options["Headers",
***************
*** 583,587 ****
                      page.table += subHeader
                      self._appendMessages(page.table, messages, label,
!                                          params.get('sort'))
  
              page.table += self.html.trainRow
--- 596,600 ----
                      page.table += subHeader
                      self._appendMessages(page.table, messages, label,
!                                          sort_order, reverse)
  
              page.table += self.html.trainRow
***************
*** 666,670 ****
                  score = score[:op]
              try:
!                 score = "%.2f%%" % (float(score)*100,)
              except ValueError:
                  # Hmm.  The score header should only contain a floating
--- 679,683 ----
                  score = score[:op]
              try:
!                 score = float(score) * 100
              except ValueError:
                  # Hmm.  The score header should only contain a floating



More information about the Spambayes-checkins mailing list