From 9aa4bc0d8b0e0655702d3e03e478d57aafdce208 Mon Sep 17 00:00:00 2001 From: Romain Courteaud <romain@nexedi.com> Date: Tue, 4 Feb 2020 13:46:18 +0000 Subject: [PATCH] erp5_web: reuse the web section logic --- .../StaticWebSection_getDocumentValue.py | 73 +------------------ .../StaticWebSection_getDocumentValue.xml | 2 +- 2 files changed, 2 insertions(+), 73 deletions(-) diff --git a/bt5/erp5_web/SkinTemplateItem/portal_skins/erp5_web/StaticWebSection_getDocumentValue.py b/bt5/erp5_web/SkinTemplateItem/portal_skins/erp5_web/StaticWebSection_getDocumentValue.py index 3eddcbb527..df564bd411 100644 --- a/bt5/erp5_web/SkinTemplateItem/portal_skins/erp5_web/StaticWebSection_getDocumentValue.py +++ b/bt5/erp5_web/SkinTemplateItem/portal_skins/erp5_web/StaticWebSection_getDocumentValue.py @@ -1,72 +1 @@ -""" - This script is part of ERP5 Web - - ERP5 Web is a business template of ERP5 which provides a way - to create web sites which can display selected - ERP5 contents through multiple custom web layouts. - - The default implementation searches for - documents which are in the user language if any - and which reference is equal to the name parameter. - - Other implementations are possible: ex. display the last - version in the closest language rather than - the latest version in the user language. - - NOTE: - - the portal parameter was introduced to - fix acquisition issues within the _aq_dynamic - lookup from WebSection class. -""" -from Products.ZSQLCatalog.SQLCatalog import SimpleQuery, ComplexQuery -if portal is None: portal = context.getPortalObject() - -# The list of portal types here should be large enough to include -# all portal_types defined in the various sections so that -# href tags which point to a document by reference can still work. -valid_portal_type_list = portal.getPortalDocumentTypeList() - -# Find the applicable language -if language is None: - language = portal.Localizer.get_selected_language() - -if validation_state is None: - validation_state = ('released', 'released_alive', 'published', 'published_alive', - 'shared', 'shared_alive', 'public', 'validated') - -if effective_date is None: - if now is None: - now = DateTime() - effective_date = ComplexQuery( - SimpleQuery(effective_date=None), - SimpleQuery(effective_date=now, comparison_operator='<='), - logical_operator='or', - ) - -# Note: In sorts, NULL is considered lesser than non-NULL. So in descending -# sort, NULLs will be listed after non-NULLs, which is perfect for -# effective_date, which defines the date at which content becomes effective. -# None (NULL) effective date hence means "effective since infinite in te past". -base_sort = (('effective_date', 'descending'), ) - -# Portal Type and validation state should be handled by predicate -# By default -document_list = context.searchResults( - reference=name, - effective_date=effective_date, - portal_type=valid_portal_type_list, - language=(language, ''), - sort_on=(('language', 'descending'), ) + base_sort, - limit=1, - **kw) - -if len(document_list) == 0: - # Default returns None - document = None -else: - # Try to get the first page on the list - document = document_list[0] - document = document.getObject() - -# return the web page -return document +return context.WebSection_getDocumentValue(name, **kw) diff --git a/bt5/erp5_web/SkinTemplateItem/portal_skins/erp5_web/StaticWebSection_getDocumentValue.xml b/bt5/erp5_web/SkinTemplateItem/portal_skins/erp5_web/StaticWebSection_getDocumentValue.xml index 121759e7a0..d98f875830 100644 --- a/bt5/erp5_web/SkinTemplateItem/portal_skins/erp5_web/StaticWebSection_getDocumentValue.xml +++ b/bt5/erp5_web/SkinTemplateItem/portal_skins/erp5_web/StaticWebSection_getDocumentValue.xml @@ -50,7 +50,7 @@ </item> <item> <key> <string>_params</string> </key> - <value> <string>name, portal=None, language=None, validation_state=None, effective_date=None, now=None, **kw</string> </value> + <value> <string>name, **kw</string> </value> </item> <item> <key> <string>id</string> </key> -- 2.30.9