Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
erp5
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Laurent S
erp5
Commits
279e67a9
Commit
279e67a9
authored
Feb 27, 2012
by
Arnaud Fontaine
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add Component interface.
parent
77a158d3
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
88 additions
and
9 deletions
+88
-9
product/ERP5Type/Core/DocumentComponent.py
product/ERP5Type/Core/DocumentComponent.py
+5
-0
product/ERP5Type/Core/ExtensionComponent.py
product/ERP5Type/Core/ExtensionComponent.py
+5
-0
product/ERP5Type/interfaces/component.py
product/ERP5Type/interfaces/component.py
+77
-0
product/ERP5Type/mixin/component.py
product/ERP5Type/mixin/component.py
+1
-9
No files found.
product/ERP5Type/Core/DocumentComponent.py
View file @
279e67a9
...
...
@@ -31,11 +31,16 @@ from Products.ERP5Type.mixin.component import ComponentMixin
from
AccessControl
import
ClassSecurityInfo
from
Products.ERP5Type
import
Permissions
import
zope.interface
from
Products.ERP5Type.interfaces.component
import
IComponent
class
DocumentComponent
(
ComponentMixin
):
# CMF Type Definition
meta_type
=
'ERP5 Document Component'
portal_type
=
'Document Component'
zope
.
interface
.
implements
(
IComponent
)
# Declarative security
security
=
ClassSecurityInfo
()
security
.
declareObjectProtected
(
Permissions
.
AccessContentsInformation
)
...
...
product/ERP5Type/Core/ExtensionComponent.py
View file @
279e67a9
...
...
@@ -31,11 +31,16 @@ from Products.ERP5Type.mixin.component import ComponentMixin
from
AccessControl
import
ClassSecurityInfo
from
Products.ERP5Type
import
Permissions
import
zope.interface
from
Products.ERP5Type.interfaces.component
import
IComponent
class
ExtensionComponent
(
ComponentMixin
):
# CMF Type Definition
meta_type
=
'ERP5 Extension Component'
portal_type
=
'Extension Component'
zope
.
interface
.
implements
(
IComponent
)
# Declarative security
security
=
ClassSecurityInfo
()
security
.
declareObjectProtected
(
Permissions
.
AccessContentsInformation
)
...
...
product/ERP5Type/interfaces/component.py
0 → 100644
View file @
279e67a9
# -*- coding: utf-8 -*-
##############################################################################
#
# Copyright (c) 2012 Nexedi SA and Contributors. All Rights Reserved.
# Arnaud Fontaine <arnaud.fontaine@nexedi.com>
#
# 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
zope.interface
import
Interface
class
IComponent
(
Interface
):
"""
ZODB Component interface. Component were previously defined on the
filesystem and are now defined in portal_components and can be bt5
Extensions or Documents, or any interfaces, mixin and Documents from
Products. Any Component class must implement this interface
"""
def
checkConsistency
(
obj
,
*
args
,
**
kwargs
):
"""
Check the consistency of a ZODB Component when validating from draft state
(manual user action) or when modified while already validated beforehand
"""
def
checkConsistencyAndValidate
(
obj
):
"""
After a previously validated Component is modified, check the consistency,
then if no error is returned, validate it
"""
def
getErrorMessageList
(
obj
):
"""
Return errors, if any, which may have arised when the Component has been
modified after being validated
"""
def
load
(
obj
,
namespace_dict
=
{},
validated_only
=
False
,
text_content
=
None
):
"""
Load the source code into the given dict
"""
def
_getFilesystemPath
():
"""
Return the filesystem Component path for import into ZODB
"""
def
_getDynamicModuleNamespace
():
"""
Return the module name where Component module are loaded into
"""
def
importFromFilesystem
(
cls
,
context
,
reference
,
version
,
erase_existing
=
False
):
"""
Import a Component from the filesystem into ZODB after checking that the
source code is valid
"""
product/ERP5Type/mixin/component.py
View file @
279e67a9
...
...
@@ -272,14 +272,6 @@ class ComponentMixin(PropertyRecordableMixin, Base):
exec
text_content
in
namespace_dict
@
staticmethod
def
_getFilesystemPath
():
raise
NotImplementedError
@
staticmethod
def
_getDynamicModuleNamespace
():
raise
NotImplementedError
security
.
declareProtected
(
Permissions
.
ModifyPortalContent
,
'PUT'
)
def
PUT
(
self
,
REQUEST
,
RESPONSE
):
"""
...
...
@@ -318,7 +310,7 @@ class ComponentMixin(PropertyRecordableMixin, Base):
def
importFromFilesystem
(
cls
,
context
,
reference
,
version
,
erase_existing
=
False
):
"""
Import a Component from the
given path
into ZODB after checking that the
Import a Component from the
filesystem
into ZODB after checking that the
source code is valid
"""
object_id
=
'%s.%s.%s'
%
(
cls
.
_getDynamicModuleNamespace
(),
version
,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment