浏览代码

Merge pull request #131 from calfzhou/neighbors

Make neighbors plugin support translated articles.
Justin Mayer 11 年之前
父节点
当前提交
5e6307d9e2
共有 1 个文件被更改,包括 12 次插入0 次删除
  1. 12 0
      neighbors/neighbors.py

+ 12 - 0
neighbors/neighbors.py

@@ -18,10 +18,22 @@ def iter3(seq):
         nxt, cur = cur, prv
     yield nxt, cur, None
 
+def get_translation(article, prefered_language):
+    if not article:
+        return None
+    for translation in article.translations:
+        if translation.lang == prefered_language:
+            return translation
+    return article
+
 def neighbors(generator):
     for nxt, cur, prv in iter3(generator.articles):
         cur.next_article = nxt
         cur.prev_article = prv
 
+        for translation in cur.translations:
+            translation.next_article = get_translation(nxt, translation.lang)
+            translation.prev_article = get_translation(prv, translation.lang)
+
 def register():
     signals.article_generator_finalized.connect(neighbors)