10 # FOR A PARTICULAR PURPOSE. |
10 # FOR A PARTICULAR PURPOSE. |
11 # |
11 # |
12 |
12 |
13 __docformat__ = 'restructuredtext' |
13 __docformat__ = 'restructuredtext' |
14 |
14 |
15 |
|
16 # import standard library |
|
17 import json |
|
18 import logging |
15 import logging |
19 logger = logging.getLogger('PyAMS (form)') |
16 logger = logging.getLogger('PyAMS (form)') |
20 |
17 |
|
18 import json |
21 import transaction |
19 import transaction |
22 import venusian |
20 import venusian |
23 |
21 from persistent import IPersistent |
24 # import interfaces |
|
25 from pyams_form.interfaces.form import IFormLayer, IForm, IAJAXForm, IInnerSubForm, IInnerTabForm, \ |
|
26 ICustomUpdateSubForm, IFormCreatedEvent, FormCreatedEvent, IInnerForm, IFormContextPermissionChecker |
|
27 from pyams_form.interfaces.form import IAddFormButtons, IModalAddFormButtons, IEditFormButtons, \ |
|
28 IModalEditFormButtons, IModalDisplayFormButtons |
|
29 from pyams_form.interfaces import get_form_weight |
|
30 from pyams_form.interfaces.form import FormObjectCreatedEvent, FormObjectModifiedEvent |
|
31 from pyams_i18n.interfaces import II18n |
|
32 from pyams_skin.interfaces import IDialog, ISkinnable, IContentTitle |
|
33 from pyams_template.interfaces import IContentTemplate, ILayoutTemplate |
|
34 from pyams_utils.interfaces import FORBIDDEN_PERMISSION, ICacheKeyValue |
|
35 from pyramid_chameleon.interfaces import IChameleonTranslate |
|
36 from z3c.form.interfaces import DISPLAY_MODE, IErrorViewSnippet, IMultipleErrors |
|
37 from zope.publisher.interfaces.browser import IBrowserRequest |
|
38 from zope.schema.interfaces import ValidationError |
|
39 |
|
40 # import packages |
|
41 from pyams_form.group import GroupsBasedForm |
|
42 from pyams_pagelet.interfaces import PageletCreatedEvent |
|
43 from pyams_skin.skin import apply_skin |
|
44 from pyams_utils.adapter import adapter_config, ContextRequestViewAdapter |
|
45 from pyams_utils.url import absolute_url |
|
46 from pyramid.decorator import reify |
22 from pyramid.decorator import reify |
47 from pyramid.events import subscriber |
23 from pyramid.events import subscriber |
48 from pyramid.response import Response |
24 from pyramid.response import Response |
49 from pyramid_zope_request import PyramidToPublisher, PyramidPublisherRequest |
25 from pyramid_chameleon.interfaces import IChameleonTranslate |
|
26 from pyramid_zope_request import PyramidPublisherRequest, PyramidToPublisher |
50 from z3c.form.button import Buttons |
27 from z3c.form.button import Buttons |
51 from z3c.form.form import applyChanges, \ |
28 from z3c.form.form import AddForm as BaseAddForm, DisplayForm as BaseDisplayForm, EditForm as BaseEditForm, Form, \ |
52 Form, AddForm as BaseAddForm, EditForm as BaseEditForm, DisplayForm as BaseDisplayForm |
29 applyChanges |
|
30 from z3c.form.interfaces import DISPLAY_MODE, IErrorViewSnippet, IMultipleErrors |
53 from zope.component import queryUtility |
31 from zope.component import queryUtility |
54 from zope.interface import implementer, classImplements, alsoProvides, Interface |
32 from zope.interface import Interface, alsoProvides, classImplements, implementer |
55 from zope.lifecycleevent import Attributes, ObjectCreatedEvent |
33 from zope.lifecycleevent import Attributes, ObjectCreatedEvent |
56 from zope.location import locate |
34 from zope.location import locate |
|
35 from zope.publisher.interfaces.browser import IBrowserRequest |
57 from zope.schema.fieldproperty import FieldProperty |
36 from zope.schema.fieldproperty import FieldProperty |
|
37 from zope.schema.interfaces import ValidationError |
|
38 |
|
39 from pyams_form.group import GroupsBasedForm |
|
40 from pyams_form.interfaces import get_form_weight |
|
41 from pyams_form.interfaces.form import FormCreatedEvent, IAJAXForm, ICustomUpdateSubForm, IForm, \ |
|
42 IFormContextPermissionChecker, IFormCreatedEvent, IFormLayer, IInnerForm, IInnerSubForm, IInnerTabForm |
|
43 from pyams_form.interfaces.form import FormObjectCreatedEvent, FormObjectModifiedEvent |
|
44 from pyams_form.interfaces.form import IAddFormButtons, IEditFormButtons, IModalAddFormButtons, \ |
|
45 IModalDisplayFormButtons, IModalEditFormButtons |
|
46 from pyams_i18n.interfaces import II18n |
|
47 from pyams_pagelet.interfaces import PageletCreatedEvent |
|
48 from pyams_skin.interfaces import IContentTitle, IDialog, ISkinnable |
|
49 from pyams_skin.skin import apply_skin |
|
50 from pyams_template.interfaces import IContentTemplate, ILayoutTemplate |
|
51 from pyams_utils.adapter import ContextRequestViewAdapter, adapter_config |
|
52 from pyams_utils.interfaces import FORBIDDEN_PERMISSION, ICacheKeyValue |
|
53 from pyams_utils.url import absolute_url |
58 |
54 |
59 from pyams_form import _ |
55 from pyams_form import _ |
60 |
56 |
61 |
57 |
62 REDIRECT_STATUS_CODES = (300, 301, 302, 303, 304, 305, 307) |
58 REDIRECT_STATUS_CODES = (300, 301, 302, 303, 304, 305, 307) |