Commit 7c72a354 authored by Arnaud Fontaine's avatar Arnaud Fontaine
Browse files

ZODB Components: Migrate Products.ERP5.Document.Document.

parent 5a3a1624
......@@ -40,8 +40,8 @@ from Acquisition import aq_base
from Products.ERP5Type import Permissions, PropertySheet
from Products.ERP5Type.Utils import fill_args_from_request
from Products.ERP5.Document.File import File
from Products.ERP5.Document.Document import Document, ConversionError,\
from erp5.component.document.File import File
from erp5.component.document.Document import Document, ConversionError,\
VALID_TEXT_FORMAT_LIST, VALID_TRANSPARENT_IMAGE_FORMAT_LIST,\
DEFAULT_DISPLAY_ID_LIST, _MARKER
from os.path import splitext
......@@ -52,7 +52,7 @@ from zLOG import LOG, WARNING
from erp5.component.module.ImageUtil import transformUrlToDataURI
# import mixin
from Products.ERP5.mixin.text_convertable import TextConvertableMixin
from erp5.component.mixin.TextConvertableMixin import TextConvertableMixin
def getDefaultImageQuality(portal, format=None): # pylint: disable=redefined-builtin
preference_tool = portal.portal_preferences
......
......@@ -35,24 +35,24 @@ from zope.contenttype import guess_content_type
from Products.CMFCore.utils import getToolByName
from Products.ERP5Type import Permissions, PropertySheet
from Products.ERP5Type.Cache import CachingMethod
from Products.ERP5.Document.File import File
from Products.ERP5.Document.Document import Document, \
from erp5.component.document.File import File
from erp5.component.document.Document import Document, \
VALID_IMAGE_FORMAT_LIST, ConversionError, NotConvertedError
from Products.ERP5Type.Utils import fill_args_from_request
# Mixin Import
from erp5.component.mixin.BaseConvertableFileMixin import BaseConvertableFileMixin
from Products.ERP5.mixin.text_convertable import TextConvertableMixin
from erp5.component.mixin.TextConvertableMixin import TextConvertableMixin
from erp5.component.mixin.OOoDocumentExtensibleTraversableMixin import OOoDocumentExtensibleTraversableMixin
EMBEDDED_FORMAT = '_embedded'
from Products.ERP5.Document.Document import DocumentConversionServerProxy
from erp5.component.document.Document import DocumentConversionServerProxy
# Backward compatibility only
from Products.ERP5.Document.Document import DOCUMENT_CONVERSION_SERVER_PROXY_TIMEOUT as OOO_SERVER_PROXY_TIMEOUT # pylint: disable=unused-import
from Products.ERP5.Document.Document import DOCUMENT_CONVERSION_SERVER_RETRY as OOO_SERVER_RETRY # pylint: disable=unused-import
from Products.ERP5.Document.Document import global_server_proxy_uri_failure_time # pylint: disable=unused-import
from Products.ERP5.Document.Document import enc, dec
from erp5.component.document.Document import DOCUMENT_CONVERSION_SERVER_PROXY_TIMEOUT as OOO_SERVER_PROXY_TIMEOUT # pylint: disable=unused-import
from erp5.component.document.Document import DOCUMENT_CONVERSION_SERVER_RETRY as OOO_SERVER_RETRY # pylint: disable=unused-import
from erp5.component.document.Document import global_server_proxy_uri_failure_time # pylint: disable=unused-import
from erp5.component.document.Document import enc, dec
OOoServerProxy = DocumentConversionServerProxy
class OOoDocument(OOoDocumentExtensibleTraversableMixin, BaseConvertableFileMixin, File,
......
......@@ -33,7 +33,7 @@ from Products.CMFCore.utils import getToolByName
from Products.ERP5Type import Permissions, PropertySheet
from Products.ERP5Type.Utils import deprecated
from erp5.component.document.Coordinate import Coordinate
from Products.ERP5.mixin.url import UrlMixin
from erp5.component.mixin.UrlMixin import UrlMixin
from zLOG import LOG
......
......@@ -30,7 +30,7 @@
from AccessControl.SecurityManagement import setSecurityManager
from Products.CMFCore.utils import _checkConditionalGET, _setCacheHeaders, _ViewEmulator
from OFS.Image import File as OFSFile
from Products.ERP5.Document.Document import ConversionError, NotConvertedError
from erp5.component.document.Document import ConversionError, NotConvertedError
from Products.ERP5.mixin.base_extensible_traversable import BaseExtensibleTraversableMixin
from Products.ERP5.mixin.document_extensible_traversable import DocumentExtensibleTraversableMixin
......
......@@ -28,7 +28,7 @@
import urllib2
from lxml import etree
from Products.ERP5.Document.Document import ConversionError
from erp5.component.document.Document import ConversionError
SVG_DEFAULT_NAMESPACE = "http://www.w3.org/2000/svg"
......
......@@ -2,7 +2,7 @@
from Products.PortalTransforms.interfaces import ITransform
from zope.interface import implements
from Products.ERP5.Document.Document import DocumentConversionServerProxy, ConversionError, enc, dec
from erp5.component.document.Document import DocumentConversionServerProxy, ConversionError, enc, dec
class DocumentConversionServerTransform:
"""
Transformer using Conversion Server
......
......@@ -18,7 +18,7 @@ from cStringIO import StringIO
from AccessControl import ClassSecurityInfo
from Products.ERP5Type import Permissions, PropertySheet
from Products.ERP5Type.Base import removeIContentishInterface
from Products.ERP5.Document.File import File, _MARKER
from erp5.component.document.File import File, _MARKER
from Products.ERP5Type.BTreeData import BTreeData
from ZPublisher.HTTPRequest import FileUpload
from ZPublisher import HTTPRangeSupport
......
......@@ -6291,59 +6291,6 @@ class TestBusinessTemplate(BusinessTemplateMixin):
""")
sequence_list.play(self)
def test_167_InstanceAndRelatedClassDefinedInSameBT(self):
# This test does too much since we don't modify objects anymore during
# download. Objects are cleaned up during installation, which does not
# require any specific action about garbage collection or pickle cache.
from Products.ERP5.Document.BusinessTemplate import BaseTemplateItem
portal = self.portal
BaseTemplateItem_removeProperties = BaseTemplateItem.removeProperties
object_id_list = 'old_file', 'some_file'
marker_list = []
def removeProperties(self, obj, export):
# Check it works if the object is modified during install.
if obj.id in object_id_list:
obj.int_index = marker_list.pop()
return obj
import Products.ERP5.tests
try:
BaseTemplateItem.removeProperties = removeProperties
template_tool = portal.portal_templates
bt_path = os.path.join(os.path.dirname(Products.ERP5.tests.__file__),
'test_data',
'test_167_InstanceAndRelatedClassDefinedInSameBT')
# create a previously existing instance of the overriden document type
File = portal.portal_types.getPortalTypeClass('File')
portal._setObject('another_file', File('another_file'))
self.tic()
# logged errors could keep a reference to a traceback having a reference
# to 'another_file' object
self.logged = []
# check its class has not yet been overriden
self.assertFalse(getattr(portal.another_file, 'isClassOverriden', False))
for i in (0, 1):
marker_list += [i] * len(object_id_list)
gc.disable()
bt = template_tool.download(bt_path)
assert marker_list
if i:
self.tic()
bt.install(force=1)
assert not marker_list
gc.enable()
for id in object_id_list:
self.assertEqual(getattr(portal, id).int_index, i)
self.tic()
finally:
BaseTemplateItem.removeProperties = BaseTemplateItem_removeProperties
gc.enable()
# check the previously existing instance now behaves as the overriden class
self.assertTrue(getattr(portal.another_file, 'isClassOverriden', False))
# test uninstall is effective
self.uninstallBusinessTemplate('test_167_InstanceAndRelatedClassDefinedInSameBT')
# check both File instances no longer behave like being overriden
self.assertFalse(getattr(portal.another_file, 'isClassOverriden', False))
def test_168_CheckPortalTypeAndPathInSameBusinessTemplate(self, change_broken_object=False):
"""
Make sure we can define a portal type and instance of that portal type
......
......@@ -28,7 +28,7 @@
# Cloudooo uses zip= argument, which is also a python builtin
# pylint: disable=redefined-builtin
from Products.ERP5.Document.Document import DocumentConversionServerProxy
from erp5.component.document.Document import DocumentConversionServerProxy
from base64 import b64encode, b64decode
from zExceptions import Unauthorized
......
......@@ -29,8 +29,8 @@
from AccessControl import ClassSecurityInfo
from Products.ERP5Type import Permissions, PropertySheet
from Products.ERP5Type.XMLObject import XMLObject
from Products.ERP5.mixin.url import UrlMixin
from Products.ERP5.mixin.crawlable import CrawlableMixin
from erp5.component.mixin.UrlMixin import UrlMixin
from erp5.component.mixin.CrawlableMixin import CrawlableMixin
class ExternalSource(XMLObject, UrlMixin, CrawlableMixin):
"""
......
......@@ -34,7 +34,7 @@ from AccessControl import ClassSecurityInfo
from Products.ERP5Type import Permissions, PropertySheet
from erp5.component.interface.IWatermarkable import IWatermarkable
from erp5.component.document.Image import Image
from Products.ERP5.Document.Document import ConversionError
from erp5.component.document.Document import ConversionError
from subprocess import Popen, PIPE
from zLOG import LOG, INFO, PROBLEM
import errno
......
from Products.ERP5.Document.Document import ConversionError
from erp5.component.document.Document import ConversionError
from erp5.component.module.Log import log
from ZODB.POSException import ConflictError
from xmlrpclib import Fault
......
from ZODB.POSException import ConflictError
from Products.ERP5.Document.Document import ConversionError
from erp5.component.document.Document import ConversionError
from erp5.component.module.Log import log
message = None
......
# this script has an `format` argument
# pylint: disable=redefined-builtin
from Products.ERP5.Document.Document import VALID_IMAGE_FORMAT_LIST
from erp5.component.document.Document import VALID_IMAGE_FORMAT_LIST
if format in VALID_IMAGE_FORMAT_LIST:
# we do not have any data so we can allow conversion to proceed and lead to a
......
......@@ -59,7 +59,7 @@ from Products.ERP5Type.tests.utils import DummyLocalizer
from Products.ERP5OOo.OOoUtils import OOoBuilder
from AccessControl.SecurityManagement import newSecurityManager
from AccessControl import getSecurityManager
from Products.ERP5.Document.Document import NotConvertedError
from erp5.component.document.Document import NotConvertedError
from Products.ERP5Form.PreferenceTool import Priority
from Products.ERP5Type.tests.utils import createZODBPythonScript
from Products.ERP5Type.Globals import get_request
......
......@@ -42,7 +42,7 @@ from AccessControl.SecurityManagement import newSecurityManager
from Testing import ZopeTestCase
from Products.ERP5Type.tests.ERP5TypeTestCase import ERP5TypeTestCase
from Products.ERP5Type.tests.utils import FileUpload, createZODBPythonScript
from Products.ERP5.Document.Document import ConversionError
from erp5.component.document.Document import ConversionError
from PIL import Image
......
# -*- coding: utf-8 -*-
from AccessControl import ClassSecurityInfo
from Products.ERP5Type import Permissions, PropertySheet
from Products.ERP5.Document.File import File, _MARKER
from erp5.component.document.File import File, _MARKER
from ZPublisher import HTTPRangeSupport
from Products.CMFCore.utils import _setCacheHeaders, _ViewEmulator
from Products.CMFCore.utils import _checkConditionalGET
......
......@@ -64,7 +64,7 @@ class OAuthTool(BaseTool):
InitializeClass(OAuthTool)
import sys
sys.modules['Products.ERP5TioSafe.Tool.OAuthTool'] = sys.modules[__name__]
sys.modules['erp5.component.tool.OAuthTool'] = sys.modules[__name__]
class DummyClassForUnpickle(object):
def __init__(self, *_, **__):
pass
......
......@@ -66,7 +66,6 @@ from Products.ERP5Type.dynamic.lazy_class import ERP5BaseBroken
from Products.ERP5Type.dynamic.portal_type_class import synchronizeDynamicModules
from Products.ERP5Type.Core.PropertySheet import PropertySheet as PropertySheetDocument
from Products.ERP5Type.TransactionalVariable import getTransactionalVariable
from Products.ERP5.Document.File import File
from OFS.Traversable import NotFound
from OFS import SimpleItem, XMLExportImport
from OFS.Image import Pdata
......@@ -1520,7 +1519,7 @@ class ObjectTemplateItem(BaseTemplateItem):
container.getParentValue().updateCache()
elif obj.__class__.__name__ in ('File', 'Image'):
if "data" in obj.__dict__:
File._setData.__func__(obj, obj.data)
obj._setData(obj.data)
elif (container.meta_type == 'CMF Skins Tool') and \
(old_obj is not None):
# Keep compatibility with previous export format of
......@@ -6548,7 +6547,6 @@ Business Template is a set of definitions, such as skins, portal types and categ
# Business Template
'Products.ERP5.Document.TrashBin',
'Products.ERP5.Tool.TrashTool',
'Products.ERP5.Document.File',
'Products.ERP5.Document.PythonScript',
'Products.ERP5.Document.BusinessTemplate',
'Products.ERP5.Tool.TemplateTool',
......
......@@ -42,7 +42,6 @@ from Products.ERP5Type.Tool.BaseTool import BaseTool
from Products.ERP5Type import Permissions
from Products.ERP5Type.Utils import reencodeUrlEscapes
from Products.ERP5 import _dtmldir
from Products.ERP5.mixin.url import no_crawl_protocol_list
from Products.ERP5Type.Utils import fill_args_from_request
from AccessControl import Unauthorized
......@@ -563,6 +562,7 @@ class ContributionTool(BaseTool):
if depth < 0:
# Do nothing if crawling depth is reached
return
from erp5.component.mixin.UrlMixin import no_crawl_protocol_list
for url in set(content.getContentNormalisedURLList()):
# LOG('trying to crawl', 0, url)
# Some url protocols should not be crawled
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment