Sample code for ZODB classes
Showing
# -*- coding: utf-8 -*- | |||
############################################################################## | |||
# | |||
# Copyright (c) 2010 Nexedi SA and Contributors. All Rights Reserved. | |||
# | |||
# WARNING: This program as such is intended to be used by professional | |||
# programmers who take the whole responsibility 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 | |||
# guarantees 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. | |||
# | |||
############################################################################## | |||
from AccessControl import ClassSecurityInfo | |||
from Products.CMFCore.utils import getToolByName | |||
from Products.ERP5Type import Permissions, PropertySheet, Constraint, interfaces | |||
from Products.ERP5Type.Base import Base | |||
class DocumentComponent(Base): | |||
# CMF Type Definition | |||
meta_type = 'ERP5 Document Component' | |||
portal_type = 'Document Component' | |||
isPortalContent = 1 | |||
isRADContent = 1 | |||
isDelivery = 1 | |||
|
|||
# Declarative security | |||
security = ClassSecurityInfo() | |||
security.declareObjectProtected(Permissions.AccessContentsInformation) | |||
# Declarative properties | |||
property_sheets = ( PropertySheet.Base | |||
, PropertySheet.XMLObject | |||
, PropertySheet.CategoryCore | |||
, PropertySheet.DublinCore | |||
, PropertySheet.Version | |||
, PropertySheet.TextDocument | |||
) | |||
def loadComponent(self): | |||
""" | |||
""" | |||
from Products.ERP5Type.Utils import importLocalDocument | |||
from App.config import getConfiguration | |||
instance_home = getConfiguration().instancehome | |||
path = '%s/component/document' % instance_home | |||
component_path = '%s/%s.py' % (path, self.getReference()) # using ID would be better... with some extensions in importLocalDocument | |||
component_file = open(component_path, 'w') | |||
component_file.write(self.getTextContent()) | |||
component_file.close() | |||
importLocalDocument(self.getReference(), path=path) |