diff --git a/fields/page.py b/fields/page.py index b9ded98..d7d804f 100644 --- a/fields/page.py +++ b/fields/page.py @@ -61,32 +61,28 @@ class Page: res = Page(pageData[0], phase=pageData[1]) return res - def isShowable(self, obj, layoutType, elem='page'): - '''Must this page be shown for p_obj? "Show value" can be True, False + def isShowable(self, obj, elem='page'): + '''Must this page be shown for p_obj? The method can return True, False or 'view' (page is available only in "view" mode). If p_elem is not "page", this method returns the fact that a sub-element is viewable or not (buttons "save", "cancel", etc).''' # Define what attribute to test for "showability". - showAttr = 'show' - if elem != 'page': - showAttr = 'show%s' % elem.capitalize() + attr = (elem == 'page') and 'show' or ('show%s' % elem.capitalize()) # Get the value of the show attribute as identified above. - show = getattr(self, showAttr) - if callable(show): - show = show(obj.appy()) - # Show value can be 'view', for example. Thanks to p_layoutType, - # convert show value to a real final boolean value. - res = show - if res == 'view': res = layoutType == 'view' + res = getattr(self, attr) + if callable(res): res = res(obj.appy()) return res def getInfo(self, obj, layoutType): '''Gets information about this page, for p_obj, as an object.''' res = Object() for elem in Page.subElements: - setattr(res, 'show%s' % elem.capitalize(), \ - self.isShowable(obj, layoutType, elem=elem)) + showable = self.isShowable(obj, elem) + # "showable" can be True, False or "view" + if layoutType == 'edit': showable = showable==True + else: showable = bool(showable) + setattr(res, 'show%s' % elem.capitalize(), showable) return res def getLabel(self, zobj): diff --git a/fields/phase.py b/fields/phase.py index 21ce046..63d13ff 100644 --- a/fields/phase.py +++ b/fields/phase.py @@ -136,14 +136,13 @@ class Phase: if (field.page.name in self.pages) or \ (field.page.name in self.hiddenPages): return # Add the page only if it must be shown. - isShowableOnView = field.page.isShowable(obj, 'view') - isShowableOnEdit = field.page.isShowable(obj, 'edit') - if isShowableOnView or isShowableOnEdit: - # The page must be added. + showable = field.page.isShowable(obj) + if showable: + # The page must be added self.pages.append(field.page.name) # Create the dict about page information and add it in self.pageInfo - pageInfo = Object(page=field.page, showOnView=isShowableOnView, - showOnEdit=isShowableOnEdit, links=None) + pageInfo = Object(page=field.page, showOnView=bool(showable), + showOnEdit=showable==True, links=None) pageInfo.update(field.page.getInfo(obj, layoutType)) self.pagesInfo[field.page.name] = pageInfo else: diff --git a/gen/tr/de.po b/gen/tr/de.po index fac8bff..aef0cb5 100644 --- a/gen/tr/de.po +++ b/gen/tr/de.po @@ -25,7 +25,7 @@ msgstr "Kommentar" #. Default: "Manager" msgid "role_Manager" -msgstr "" +msgstr "Systemmanager" #. Default: "Anonymous" msgid "role_Anonymous" @@ -37,7 +37,7 @@ msgstr "" #. Default: "Owner" msgid "role_Owner" -msgstr "" +msgstr "Eigentümer" #. Default: "Title" msgid "appy_title" @@ -45,7 +45,7 @@ msgstr "Titel" #. Default: "Ok" msgid "appy_ok" -msgstr "" +msgstr "OK" #. Default: "Data change" msgid "data_change" diff --git a/gen/tr/es.po b/gen/tr/es.po index e9f272f..5761396 100644 --- a/gen/tr/es.po +++ b/gen/tr/es.po @@ -37,7 +37,7 @@ msgstr "" #. Default: "Owner" msgid "role_Owner" -msgstr "" +msgstr "Proprietario" #. Default: "Title" msgid "appy_title" diff --git a/gen/wrappers/__init__.py b/gen/wrappers/__init__.py index cc2ea0f..814303c 100644 --- a/gen/wrappers/__init__.py +++ b/gen/wrappers/__init__.py @@ -70,8 +70,8 @@ class AbstractWrapper(object): - :phases[0].pxAllPhases''') + + :phases[0].pxAllPhases''') # The template PX for all pages. pxTemplate = Px('''