MailArchivePluginとの死闘(五章)

少し時間の余裕が出来たのでMailArchivePluginとの死闘:残件整理...後三件

ML名でのwikiページからのリンクが出来ないんじゃー
一覧表示順をむしろ新しいものからにしたいんだ俺は
ツリー表示切りたかったりするんだよ

まず一覧表示の方から。我ながら我が儘な。。。
とはいえMailArchive開いた時点でページの一番上に最新のメールが見える方が何かと都合がよいのも事実。
むしろデフォルトはツリー表示オフ、表示順は一番上が一番新しいというのが個人的好みの状態。

既にURLのパラメータで制御する仕掛けは四章のwikiviewのON/OFF切り替えの時にやっていたので、やり方はほぼ同様。

  • 弄るtemplateはmailarchive.htmlの方。
  • 渡すパラメータは2種類(ツリー表示オンオフと表示昇順降順切り替え)
  • 本体mailarchive.pyの弄った場所は以下のあたり
@@ -475,6 +479,8 @@
                 'children':[]
         }
         messageid_to_message = {'':root_message}
+        reversemode = req.args.get('reversemode','on')
+        flatmode = req.args.get('flatmode','on')
         for id,messageid,utcdate,zoneoffset,subject,fromname,fromaddr,thread_parent,thread_root in pagelized.items:
@@ -507,9 +513,16 @@
                 message['attachment'] = 1
  
             #Search Parent
-            messages = self._serach_parent(messageid_to_message,thread_parent)
+            if flatmode == 'on':
+                messages = messageid_to_message['']
+            else:
+                messages = self._serach_parent(messageid_to_message,thread_parent)
             if messages.has_key('children'):
-                messages['children'].append(message)
+                if reversemode == 'on':
+                    messages['children'].insert(0,message)
+                else:
+                    messages['children'].append(message)
+                #messages['children'].append(message)

とりあえずこれで解決