From 8c09a0e73d7bce479e57519c2e1bfb20ae2b6a4f Mon Sep 17 00:00:00 2001 From: Helmut Merz Date: Fri, 8 Dec 2017 12:17:02 +0100 Subject: [PATCH] add tab title for book_topic_view; rearrange section methods --- compound/book/browser.py | 77 ++++++++++++++++---------------- locales/de/LC_MESSAGES/loops.mo | Bin 28341 -> 28388 bytes locales/de/LC_MESSAGES/loops.po | 5 ++- 3 files changed, 43 insertions(+), 39 deletions(-) diff --git a/compound/book/browser.py b/compound/book/browser.py index fff8064..cb4b44e 100644 --- a/compound/book/browser.py +++ b/compound/book/browser.py @@ -1,5 +1,5 @@ # -# Copyright (c) 2013 Helmut Merz helmutm@cy55.de +# Copyright (c) 2017 Helmut Merz helmutm@cy55.de # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -34,6 +34,7 @@ from loops.browser.concept import ConceptRelationView as \ BaseConceptRelationView from loops.browser.resource import ResourceView as BaseResourceView from loops.common import adapted, baseObject +from loops.util import _ standard_template = standard.standard_template @@ -54,42 +55,6 @@ class Base(object): def sectionType(self): return self.conceptManager['section'] - @Lazy - def isPartOfPredicate(self): - return self.conceptManager['ispartof'] - - @Lazy - def showNavigation(self): - return self.typeOptions.show_navigation - - @Lazy - def breadcrumbsParent(self): - for p in self.context.getParents([self.isPartOfPredicate]): - return self.nodeView.getViewForTarget(p) - - @Lazy - def neighbours(self): - pred = succ = None - parent = self.breadcrumbsParent - if parent is not None: - myself = None - children = list(parent.context.getChildren([self.isPartOfPredicate])) - for idx, c in enumerate(children): - if c == self.context: - if idx > 0: - pred = self.nodeView.getViewForTarget(children[idx-1]) - if idx < len(children) - 1: - succ = self.nodeView.getViewForTarget(children[idx+1]) - return pred, succ - - @Lazy - def predecessor(self): - return self.neighbours[0] - - @Lazy - def successor(self): - return self.neighbours[1] - @Lazy def tabview(self): if self.editable: @@ -181,10 +146,46 @@ class SectionView(Base, ConceptView): def macro(self): return book_template.macros['section'] + @Lazy + def isPartOfPredicate(self): + return self.conceptManager['ispartof'] + + @Lazy + def breadcrumbsParent(self): + for p in self.context.getParents([self.isPartOfPredicate]): + return self.nodeView.getViewForTarget(p) + + @Lazy + def showNavigation(self): + return self.typeOptions.show_navigation + + @Lazy + def neighbours(self): + pred = succ = None + parent = self.breadcrumbsParent + if parent is not None: + myself = None + children = list(parent.context.getChildren([self.isPartOfPredicate])) + for idx, c in enumerate(children): + if c == self.context: + if idx > 0: + pred = self.nodeView.getViewForTarget(children[idx-1]) + if idx < len(children) - 1: + succ = self.nodeView.getViewForTarget(children[idx+1]) + return pred, succ + + @Lazy + def predecessor(self): + return self.neighbours[0] + + @Lazy + def successor(self): + return self.neighbours[1] + class TopicView(Base, ConceptView): - breadcrumbsParent = ConceptView.breadcrumbsParent + tabTitle = _(u'title_bookTopicView') @Lazy def macro(self): diff --git a/locales/de/LC_MESSAGES/loops.mo b/locales/de/LC_MESSAGES/loops.mo index 1e54dfb525f95f0fcb3cd55cf575780535f8a625..7c9d51256b8a0858364a2e15f3f54c276ae8a3d5 100644 GIT binary patch delta 7659 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 ib}K3E)}!Cn-XkyTl)iJ#%sIC$sGL=?aMi4N delta 7624 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\n" "Language-Team: loops developers \n" "MIME-Version: 1.0\n" @@ -1002,6 +1002,9 @@ msgstr "Objekte löschen" msgid "confirm('Do you really want to delete the selected objects?')" msgstr "confirm('Wollen Sie die ausgewählten Objekte wirklich löschen?')" +msgid "title_bookTopicView" +msgstr "Übersicht" + # management interface msgid "label_type"