Merge pull request #131 from calfzhou/neighbors
Make neighbors plugin support translated articles.
This commit is contained in:
@@ -18,10 +18,22 @@ def iter3(seq):
|
|||||||
nxt, cur = cur, prv
|
nxt, cur = cur, prv
|
||||||
yield nxt, cur, None
|
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):
|
def neighbors(generator):
|
||||||
for nxt, cur, prv in iter3(generator.articles):
|
for nxt, cur, prv in iter3(generator.articles):
|
||||||
cur.next_article = nxt
|
cur.next_article = nxt
|
||||||
cur.prev_article = prv
|
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():
|
def register():
|
||||||
signals.article_generator_finalized.connect(neighbors)
|
signals.article_generator_finalized.connect(neighbors)
|
||||||
|
|||||||
Reference in New Issue
Block a user