From 5265b199189daa2ad56836574453c155b0f5888f Mon Sep 17 00:00:00 2001 From: Jean-Paul Smets <jp@nexedi.com> Date: Fri, 19 Jan 2007 15:00:34 +0000 Subject: [PATCH] Use WebSection propertysheet git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@12169 20353a03-c40f-0410-a6d1-a30d3c3de9de --- product/ERP5/Document/WebSection.py | 7 ++- product/ERP5/Document/WebSite.py | 2 +- product/ERP5/PropertySheet/WebSection.py | 74 ++++++++++++++++++++++++ 3 files changed, 80 insertions(+), 3 deletions(-) create mode 100644 product/ERP5/PropertySheet/WebSection.py diff --git a/product/ERP5/Document/WebSection.py b/product/ERP5/Document/WebSection.py index 302bee95d6..515e11dd13 100644 --- a/product/ERP5/Document/WebSection.py +++ b/product/ERP5/Document/WebSection.py @@ -112,7 +112,7 @@ class WebSection(Domain): , PropertySheet.XMLObject , PropertySheet.CategoryCore , PropertySheet.DublinCore - , PropertySheet.WebSite + , PropertySheet.WebSection , PropertySheet.SortIndex , PropertySheet.Predicate ) @@ -171,7 +171,10 @@ class WebSection(Domain): if request[CACHE_KEY].has_key(WEBSITE_USER): user = request[CACHE_KEY][WEBSITE_USER] # Retrieve user from request cache else: - user = portal.acl_users.getUserById(self.getWebmaster()) + # Cache webmaster for faster lookup + if not hasattr(aq_base(self), '_v_section_webmaster'): + self._v_section_webmaster = self.getWebmaster() + user = portal.acl_users.getUserById(self._v_section_webmaster) request[CACHE_KEY][WEBSITE_USER] = user # Cache user per request if user is not None: old_manager = getSecurityManager() diff --git a/product/ERP5/Document/WebSite.py b/product/ERP5/Document/WebSite.py index 37a4f23faa..9c5f6a3bc2 100644 --- a/product/ERP5/Document/WebSite.py +++ b/product/ERP5/Document/WebSite.py @@ -120,7 +120,7 @@ class WebSite(WebSection): , PropertySheet.XMLObject , PropertySheet.CategoryCore , PropertySheet.DublinCore - , PropertySheet.WebSite + , PropertySheet.WebSection , PropertySheet.Predicate ) diff --git a/product/ERP5/PropertySheet/WebSection.py b/product/ERP5/PropertySheet/WebSection.py new file mode 100644 index 0000000000..8dccfa4666 --- /dev/null +++ b/product/ERP5/PropertySheet/WebSection.py @@ -0,0 +1,74 @@ +############################################################################## +# +# Copyright (c) 2002 Nexedi SARL and Contributors. All Rights Reserved. +# +# WARNING: This program as such is intended to be used by professional +# programmers who take the whole responsability of assessing all potential +# consequences resulting from its eventual inadequacies and bugs +# End users who are looking for a ready-to-use solution with commercial +# garantees and support are strongly adviced to contract a Free Software +# Service Company +# +# 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 the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# +############################################################################## + +class WebSection: + """ + WebSite properties for all ERP5 objects + """ + + _properties = ( + { 'id' : 'container_layout', + 'description' : 'ID of a page template or form which defines the rendering layout for the container', + 'type' : 'string', + 'default' : None, + 'acquisition_base_category' : ('parent',), + 'acquisition_portal_type' : ('Web Section', 'Web Site'), + 'acquisition_copy_value' : 0, + 'acquisition_mask_value' : 1, + 'acquisition_accessor_id' : 'getContainerLayout', + 'acquisition_depends' : None, + 'mode' : '' }, + { 'id' : 'content_layout', + 'description' : 'ID of a page template or form which defines the rendering layout for contents', + 'type' : 'string', + 'default' : None, + 'acquisition_base_category' : ('parent',), + 'acquisition_portal_type' : ('Web Section', 'Web Site'), + 'acquisition_copy_value' : 0, + 'acquisition_mask_value' : 1, + 'acquisition_accessor_id' : 'getContentLayout', + 'acquisition_depends' : None, + 'mode' : '' }, + { 'id' : 'webmaster', + 'description' : 'ID of a user which has complete access to all documents in the site.', + 'type' : 'string', + 'default' : None, + 'acquisition_base_category' : ('parent',), + 'acquisition_portal_type' : ('Web Section', 'Web Site'), + 'acquisition_copy_value' : 0, + 'acquisition_mask_value' : 1, + 'acquisition_accessor_id' : 'getWebmaster', + 'acquisition_depends' : None, + 'mode' : '' }, + { 'id' : 'visible', + 'description' : 'Defines visibility of current section.', + 'type' : 'boolean', + 'mode' : '' }, + ) + + _categories = ('aggregate', ) + -- 2.30.9