7 # THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED |
7 # THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED |
8 # WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
8 # WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
9 # WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS |
9 # WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS |
10 # FOR A PARTICULAR PURPOSE. |
10 # FOR A PARTICULAR PURPOSE. |
11 # |
11 # |
12 |
|
13 __docformat__ = 'restructuredtext' |
|
14 |
12 |
15 from persistent import Persistent |
13 from persistent import Persistent |
16 from pyramid.events import subscriber |
14 from pyramid.events import subscriber |
17 from zope.container.contained import Contained |
15 from zope.container.contained import Contained |
18 from zope.container.ordered import OrderedContainer |
16 from zope.container.ordered import OrderedContainer |
19 from zope.interface import implementer |
17 from zope.interface import implementer |
20 from zope.lifecycleevent.interfaces import IObjectAddedEvent |
18 from zope.lifecycleevent.interfaces import IObjectAddedEvent |
21 from zope.location.interfaces import ISublocations |
19 from zope.location.interfaces import ISublocations |
22 from zope.schema import getFieldsInOrder |
20 from zope.schema import getFieldsInOrder |
23 from zope.schema.fieldproperty import FieldProperty |
21 from zope.schema.fieldproperty import FieldProperty |
24 from zope.schema.vocabulary import SimpleVocabulary, SimpleTerm |
22 from zope.schema.vocabulary import SimpleTerm, SimpleVocabulary |
25 from zope.traversing.interfaces import ITraversable |
23 from zope.traversing.interfaces import ITraversable |
26 |
24 |
27 from pyams_content.component.extfile.interfaces import IExtFileContainerTarget |
25 from pyams_content.component.extfile.interfaces import IExtFileContainerTarget |
28 from pyams_content.component.links.interfaces import ILinkContainerTarget |
26 from pyams_content.component.links.interfaces import ILinkContainerTarget |
29 from pyams_content.component.paragraph.interfaces import IParagraphContainerTarget |
27 from pyams_content.component.paragraph.interfaces import IParagraphContainerTarget |
30 from pyams_content.component.theme.interfaces import IThemesTarget, IThemesInfo |
28 from pyams_content.component.theme.interfaces import IThemesInfo, IThemesTarget |
31 from pyams_content.interfaces import MANAGE_TOOL_PERMISSION |
29 from pyams_content.interfaces import MANAGE_TOOL_PERMISSION |
32 from pyams_content.shared.common import WfSharedContent, IWfSharedContentFactory |
30 from pyams_content.shared.common import IWfSharedContentFactory, WfSharedContent |
33 from pyams_content.shared.common.interfaces import ISharedContentFactory |
31 from pyams_content.shared.common.interfaces import ISharedContentFactory |
34 from pyams_content.shared.common.interfaces.types import IDataType, ISubType, IBaseDataType, ITypedSharedTool, \ |
32 from pyams_content.shared.common.interfaces.types import ALL_DATA_TYPES_VOCABULARY, \ |
35 ITypedDataManager, DATA_MANAGER_ANNOTATION_KEY, DATA_TYPES_VOCABULARY, DATA_TYPE_FIELDS_VOCABULARY, \ |
33 DATA_MANAGER_ANNOTATION_KEY, DATA_SUBTYPES_VOCABULARY, DATA_TYPES_VOCABULARY, \ |
36 IWfTypedSharedContent, DATA_SUBTYPES_VOCABULARY, ALL_DATA_TYPES_VOCABULARY |
34 DATA_TYPE_FIELDS_VOCABULARY, IBaseDataType, IDataType, ISubType, ITypedDataManager, \ |
|
35 ITypedSharedTool, IWfTypedSharedContent |
37 from pyams_content.shared.common.manager import SharedTool |
36 from pyams_content.shared.common.manager import SharedTool |
38 from pyams_form.interfaces.form import IFormContextPermissionChecker |
37 from pyams_form.interfaces.form import IFormContextPermissionChecker |
39 from pyams_i18n.interfaces import II18n |
38 from pyams_i18n.interfaces import II18n |
40 from pyams_sequence.reference import get_reference_target |
39 from pyams_sequence.reference import get_reference_target |
41 from pyams_utils.adapter import adapter_config, ContextAdapter, get_annotation_adapter |
40 from pyams_utils.adapter import ContextAdapter, adapter_config, get_annotation_adapter |
42 from pyams_utils.factory import factory_config |
41 from pyams_utils.factory import factory_config |
43 from pyams_utils.registry import get_local_registry |
42 from pyams_utils.registry import get_local_registry |
44 from pyams_utils.request import check_request |
43 from pyams_utils.request import check_request |
45 from pyams_utils.traversing import get_parent |
44 from pyams_utils.traversing import get_parent |
46 from pyams_utils.vocabulary import vocabulary_config |
45 from pyams_utils.vocabulary import vocabulary_config |
47 |
46 |
48 |
47 |
|
48 __docformat__ = 'restructuredtext' |
|
49 |
|
50 |
49 class BaseDataType(Persistent, Contained): |
51 class BaseDataType(Persistent, Contained): |
50 """Base data type""" |
52 """Base data type""" |
51 |
53 |
52 label = FieldProperty(IBaseDataType['label']) |
54 label = FieldProperty(IBaseDataType['label']) |
53 source_folder = FieldProperty(IBaseDataType['source_folder']) |
55 source_folder = FieldProperty(IBaseDataType['source_folder']) |