Commit fff0b2d4 authored by Jérome Perrin's avatar Jérome Perrin

Enable coding style on more business templates

base, trade, pdm, mrp and dms

See merge request !1073
parents c500c464 0b0b2126
......@@ -56,7 +56,7 @@ class Currency(Resource):
# Unit conversion
security.declareProtected(Permissions.AccessContentsInformation, 'convertQuantity')
def convertQuantity(self, quantity, from_unit, to_unit, variation_list=()):
def convertQuantity(self, quantity, from_unit, to_unit, variation_list=(), transformed_resource=None, transformed_variation_list=()):
# 'variation_list' parameter may be deprecated:
# cf Measure.getConvertedQuantity
return quantity
......
......@@ -6,6 +6,12 @@
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_recorded_property_dict</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>Currency</string> </value>
......@@ -14,6 +20,12 @@
<key> <string>default_source_reference</string> </key>
<value> <string>Products.ERP5.Document.Currency</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>document.erp5.Currency</string> </value>
......@@ -37,9 +49,7 @@
<item>
<key> <string>text_content_warning_message</string> </key>
<value>
<tuple>
<string>W: 59, 2: Arguments number differs from overridden \'convertQuantity\' method (arguments-differ)</string>
</tuple>
<tuple/>
</value>
</item>
<item>
......@@ -49,13 +59,28 @@
<item>
<key> <string>workflow_history</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary/>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
......@@ -68,7 +93,7 @@
<item>
<key> <string>component_validation_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
</value>
</item>
</dictionary>
......@@ -77,7 +102,7 @@
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<record id="4" aka="AAAAAAAAAAQ=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.Workflow"/>
</pickle>
......
......@@ -54,7 +54,7 @@ from Products.ERP5Type.ImageUtil import transformUrlToDataURI
# import mixin
from Products.ERP5.mixin.text_convertable import TextConvertableMixin
def getDefaultImageQuality(portal, format=None):
def getDefaultImageQuality(portal, format=None): # pylint: disable=redefined-builtin
preference_tool = portal.portal_preferences
return preference_tool.getPreferredImageQuality()
......@@ -173,7 +173,10 @@ class Image(TextConvertableMixin, File, OFSImage):
return self.height
security.declareProtected(Permissions.AccessContentsInformation, 'getContentType')
def getContentType(self, default=_MARKER):
def getContentType( # pylint: disable=arguments-differ,dangerous-default-value
self,
default=_MARKER,
):
"""Original photo content_type."""
self._upgradeImage()
if self.hasData() and not self.hasContentType():
......@@ -208,8 +211,13 @@ class Image(TextConvertableMixin, File, OFSImage):
return links
security.declareProtected(Permissions.AccessContentsInformation, 'displayMap')
def displayMap(self, exclude=None, format=None, quality=_MARKER,\
resolution=None):
def displayMap( # pylint: disable=dangerous-default-value
self,
exclude=None,
format=None, # pylint: disable=redefined-builtin
quality=_MARKER,
resolution=None,
):
"""Return list of displays with size info."""
displays = []
if quality is _MARKER:
......@@ -236,7 +244,7 @@ class Image(TextConvertableMixin, File, OFSImage):
security.declarePrivate('_convertToText')
def _convertToText(self, format):
def _convertToText(self, format): # pylint: disable=redefined-builtin
"""
Convert the image to text with portaltransforms
"""
......@@ -258,7 +266,7 @@ class Image(TextConvertableMixin, File, OFSImage):
return mime_type, result
# Conversion API
def _convert(self, format, **kw):
def _convert(self, format, **kw): # pylint: disable=redefined-builtin
"""
Implementation of conversion for Image files
"""
......@@ -319,7 +327,16 @@ class Image(TextConvertableMixin, File, OFSImage):
# Photo processing
#
def _resize(self, quality, width, height, format, resolution, frame, crop=False):
def _resize(
self,
quality,
width,
height,
format, # pylint: disable=redefined-builtin
resolution,
frame,
crop=False,
):
"""Resize and resample photo."""
icc_profile = os.path.join(os.path.dirname(__file__),
'..', 'misc', 'sRGB.icc')
......@@ -376,7 +393,15 @@ class Image(TextConvertableMixin, File, OFSImage):
return StringIO(image)
raise ConversionError('Image conversion failed (%s).' % err)
def _getDisplayData(self, format, quality, resolution, frame, image_size, crop):
def _getDisplayData(
self,
format, # pylint: disable=redefined-builtin
quality,
resolution,
frame,
image_size,
crop,
):
"""Return raw photo data for given display."""
if crop:
width, height = image_size
......@@ -389,13 +414,19 @@ class Image(TextConvertableMixin, File, OFSImage):
return self.getData()
return self._resize(quality, width, height, format, resolution, frame, crop)
def _makeDisplayPhoto(self, format=None, quality=_MARKER,
resolution=None, frame=None, image_size=None,
crop=False):
def _makeDisplayPhoto( # pylint: disable=dangerous-default-value
self,
format=None, # pylint: disable=redefined-builtin
quality=_MARKER,
resolution=None,
frame=None,
image_size=None,
crop=False,
):
"""Create given display."""
if quality is _MARKER:
quality = self.getDefaultImageQuality(format)
width, height = image_size
width, height = image_size # pylint: disable=unpacking-non-sequence
base, ext = splitext(self.id)
id_ = '%s_%s_%s.%s'% (base, width, height, ext,)
image = OFSImage(id_, self.getTitle(),
......@@ -453,7 +484,7 @@ class Image(TextConvertableMixin, File, OFSImage):
self._update_image_info()
security.declareProtected(Permissions.AccessContentsInformation, 'getDefaultImageQuality')
def getDefaultImageQuality(self, format=None):
def getDefaultImageQuality(self, format=None): # pylint: disable=redefined-builtin
"""
Get default image quality for a format.
"""
......
......@@ -6,6 +6,12 @@
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_recorded_property_dict</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>Image</string> </value>
......@@ -14,6 +20,12 @@
<key> <string>default_source_reference</string> </key>
<value> <string>Products.ERP5.Document.Image</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>document.erp5.Image</string> </value>
......@@ -37,21 +49,7 @@
<item>
<key> <string>text_content_warning_message</string> </key>
<value>
<tuple>
<string>W: 57, 35: Redefining built-in \'format\' (redefined-builtin)</string>
<string>W:176, 2: Dangerous default value _MARKER (__builtin__.list) as argument (dangerous-default-value)</string>
<string>W:176, 2: Arguments number differs from overridden \'getContentType\' method (arguments-differ)</string>
<string>W:211, 37: Redefining built-in \'format\' (redefined-builtin)</string>
<string>W:211, 2: Dangerous default value _MARKER (__builtin__.list) as argument (dangerous-default-value)</string>
<string>W:239, 27: Redefining built-in \'format\' (redefined-builtin)</string>
<string>W:261, 21: Redefining built-in \'format\' (redefined-builtin)</string>
<string>W:322, 44: Redefining built-in \'format\' (redefined-builtin)</string>
<string>W:379, 28: Redefining built-in \'format\' (redefined-builtin)</string>
<string>W:392, 30: Redefining built-in \'format\' (redefined-builtin)</string>
<string>W:392, 2: Dangerous default value _MARKER (__builtin__.list) as argument (dangerous-default-value)</string>
<string>W:398, 4: Attempting to unpack a non-sequence defined at line 393 (unpacking-non-sequence)</string>
<string>W:456, 35: Redefining built-in \'format\' (redefined-builtin)</string>
</tuple>
<tuple/>
</value>
</item>
<item>
......@@ -61,13 +59,28 @@
<item>
<key> <string>workflow_history</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary/>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
......@@ -80,7 +93,7 @@
<item>
<key> <string>component_validation_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
</value>
</item>
</dictionary>
......@@ -89,7 +102,7 @@
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<record id="4" aka="AAAAAAAAAAQ=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.Workflow"/>
</pickle>
......
......@@ -6,7 +6,7 @@
# programmers who take the whole responsability 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
# garantees and support are strongly adviced to contract a Free Software
# guarantees and support are strongly adviced to contract a Free Software
# Service Company
#
# This program is Free Software; you can redistribute it and/or
......@@ -30,9 +30,9 @@ from AccessControl import ClassSecurityInfo
from erp5.component.mixin.EncryptedPasswordMixin import EncryptedPasswordMixin
from erp5.component.mixin.LoginAccountProviderMixin import LoginAccountProviderMixin
from Products.ERP5Type import Permissions, PropertySheet, interfaces
from Products.ERP5Type.TransactionalVariable import getTransactionalVariable
from Products.ERP5Type.XMLObject import XMLObject
class Login(XMLObject, LoginAccountProviderMixin, EncryptedPasswordMixin):
meta_type = 'ERP5 Login'
portal_type = 'Login'
......
......@@ -76,13 +76,13 @@ class MappedProperty(XMLObject):
return mapping_dict
# XXX do we need to protect this method?
def getMappedPropertyId(self, property, reverse=False):
def getMappedPropertyId(self, property, reverse=False): # pylint: disable=redefined-builtin
return self.getMappingDict(reverse=reverse).get(property, property)
# Security should be handled by the target document not by the mapped
# property document.
security.declarePublic('getMappedProperty')
def getMappedProperty(self, document, property):
def getMappedProperty(self, document, property): # pylint: disable=redefined-builtin
if property.endswith('_list'):
property = property[:-5]
getProperty = document.getPropertyList
......@@ -98,7 +98,7 @@ class MappedProperty(XMLObject):
# Security should be handled by the target document not by the mapped
# property document.
security.declarePublic('setMappedProperty')
def setMappedProperty(self, document, property, value):
def setMappedProperty(self, document, property, value): # pylint: disable=redefined-builtin
if property.endswith('_list'):
property = property[:-5]
setProperty = document.setPropertyList
......
......@@ -6,6 +6,12 @@
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_recorded_property_dict</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>MappedProperty</string> </value>
......@@ -14,6 +20,12 @@
<key> <string>default_source_reference</string> </key>
<value> <string>Products.ERP5.Document.MappedProperty</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>document.erp5.MappedProperty</string> </value>
......@@ -37,11 +49,7 @@
<item>
<key> <string>text_content_warning_message</string> </key>
<value>
<tuple>
<string>W: 79, 32: Redefining built-in \'property\' (redefined-builtin)</string>
<string>W: 85, 40: Redefining built-in \'property\' (redefined-builtin)</string>
<string>W:101, 40: Redefining built-in \'property\' (redefined-builtin)</string>
</tuple>
<tuple/>
</value>
</item>
<item>
......@@ -51,13 +59,28 @@
<item>
<key> <string>workflow_history</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary/>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
......@@ -70,7 +93,7 @@
<item>
<key> <string>component_validation_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
</value>
</item>
</dictionary>
......@@ -79,7 +102,7 @@
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<record id="4" aka="AAAAAAAAAAQ=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.Workflow"/>
</pickle>
......
# -*- coding: utf-8 -*-
##############################################################################
#
......@@ -190,7 +189,7 @@ class OOoDocument(OOoDocumentExtensibleTraversableMixin, BaseConvertableFileMixi
return cached_getTargetFormatItemList(self.getBaseContentType())
def _getConversionFromProxyServer(self, format):
def _getConversionFromProxyServer(self, format): # pylint: disable=redefined-builtin
"""
Communicates with server to convert a file
"""
......@@ -226,7 +225,7 @@ class OOoDocument(OOoDocumentExtensibleTraversableMixin, BaseConvertableFileMixi
return response_dict['mime'], Pdata(dec(response_dict['data']))
# Conversion API
def _convert(self, format, frame=0, **kw):
def _convert(self, format, frame=0, **kw): # pylint: disable=redefined-builtin
"""Convert the document to the given format.
If a conversion is already stored for this format, it is returned
......@@ -346,8 +345,7 @@ class OOoDocument(OOoDocumentExtensibleTraversableMixin, BaseConvertableFileMixi
if zip_file is None:
format_list = [x for x in self.getTargetFormatList()
if x.startswith('html') or x.endswith('html')]
format = format_list[0]
mime, data = self._getConversionFromProxyServer(format)
mime, data = self._getConversionFromProxyServer(format_list[0])
archive_file = cStringIO.StringIO()
archive_file.write(str(data))
zip_file = zipfile.ZipFile(archive_file)
......
......@@ -6,6 +6,12 @@
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_recorded_property_dict</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>OOoDocument</string> </value>
......@@ -43,11 +49,7 @@
<item>
<key> <string>text_content_warning_message</string> </key>
<value>
<tuple>
<string>W:193, 42: Redefining built-in \'format\' (redefined-builtin)</string>
<string>W:229, 21: Redefining built-in \'format\' (redefined-builtin)</string>
<string>W:349, 6: Redefining built-in \'format\' (redefined-builtin)</string>
</tuple>
<tuple/>
</value>
</item>
<item>
......@@ -57,13 +59,28 @@
<item>
<key> <string>workflow_history</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary/>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
......@@ -76,7 +93,7 @@
<item>
<key> <string>component_validation_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
</value>
</item>
</dictionary>
......@@ -85,7 +102,7 @@
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<record id="4" aka="AAAAAAAAAAQ=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.Workflow"/>
</pickle>
......
......@@ -28,4 +28,7 @@
# for builders, and still distinguish order builders from others
# Once legacy simulation is dropped, "Order Builder" portal type should
# should be changed to use SimulatedDeliveryBuilder class.
from erp5.component.document.GeneratedDeliveryBuilder import GeneratedDeliveryBuilder as OrderBuilder
from erp5.component.document.GeneratedDeliveryBuilder import GeneratedDeliveryBuilder
class OrderBuilder(GeneratedDeliveryBuilder):
pass
......@@ -6,6 +6,12 @@
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_recorded_property_dict</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>OrderBuilder</string> </value>
......@@ -53,13 +59,28 @@
<item>
<key> <string>workflow_history</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary/>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
......@@ -72,7 +93,7 @@
<item>
<key> <string>component_validation_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
</value>
</item>
</dictionary>
......@@ -81,7 +102,7 @@
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<record id="4" aka="AAAAAAAAAAQ=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.Workflow"/>
</pickle>
......@@ -107,4 +128,4 @@
</dictionary>
</pickle>
</record>
</ZopeData>
\ No newline at end of file
</ZopeData>
##############################################################################
#
# Copyright (c) 2002-2005 Nexedi SARL and Contributors. All Rights Reserved.
......@@ -46,10 +45,19 @@ else:
from Products.ERP5Security.ERP5UserManager import ERP5UserManager
from Products.ERP5Security.ERP5LoginUserManager import ERP5LoginUserManager
class UserExistsError(ValidationFailed):
class UserExistsError(
ValidationFailed,
# to workaround pylint's false positive:
# Exception doesn't inherit from standard "Exception" class (nonstandard-exception)
# because it cannot import ValidationFailed (which is set by a monkey patch), we also
# inherit from Exception.
Exception,
):
def __init__(self, user_id):
super(UserExistsError, self).__init__('user id %s already exists' % (user_id, ))
class Person(Node, LoginAccountProviderMixin, EncryptedPasswordMixin, ERP5UserMixin):
"""
An Person object holds the information about
......@@ -91,7 +99,7 @@ class Person(Node, LoginAccountProviderMixin, EncryptedPasswordMixin, ERP5UserMi
security.declareProtected(Permissions.AccessContentsInformation,
'getTitle')
def getTitle(self, **kw):
def getTitle(self, **kw): # pylint: disable=super-on-old-class
"""
Returns the title if it exists or a combination of
first name, middle name and last name
......@@ -105,7 +113,7 @@ class Person(Node, LoginAccountProviderMixin, EncryptedPasswordMixin, ERP5UserMi
security.declareProtected(Permissions.AccessContentsInformation,
'getTranslatedTitle')
def getTranslatedTitle(self, **kw):
def getTranslatedTitle(self, **kw): # pylint: disable=super-on-old-class
"""
Returns the title if it exists or a combination of
first name, middle name and last name
......
......@@ -6,6 +6,12 @@
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_recorded_property_dict</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>Person</string> </value>
......@@ -43,11 +49,7 @@
<item>
<key> <string>text_content_warning_message</string> </key>
<value>
<tuple>
<string>W:158, 10: Exception doesn\'t inherit from standard "Exception" class (nonstandard-exception)</string>
<string>W:166, 6: Exception doesn\'t inherit from standard "Exception" class (nonstandard-exception)</string>
<string>W:178, 6: Exception doesn\'t inherit from standard "Exception" class (nonstandard-exception)</string>
</tuple>
<tuple/>
</value>
</item>
<item>
......@@ -57,13 +59,28 @@
<item>
<key> <string>workflow_history</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary/>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
......@@ -76,7 +93,7 @@
<item>
<key> <string>component_validation_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
</value>
</item>
</dictionary>
......@@ -85,7 +102,7 @@
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<record id="4" aka="AAAAAAAAAAQ=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.Workflow"/>
</pickle>
......
# -*- coding: utf-8 -*-
##############################################################################
#
......@@ -203,8 +202,8 @@ class SimulatedDeliveryBuilder(BuilderMixin):
if property_dict in (None, {}):
return
delivery = self.getPortalObject().restrictedTraverse(delivery_relative_url)
for (property, value) in property_dict.iteritems():
delivery.setPropertyList(property, value)
for (prop, value) in property_dict.iteritems():
delivery.setPropertyList(prop, value)
# Try to remove existing properties/categories from Movements that
# should exist on Deliveries.
......@@ -341,7 +340,7 @@ class SimulatedDeliveryBuilder(BuilderMixin):
'solveDivergence')
solveDivergence = UnrestrictedMethod(_solveDivergence)
def _createDelivery(self, delivery_module, movement_list, activate_kw):
def _createDelivery(self, delivery_module, movement_list, activate_kw): # pylint: disable=super-on-old-class
"""
Refer to the docstring in GeneratedDeliveryBuilder.
Unlike GeneratedDeliveryBuilder, SimulatedDeliveryBuilder needs to respect
......
......@@ -6,6 +6,12 @@
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_recorded_property_dict</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>SimulatedDeliveryBuilder</string> </value>
......@@ -43,9 +49,7 @@
<item>
<key> <string>text_content_warning_message</string> </key>
<value>
<tuple>
<string>W:206, 9: Redefining built-in \'property\' (redefined-builtin)</string>
</tuple>
<tuple/>
</value>
</item>
<item>
......@@ -55,13 +59,28 @@
<item>
<key> <string>workflow_history</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary/>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
......@@ -74,7 +93,7 @@
<item>
<key> <string>component_validation_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
</value>
</item>
</dictionary>
......@@ -83,7 +102,7 @@
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<record id="4" aka="AAAAAAAAAAQ=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.Workflow"/>
</pickle>
......
......@@ -10,7 +10,7 @@ def generateBarcodeImage(self, barcode_type, data, REQUEST=None):
stdout=PIPE,
stderr=PIPE,
close_fds=True)
output, error = process.communicate(input=data)
output, _ = process.communicate(input=data)
elif barcode_type == 'ean13':
from hubarcode.ean13 import EAN13Encoder
encoder = EAN13Encoder(data)
......
......@@ -6,10 +6,22 @@
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_recorded_property_dict</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>BarcodeUtils</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>extension.erp5.BarcodeUtils</string> </value>
......@@ -24,6 +36,18 @@
<none/>
</value>
</item>
<item>
<key> <string>text_content_error_message</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>text_content_warning_message</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>version</string> </key>
<value> <string>erp5</string> </value>
......@@ -31,13 +55,28 @@
<item>
<key> <string>workflow_history</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary/>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
......@@ -50,7 +89,7 @@
<item>
<key> <string>component_validation_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
</value>
</item>
</dictionary>
......@@ -59,26 +98,30 @@
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<record id="4" aka="AAAAAAAAAAQ=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
<global name="WorkflowHistoryList" module="Products.ERP5Type.Workflow"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>validate</string> </value>
</item>
<item>
<key> <string>validation_state</string> </key>
<value> <string>validated</string> </value>
</item>
</dictionary>
</list>
</tuple>
<dictionary>
<item>
<key> <string>_log</string> </key>
<value>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>validate</string> </value>
</item>
<item>
<key> <string>validation_state</string> </key>
<value> <string>validated</string> </value>
</item>
</dictionary>
</list>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
......@@ -37,7 +37,6 @@ def migrateToEmbeddedFile(self, force=0):
if portal_type in ('File', 'Image') and self.getValidationState()=='embedded':
embedded_type = 'Embedded File'
container = self.getParentValue()
id = self.id
if force == 1:
changeObjectClass(container, id, getattr(erp5.portal_type, embedded_type))
changeObjectClass(container, self.id, getattr(erp5.portal_type, embedded_type))
return '%s: %s -> %s' % (self.getRelativeUrl(), portal_type, embedded_type),
......@@ -6,10 +6,22 @@
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_recorded_property_dict</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>BaseMigration</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>extension.erp5.BaseMigration</string> </value>
......@@ -24,6 +36,18 @@
<none/>
</value>
</item>
<item>
<key> <string>text_content_error_message</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>text_content_warning_message</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>version</string> </key>
<value> <string>erp5</string> </value>
......@@ -31,13 +55,28 @@
<item>
<key> <string>workflow_history</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary/>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
......@@ -50,7 +89,7 @@
<item>
<key> <string>component_validation_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
</value>
</item>
</dictionary>
......@@ -59,26 +98,30 @@
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<record id="4" aka="AAAAAAAAAAQ=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
<global name="WorkflowHistoryList" module="Products.ERP5Type.Workflow"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>validate</string> </value>
</item>
<item>
<key> <string>validation_state</string> </key>
<value> <string>validated</string> </value>
</item>
</dictionary>
</list>
</tuple>
<dictionary>
<item>
<key> <string>_log</string> </key>
<value>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>validate</string> </value>
</item>
<item>
<key> <string>validation_state</string> </key>
<value> <string>validated</string> </value>
</item>
</dictionary>
</list>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
......@@ -47,7 +47,7 @@ class IEncryptedPassword(Interface):
Check if the password value is acceptable - i.e. follows site rules.
"""
def setEncodedPassword(value, format='default'):
def setEncodedPassword(value, format='default'): # pylint: disable=redefined-builtin
"""
Set an already encoded password.
"""
......
......@@ -6,6 +6,12 @@
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_recorded_property_dict</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>IEncryptedPassword</string> </value>
......@@ -14,6 +20,12 @@
<key> <string>default_source_reference</string> </key>
<value> <string>Products.ERP5.interfaces.encrypted_password</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>interface.erp5.IEncryptedPassword</string> </value>
......@@ -37,9 +49,7 @@
<item>
<key> <string>text_content_warning_message</string> </key>
<value>
<tuple>
<string>W: 50, 32: Redefining built-in \'format\' (redefined-builtin)</string>
</tuple>
<tuple/>
</value>
</item>
<item>
......@@ -49,13 +59,28 @@
<item>
<key> <string>workflow_history</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary/>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
......@@ -68,7 +93,7 @@
<item>
<key> <string>component_validation_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
</value>
</item>
</dictionary>
......@@ -77,7 +102,7 @@
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<record id="4" aka="AAAAAAAAAAQ=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.Workflow"/>
</pickle>
......
......@@ -77,14 +77,22 @@ class EncryptedPasswordMixin:
if not _checkPermission(Permissions.SetOwnPassword, self):
raise AccessControl_Unauthorized('setPassword')
def _setEncodedPassword(self, value, format='default'):
def _setEncodedPassword(
self,
value,
format='default', # pylint: disable=redefined-builtin
):
password = getattr(aq_base(self), 'password', None)
if password is None or isinstance(password, basestring):
password = self.password = PersistentMapping()
self.password[format] = value
security.declarePublic('setEncodedPassword')
def setEncodedPassword(self, value, format='default'):
def setEncodedPassword(
self,
value,
format='default', # pylint: disable=redefined-builtin
):
"""
"""
self.checkUserCanChangePassword()
......@@ -121,14 +129,14 @@ class EncryptedPasswordMixin:
if password is marker:
password = default_password
else:
format = kw.get('format', 'default')
format_ = kw.get('format', 'default')
# Backward compatibility: if it's not a PersistentMapping instance,
# assume it's a monovalued string, which corresponds to default
# password encoding.
if isinstance(password, PersistentMapping):
password = password.get(format, default_password)
password = password.get(format_, default_password)
else:
if format != 'default':
if format_ != 'default':
password = default_password
return password
......
......@@ -6,6 +6,12 @@
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_recorded_property_dict</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>EncryptedPasswordMixin</string> </value>
......@@ -14,6 +20,12 @@
<key> <string>default_source_reference</string> </key>
<value> <string>Products.ERP5.mixin.encrypted_password</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>mixin.erp5.EncryptedPasswordMixin</string> </value>
......@@ -37,11 +49,7 @@
<item>
<key> <string>text_content_warning_message</string> </key>
<value>
<tuple>
<string>W: 79, 39: Redefining built-in \'format\' (redefined-builtin)</string>
<string>W: 86, 38: Redefining built-in \'format\' (redefined-builtin)</string>
<string>W:123, 6: Redefining built-in \'format\' (redefined-builtin)</string>
</tuple>
<tuple/>
</value>
</item>
<item>
......@@ -51,13 +59,28 @@
<item>
<key> <string>workflow_history</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary/>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
......@@ -70,7 +93,7 @@
<item>
<key> <string>component_validation_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
</value>
</item>
</dictionary>
......@@ -79,7 +102,7 @@
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<record id="4" aka="AAAAAAAAAAQ=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.Workflow"/>
</pickle>
......
......@@ -132,4 +132,4 @@
<portal_type id="Solver Tool">
<item>Solver Type</item>
</portal_type>
</allowed_content_type_list>
</allowed_content_type_list>
\ No newline at end of file
......@@ -67,8 +67,8 @@ iban_code = ''.join([str(letter_code_dict.get(x, x))
for x in bban + country_code + checksum])
try:
iban_int = int(iban_code)
iban_int = int(iban_code)
except ValueError:
return False
return False
return iban_int % 97 == 1
# this script has an `id` argument
# pylint: disable=redefined-builtin
from Products.ERP5Type.Message import translateString
if id and id != context.getId():
......
......@@ -23,7 +23,7 @@ if content_type == 'text/html':
else:
mail_template = context.Event_viewMimeMessage
attachment_list = attachment_list[:]
attachment_list = list(attachment_list)
for embedded_file in embedded_file_list:
mime_type, content = embedded_file.getMimeTypeAndContent()
name = embedded_file.getFilename()
......
......@@ -50,7 +50,7 @@
</item>
<item>
<key> <string>_params</string> </key>
<value> <string>from_url, to_url, subject, body, content_type, attachment_list=[], embedded_file_list=[], extra_header_dict=None</string> </value>
<value> <string>from_url, to_url, subject, body, content_type, attachment_list=(), embedded_file_list=(), extra_header_dict=None</string> </value>
</item>
<item>
<key> <string>id</string> </key>
......
# this script has an `id` argument
# pylint: disable=redefined-builtin
domain = parent.generateTempDomain(id=id)
domain.edit(title=title,
criterion_property_list=[criterion_property])
......
......@@ -3,7 +3,7 @@ if not date:
try:
now = DateTime()
date = DateTime(date)
except:
except Exception:
return ''
Base_translateString = context.Base_translateString
diff = now - date
......
translateString = context.Base_translateString
request = context.REQUEST
ptype = context.getPortalType()
if not description:
......
......@@ -6,14 +6,14 @@
# Assumes that 2 currencies with the same ID, they are the same currency
if from_currency is not None and to_currency is not None and \
[x for x in from_currency.split('/') if x.strip()][-1] == [x for x in to_currency.split('/') if x.strip()][-1]:
return [1]
return [1]
def sort_by_date(a, b):
if a.getStartDateRangeMin() > b.getStartDateRangeMin() :
return -1
return 1
object = context
object_ = context
from Products.ERP5Type.Cache import CachingMethod
......@@ -37,15 +37,15 @@ if to_currency is not None:
if currency_exchange_type is not None:
temp_kw['category_list'].append('currency_exchange_type/%s' % currency_exchange_type)
temp_object.edit(**temp_kw)
object = temp_object
mapped_value = context.portal_domains.generateMappedValue(object,
object_ = temp_object
mapped_value = context.portal_domains.generateMappedValue(object_,
has_cell_content=0,
validation_state='validated',
sort_method=sort_by_date)
base_price = getattr(mapped_value, 'base_price', None)
discount = getattr(mapped_value, 'discount', None)
if base_price is None and discount is None:
mapped_value = context.portal_domains.generateMappedValue(object,
mapped_value = context.portal_domains.generateMappedValue(object_,
has_cell_content=1,
validation_state='validated',
sort_method=sort_by_date)
......@@ -63,14 +63,14 @@ else:
if start_date is None:
if getattr(context,'isDelivery',None):
start_date = context.getStartDate()
mapped_value = context.portal_domains.generateMappedValue(object,
mapped_value = context.portal_domains.generateMappedValue(object_,
has_cell_content=0,
validation_state='validated',
sort_method=sort_by_date)
base_price = getattr(mapped_value, 'base_price', None)
discount = getattr(mapped_value, 'discount', None)
if base_price is None and discount is None:
mapped_value = context.portal_domains.generateMappedValue(object,
mapped_value = context.portal_domains.generateMappedValue(object_,
has_cell_content=1,
validation_state='validated',
sort_method=sort_by_date)
......
......@@ -16,10 +16,10 @@ for divergence in divergence_list:
uid = 'new_%s&%s' % (simulation_movement_url,
divergence.getProperty('tested_property'))
object = portal_object.restrictedTraverse(object_relative_url)
o = newTempBase(object.getParentValue(), object.getId(), uid=uid,
document = portal_object.restrictedTraverse(object_relative_url)
o = newTempBase(document.getParentValue(), document.getId(), uid=uid,
message=str(divergence.getTranslatedMessage()),
object_title=object.getTranslatedTitle(),
object_title=document.getTranslatedTitle(),
prevision_title=prevision_title,
decision_title=decision_title,
candidate_list=[(context.Base_translateString('Do nothing'), 'ignore'),
......
......@@ -10,14 +10,14 @@ for divergence in divergence_list:
prop = divergence.getProperty('tested_property')
if prop in (None, '') or divergence.getCollectOrderGroup() != 'delivery':
continue
message, candidate_list, value_list, decision_title_list, prevision_title_list = candidate_dict.get(prop, ['', [], [], [], []])
_, candidate_list, value_list, decision_title_list, prevision_title_list = candidate_dict.get(prop, ['', [], [], [], []])
decision_value = divergence.getProperty('decision_value')
decision_title = divergence.getProperty('decision_title', decision_value)
prevision_value = divergence.getProperty('prevision_value')
prevision_title = divergence.getProperty('prevision_title', prevision_value)
object_relative_url = divergence.getProperty('object_relative_url')
simulation_movement_url = divergence.getProperty('simulation_movement').getRelativeUrl()
object = portal_object.restrictedTraverse(object_relative_url)
document = portal_object.restrictedTraverse(object_relative_url)
if decision_value not in value_list:
candidate_list.append((decision_title, object_relative_url))
value_list.append(decision_value)
......@@ -32,11 +32,11 @@ for divergence in divergence_list:
for prop, candidate_list in candidate_dict.items():
uid = 'new_%s' % prop
object = context
document = context
o = newTempBase(context.getParentValue(), context.getId(), uid, uid=uid,
message=candidate_list[0],
object_title=object.getTranslatedTitle(),
object_title=document.getTranslatedTitle(),
decision_title=', '.join([str(x) for x in candidate_list[3]]),
prevision_title=', '.join([str(x) for x in candidate_list[4]]),
candidate_list=[(context.Base_translateString('Do nothing'), 'ignore')]+candidate_list[1])
......
......@@ -17,11 +17,11 @@ for divergence in divergence_list:
uid = 'new_%s&%s' % (simulation_movement_url,
divergence.getProperty('tested_property'))
object = portal_object.restrictedTraverse(object_relative_url)
o = newTempBase(object.getParentValue(), object.getId(), uid=uid,
document = portal_object.restrictedTraverse(object_relative_url)
o = newTempBase(document.getParentValue(), document.getId(), uid=uid,
message=str(divergence.getTranslatedMessage()),
object_portal_type=object.getTranslatedPortalType(),
object_title=object.getTranslatedTitle(),
object_portal_type=document.getTranslatedPortalType(),
object_title=document.getTranslatedTitle(),
prevision_title=prevision_title,
decision_title=decision_title,
candidate_list=[(context.Base_translateString('Do nothing'), 'ignore'),
......
# coding: utf-8
translateString = context.Base_translateString
request = context.REQUEST
......@@ -94,7 +95,6 @@ def getTaxLineList(order):
return tax_line_list
line_base_contribution_list = []
number = 0
tax_free_line_totalprice = 0
line_list = []
line_not_tax = []
......
# this script has an `format` argument
# pylint: disable=redefined-builtin
"""
This script provides a facility to permit conversion by format.
"""
......
# this script has an `format` argument
# pylint: disable=redefined-builtin
"""Just an alias for real script
"""
from Products.ERP5Type.Log import log
......
# this script has an `format` argument
# pylint: disable=redefined-builtin
"""
This script returns a standard file name, build from reference, version and
language (this is only the base part of the name, the extension should be appended
......
"""
WARNING: this script requires proxy manager
This script tries to acquire category values from other objects
This script tries to acquire category values from other documents
base_category_list - list of category values we need to retrieve
object - object which we want to assign roles to.
obj - document which we want to assign roles to.
"""
category_dict = {}
if object is None:
if obj is None:
return []
for base_category in base_category_list:
if base_category == 'parent':
o_list = [object.getParentValue()]
o_list = [obj.getParentValue()]
else:
o_list = object.getValueList(base_category)
o_list = obj.getValueList(base_category)
for o in o_list:
for user, role_list in o.get_local_roles():
for role in role_list:
......
......@@ -50,7 +50,7 @@
</item>
<item>
<key> <string>_params</string> </key>
<value> <string>base_category_list, user_name, object, portal_type</string> </value>
<value> <string>base_category_list, user_name, obj, portal_type</string> </value>
</item>
<item>
<key> <string>_proxy_roles</string> </key>
......
......@@ -64,13 +64,12 @@ if download or not use_activity:
if not from_url:
raise ValueError('Preferred Event Sender Email not configured')
# Return-Path
# Return-Path (TODO)
if reply_url is None:
reply_url = portal.portal_preferences.getPreferredEventSenderEmail()
additional_headers = None
additional_headers = None # pylint: disable=unused-variable
if reply_url:
additional_headers = {'Return-Path':reply_url}
content_type = context.getContentType()
mail_message = context.Base_createMailMessageAsString(
......
......@@ -8,7 +8,7 @@ for career_step in all_career_step_list :
career_step.getSubordination() == subordination_relative_url) and \
career_step.getStartDate() and \
career_step.getValidationState() not in ('cancelled', 'deleted'):
career_step_list.append(career_step)
career_step_list.append(career_step)
# sort them by start date
career_step_list.sort(key=lambda x: x.getStartDate())
......
from Products.PythonScripts.standard import Object
from Products.ZSQLCatalog.SQLCatalog import Query
from Products.ERP5Type.DateUtils import atTheEndOfPeriod
request = container.REQUEST
from_date = request.get('from_date', None)
......@@ -8,10 +7,10 @@ aggregation_level = request.get('aggregation_level', None)
portal = context.getPortalObject()
module_list = []
for module_id in portal.objectIds(spec=('ERP5 Folder',)):
module = portal.restrictedTraverse(module_id, None)
if module is not None:
if portal.portal_membership.checkPermission('View', module):
module_list.append(module)
module = portal.restrictedTraverse(module_id, None)
if module is not None:
if portal.portal_membership.checkPermission('View', module):
module_list.append(module)
module_list.sort(key=lambda x: x.getTitle())
# build document portal type list
......@@ -69,25 +68,25 @@ line_list = []
append = line_list.append
period_count_dict = {}
for portal_type in portal_type_list:
if portal_type_count_dict.has_key(portal_type):
period_count = portal_type_count_dict[portal_type]
obj = Object(uid="new_")
obj["document_type"] = context.Base_translateString(portal_type)
else:
continue
line_counter = 0
for period in period_list:
if period_count.has_key(period):
obj[period] = period_count[period]
line_counter += period_count[period]
if period_count_dict.has_key(period):
period_count_dict[period] = period_count_dict[period] + period_count[period]
else:
period_count_dict[period] = period_count[period]
if portal_type_count_dict.has_key(portal_type):
period_count = portal_type_count_dict[portal_type]
obj = Object(uid="new_")
obj["document_type"] = context.Base_translateString(portal_type)
else:
continue
line_counter = 0
for period in period_list:
if period_count.has_key(period):
obj[period] = period_count[period]
line_counter += period_count[period]
if period_count_dict.has_key(period):
period_count_dict[period] = period_count_dict[period] + period_count[period]
else:
obj[period] = 0
obj['total'] = line_counter
append(obj)
period_count_dict[period] = period_count[period]
else:
obj[period] = 0
obj['total'] = line_counter
append(obj)
# sort lines
def cmpType(a, b):
......
from Products.ZSQLCatalog.SQLCatalog import Query
from Products.ERP5Type.DateUtils import atTheEndOfPeriod
request = container.REQUEST
portal = context.getPortalObject()
......
......@@ -28,7 +28,7 @@ for assignment in context.contentValues(portal_type='Assignment'):
and assignment.getValidationState() == 'open' \
and ( assignment.getStartDate() is None or
assignment.getStartDate() <= now <= assignment.getStopDate()):
existing_group_set[assignment.getGroup()] = 1
existing_group_set[assignment.getGroup()] = 1
# If we have multiple groups defined on assignments, this scripts does not
# try to guess, and fallback to the default career's group
......
......@@ -2,7 +2,6 @@ from Products.CMFActivity.Errors import ActivityPendingError
Base_translateString = context.Base_translateString
person = context
career_list = []
default_career = None
if 'default_career' in person.objectIds():
......
request = container.REQUEST
RESPONSE = request.RESPONSE
stat_line = request.get('stat_line', None)
return stat_line
# XXX example of another way to get the stat line but this is slower
from Products.ERP5Type.Log import log
from Products.PythonScripts.standard import Object
from Products.ZSQLCatalog.SQLCatalog import Query
request = container.REQUEST
from_date = request.get('from_date', None)
to_date = request.get('at_date', None)
aggregation_level = request.get('aggregation_level', None)
log("in stat method", "")
# build document portal type list
portal_type_list = []
extend = portal_type_list.extend
for title, path in context.ERP5Site_getModuleItemList():
document_type_list = context.restrictedTraverse(path).allowedContentTypes()
extend([x.id for x in document_type_list])
# compute sql params, we group and order by date and portal type
if aggregation_level == "year":
sql_format = "%Y"
elif aggregation_level == "month":
sql_format = "%Y-%m"
elif aggregation_level == "week":
sql_format = "%Y-%u"
elif aggregation_level == "day":
sql_format = "%Y-%m-%d"
count_kw = {}
if from_date is not None and to_date is not None:
count_kw['creation_date'] = {
'range': 'minngt',
'query': (from_date, to_date),
}
elif from_date is not None:
count_kw['creation_date'] = {
'range': 'min',
'query': from_date,
}
elif to_date is not None:
count_kw['creation_date'] = {
'range': 'ngt',
'query': to_date,
}
# count number of object created by the user for each type of document
result_list = context.portal_catalog.countResults(select_dict={'date': 'DATE_FORMAT(creation_date, "%s")' % sql_format},
portal_type=portal_type_list,limit=None,
owner=context.Person_getUserId(),
group_by=['DATE_FORMAT(creation_date, "%s")' % sql_format],
**count_kw)
# build result dict per portal_type then period
period_count_dict = {}
for result in result_list:
period_count_dict[result[1]] = result[0]
# build line
obj = Object(uid="new_")
obj["document_type"] = 'Total'
line_counter = 0
for period in period_list:
if period_count_dict.has_key(period):
obj[period] = period_count_dict[period]
line_counter += period_count_dict[period]
else:
obj[period] = 0
obj['total'] = line_counter
return [obj,]
......@@ -14,9 +14,8 @@ context.setMembershipCriterionCategoryList(membership_list)
context.setResourceValue(context.getParentValue())
context.setMappedValuePropertyList(('base_price','discount'))
if cell_range_key_list != [[None, None]] :
i = 0
for k in cell_range_key_list:
category_list = filter(lambda k_item: k_item is not None, k)
category_list = [k_item for k_item in k if k is not None]
c = context.newCell(*k, **kwd)
c.edit(mapped_value_property_list = ('base_price','discount'),
force_update = 1,
......
......@@ -13,8 +13,7 @@ if listbox is not None:
for k, v in listbox.items():
object_url = v['choice']
if object_url != 'ignore':
object = delivery.restrictedTraverse(object_url)
delivery_solve_property_dict[k] = object.getPropertyList(k)
delivery_solve_property_dict[k] = delivery.restrictedTraverse(object_url).getPropertyList(k)
divergence_to_accept_list = []
divergence_to_adopt_list = []
......@@ -22,8 +21,7 @@ divergence_to_adopt_list = []
divergence_dict = {}
for divergence in divergence_list:
simulation_movement_url = divergence.getProperty('simulation_movement').getRelativeUrl()
property = divergence.getProperty('tested_property')
divergence_dict['%s&%s' % (simulation_movement_url, property)] = divergence
divergence_dict['%s&%s' % (simulation_movement_url, divergence.getProperty('tested_property'))] = divergence
for listbox in [state_change['kwargs'].get('line_group_listbox'),
state_change['kwargs'].get('cell_group_listbox')]:
......
......@@ -3,8 +3,6 @@ delivery = state_change['object']
stop_date = state_change.kwargs['stop_date']
start_date = state_change.kwargs['start_date']
tag = delivery.getPath() + '_split'
split_and_defer = 0
listbox = state_change['kwargs'].get('listbox')
split_movement_list = []
if listbox is not None:
......
......@@ -19,10 +19,10 @@ delivery.activate(after_tag=tag).updateCausalityState()
# Create delivery
explanation_uid_list = []
object = delivery
while object is not None:
explanation_uid_list.append(object.getUid())
object = object.getCausalityValue()
object_ = delivery
while object_ is not None:
explanation_uid_list.append(object_.getUid())
object_ = object_.getCausalityValue()
previous_tag = None
for delivery_builder in delivery.getBuilderList():
......
delivery = state_change['object']
portal = delivery.getPortalObject()
try:
portal.portal_solvers
portal.portal_solver_processes
except AttributeError:
if not (hasattr(portal, 'portal_solvers') and hasattr(portal, 'portal_solver_processes')):
delivery.diverge()
else:
solver_tag = '%s_solve' % delivery.getPath()
......
......@@ -7,12 +7,12 @@ catalog.
"""
from Products.ERP5Type.Log import log
object = sci['object']
portal = object.getPortalObject()
document = sci['object']
portal = document.getPortalObject()
translateString = portal.Base_translateString
# Get the owner
owner = object.getViewPermissionOwner()
owner = document.getViewPermissionOwner()
owner_value = portal.Base_getUserValueByUserId(owner)
# Get the authenticated user
......@@ -43,11 +43,11 @@ Answer:
${answer}
"""
msg = translateString(msg,
mapping=dict(id=object.getId(),
mapping=dict(id=document.getId(),
subject=subject,
user=user_value.getTitle(),
question=object.getDescription(),
answer=object.getTextContent())
question=document.getDescription(),
answer=document.getTextContent())
)
# We can now notify the owner through the notification tool
......
......@@ -111,4 +111,4 @@ Variant Movement Group | view
Variation Property Movement Group | view
portal_actions | jump_query
portal_actions | jump_related_object
portal_actions | post_query
portal_actions | post_query
\ No newline at end of file
......@@ -88,4 +88,4 @@ Person | Link
Person | Telephone
Query Module | Query
Rounding Tool | Rounding Model
Solver Tool | Solver Type
Solver Tool | Solver Type
\ No newline at end of file
......@@ -63,4 +63,4 @@ Split Movement Group
Telephone
Title Movement Group
Variant Movement Group
Variation Property Movement Group
Variation Property Movement Group
\ No newline at end of file
......@@ -115,7 +115,7 @@ class PDFDocument(Image):
return outputStream.getvalue()
# Conversion API
def _convert(self, format, **kw):
def _convert(self, format, **kw): # pylint: disable=redefined-builtin
"""
Implementation of conversion for PDF files
"""
......@@ -164,7 +164,7 @@ class PDFDocument(Image):
raise NotImplementedError
security.declarePrivate('_convertToText')
def _convertToText(self):
def _convertToText(self, format='txt'): # pylint: disable=redefined-builtin
"""
Convert the PDF text content to text with pdftotext
"""
......@@ -346,9 +346,9 @@ class PDFDocument(Image):
self._content_information = result
return result.copy()
def _setFile(self, data, precondition=None):
def _setFile(self, *args, **kw):
try:
del self._content_information
except (AttributeError, KeyError):
pass
Image._setFile(self, data, precondition=precondition)
Image._setFile(self, *args, **kw)
......@@ -6,6 +6,12 @@
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_recorded_property_dict</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>PDFDocument</string> </value>
......@@ -43,11 +49,7 @@
<item>
<key> <string>text_content_warning_message</string> </key>
<value>
<tuple>
<string>W:117, 21: Redefining built-in \'format\' (redefined-builtin)</string>
<string>W:166, 2: Arguments number differs from overridden \'_convertToText\' method (arguments-differ)</string>
<string>W:348, 2: Arguments number differs from overridden \'_setFile\' method (arguments-differ)</string>
</tuple>
<tuple/>
</value>
</item>
<item>
......@@ -57,13 +59,28 @@
<item>
<key> <string>workflow_history</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary/>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
......@@ -76,7 +93,7 @@
<item>
<key> <string>component_validation_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
</value>
</item>
</dictionary>
......@@ -85,7 +102,7 @@
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<record id="4" aka="AAAAAAAAAAQ=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.Workflow"/>
</pickle>
......
......@@ -71,7 +71,7 @@ def mkProxy(self):
sp = xmlrpclib.ServerProxy('http://%s:%d' % (adr,nr), allow_none=True)
return sp
def generateFile(self, name, data, format):
def generateFile(self, name, data, format): # pylint: disable=redefined-builtin
sp = mkProxy(self)
kw = sp.run_generate(name, data, None, format)
res = base64.decodestring(kw['data'])
......@@ -92,7 +92,7 @@ def getLastWorkflowDate(self, state_name='simulation_state', state=('released','
or JP says "there is an API for it" and we trash this one'''
if not hasattr(self, 'workflow_history'):
return None
for name,wflow in self.workflow_history.items():
for wflow in self.workflow_history.values():
if wflow is None or len(wflow) == 0: continue # empty history
if wflow[0].get(state_name) is None: continue # not the right one
for i in range(len(wflow)):
......@@ -110,7 +110,7 @@ def findAddress(txt):
"""
find email address in a string
"""
validchars='0-9A-Za-z.\-_'
validchars = r'0-9A-Za-z.\-_'
r=re.compile('[%s]+@[%s]+' % (validchars,validchars))
m=r.search(txt)
return m and m.group()
......@@ -121,7 +121,7 @@ def extractParams(txt):
We assume that parameters are given as lines of the format:
name:value
"""
r=re.compile('^([\w_]+):([\w_/]+)$')
r = re.compile(r'^([\w_]+):([\w_/]+)$')
res=[]
for line in txt.split():
found=r.findall(line.strip())
......
......@@ -6,10 +6,22 @@
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_recorded_property_dict</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>DocumentManagement</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>extension.erp5.DocumentManagement</string> </value>
......@@ -24,6 +36,18 @@
<none/>
</value>
</item>
<item>
<key> <string>text_content_error_message</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>text_content_warning_message</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>version</string> </key>
<value> <string>erp5</string> </value>
......@@ -31,13 +55,28 @@
<item>
<key> <string>workflow_history</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary/>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
......@@ -50,7 +89,7 @@
<item>
<key> <string>component_validation_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
</value>
</item>
</dictionary>
......@@ -59,26 +98,30 @@
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<record id="4" aka="AAAAAAAAAAQ=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
<global name="WorkflowHistoryList" module="Products.ERP5Type.Workflow"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>validate</string> </value>
</item>
<item>
<key> <string>validation_state</string> </key>
<value> <string>validated</string> </value>
</item>
</dictionary>
</list>
</tuple>
<dictionary>
<item>
<key> <string>_log</string> </key>
<value>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>validate</string> </value>
</item>
<item>
<key> <string>validation_state</string> </key>
<value> <string>validated</string> </value>
</item>
</dictionary>
</list>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
......@@ -26,7 +26,7 @@
##############################################################################
def getPersonRoleList(self, person, object):
def getPersonRoleList(self, person, object): # pylint: disable=redefined-builtin
"""
Get list of local roles for user.
"""
......
......@@ -6,10 +6,22 @@
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_recorded_property_dict</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>default_reference</string> </key>
<value> <string>DocumentSecurity</string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>extension.erp5.DocumentSecurity</string> </value>
......@@ -24,6 +36,18 @@
<none/>
</value>
</item>
<item>
<key> <string>text_content_error_message</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>text_content_warning_message</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>version</string> </key>
<value> <string>erp5</string> </value>
......@@ -31,13 +55,28 @@
<item>
<key> <string>workflow_history</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value>
<dictionary/>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="PersistentMapping" module="Persistence.mapping"/>
</pickle>
......@@ -50,7 +89,7 @@
<item>
<key> <string>component_validation_workflow</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
<persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
</value>
</item>
</dictionary>
......@@ -59,26 +98,30 @@
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<record id="4" aka="AAAAAAAAAAQ=">
<pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
<global name="WorkflowHistoryList" module="Products.ERP5Type.Workflow"/>
</pickle>
<pickle>
<tuple>
<none/>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>validate</string> </value>
</item>
<item>
<key> <string>validation_state</string> </key>
<value> <string>validated</string> </value>
</item>
</dictionary>
</list>
</tuple>
<dictionary>
<item>
<key> <string>_log</string> </key>
<value>
<list>
<dictionary>
<item>
<key> <string>action</string> </key>
<value> <string>validate</string> </value>
</item>
<item>
<key> <string>validation_state</string> </key>
<value> <string>validated</string> </value>
</item>
</dictionary>
</list>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
......@@ -27,7 +27,7 @@ for frequency_reference, creation_date in date_dict.items():
max_in_activities = 1000
offset = 0
loop = documents_to_update / max_in_activities
for i in range(loop):
for _ in range(loop):
limit = '%s,%s' % (offset, max_in_activities)
sql_kw['limit'] = limit
updateDocumentList(**sql_kw)
......
......@@ -6,5 +6,4 @@ if I don't have permissions to access the object)
object_list = context.Base_getRelatedObjectValueList(base_category, portal_type_list)
title_list = [o.getTitle() for o in object_list]
return filter(lambda t:t!='', title_list)
return [t for t in title_list if t != '']
......@@ -10,8 +10,8 @@ nr_of_types = len(type_list)
basecatdict = {}
for type in type_list:
type_base_cat_list = context.portal_types[type].getInstanceBaseCategoryList()
for type_info in type_list:
type_base_cat_list = context.portal_types[type_info].getInstanceBaseCategoryList()
for base_cat in type_base_cat_list:
basecatdict[base_cat] = basecatdict.setdefault(base_cat, 0)+1
......
# this script has an `format` argument
# pylint: disable=redefined-builtin
"""
Generic method to handle conversion failures ans still return something to use
to explain what when wrong, etc.
......
......@@ -12,8 +12,7 @@ version of each of them.
# Document_getSimilarityCloud = Document_get + upperCase(cloud) + ValueList
# BG - not much use, they're too different
from Products.ERP5Type.Utils import convertToUpperCase, convertToMixedCase
from Products.ERP5Type.Log import log
from Products.ERP5Type.Utils import convertToUpperCase
def getRelatedLatest(category):
funcname = 'get%sValueList' % convertToUpperCase(category)
......@@ -44,5 +43,4 @@ if relation_id == 'all':
dic[obj] = None
return dic.keys()
log('Relation %s is not provided for in this script' % relation)
return [] # failover - undefined relation
......@@ -8,8 +8,8 @@
from Products.ERP5Type.Cache import CachingMethod
def cached_DMSGetItemList(base_category):
basecatobject = context.portal_categories.resolveCategory(base_category)
return basecatobject.getCategoryChildLogicalPathItemList()
basecatobject = context.portal_categories.resolveCategory(base_category)
return basecatobject.getCategoryChildLogicalPathItemList()
cached_DMSGetItemList = CachingMethod(cached_DMSGetItemList, id='DMGetItemListCachedMethodWhatever')
......@@ -26,7 +26,6 @@ if default_sub_field_property_dict is None:
}
sub_field_dict = {}
maximum_list_size = 5
default_sub_field_property_dict['field_type'] = 'ListField'
default_sub_field_property_dict['size'] = 1
......
......@@ -3,6 +3,8 @@
in such way that it is possible to select multiple
group categories for the same document
"""
if default_sub_field_property_dict is None:
default_sub_field_property_dict = {}
# Initialise result
sub_field_list = []
......@@ -16,7 +18,7 @@ default_sub_field_property_dict.update({
})
z = 0
for i in range(1):
for _ in range(1):
new_dict = default_sub_field_property_dict.copy()
new_dict['title'] = '&nbsp;'
new_dict['key'] = str(z)
......
......@@ -50,7 +50,7 @@
</item>
<item>
<key> <string>_params</string> </key>
<value> <string>item_list, value_list, default_sub_field_property_dict={}, is_right_display=0</string> </value>
<value> <string>item_list, value_list, default_sub_field_property_dict=None, is_right_display=0</string> </value>
</item>
<item>
<key> <string>id</string> </key>
......
......@@ -3,6 +3,8 @@
in such way that it is possible to select multiple
function categories for the same document
"""
if default_sub_field_property_dict is None:
default_sub_field_property_dict = {}
# Initialise result
sub_field_list = []
......@@ -16,7 +18,7 @@ default_sub_field_property_dict.update({
})
z = 0
for i in range(1):
for _ in range(1):
new_dict = default_sub_field_property_dict.copy()
new_dict['title'] = '&nbsp;'
new_dict['key'] = str(z)
......
......@@ -50,7 +50,7 @@
</item>
<item>
<key> <string>_params</string> </key>
<value> <string>item_list, value_list, default_sub_field_property_dict={}, is_right_display=0</string> </value>
<value> <string>item_list, value_list, default_sub_field_property_dict=None, is_right_display=0</string> </value>
</item>
<item>
<key> <string>id</string> </key>
......
......@@ -3,6 +3,8 @@
in such way that it is possible to select multiple
site categories for the same document
"""
if default_sub_field_property_dict is None:
default_sub_field_property_dict = {}
# Initialise result
sub_field_list = []
......@@ -16,7 +18,7 @@ default_sub_field_property_dict.update({
})
z = 0
for i in range(1):
for _ in range(1):
new_dict = default_sub_field_property_dict.copy()
new_dict['title'] = '&nbsp;'
new_dict['key'] = str(z)
......
......@@ -50,7 +50,7 @@
</item>
<item>
<key> <string>_params</string> </key>
<value> <string>item_list, value_list, default_sub_field_property_dict={}, is_right_display=0</string> </value>
<value> <string>item_list, value_list, default_sub_field_property_dict=None, is_right_display=0</string> </value>
</item>
<item>
<key> <string>id</string> </key>
......
......@@ -19,8 +19,6 @@ if context.getExternalProcessingState() not in ('converted', 'empty'):
message = 'Socket Error: %s' % (repr(e) or 'undefined.')
except Exception, e:
message = 'Problem: %s' % (repr(e) or 'undefined.')
except:
message = 'Problem: unknown'
# reach here, then exception was raised, message must be logged in workflow
# do not simply raise but rather change external processing state
# so user will see something is wrong
......
......@@ -11,8 +11,6 @@ except ConversionError, e:
message = 'Conversion Error: %s' % (str(e) or 'undefined.')
except Exception, e:
message = 'Problem: %s' % (repr(e) or 'undefined.')
except:
message = 'Problem: unknown'
# reach here, then exception was raised, message must be logged in workflow
# do not simply raise but rather change external processing state
......
# this script has an `file` argument
# pylint: disable=redefined-builtin
"""
This script is called when a file is uploaded to an object via ERP5 standard interface.
It does the following:
......@@ -9,9 +11,9 @@ Otherwise it just uploads the file, bumps up revision number and calls metadata
"""
from Products.ERP5Type.Log import log, WARNING
from Products.ERP5Type.Message import translateString
translate = context.Base_translateString
request = context.REQUEST
current_type = context.getPortalType()
file_name = file.filename
......
......@@ -3,4 +3,4 @@
only the group the user is directly assigned to (not the whole group hierarchy path).
"""
return context.ERP5Type_getSecurityCategoryFromAssignmentTree(base_category_list, user_name, object, portal_type, strict=True)
return context.ERP5Type_getSecurityCategoryFromAssignmentTree(base_category_list, user_name, obj, portal_type, strict=True)
......@@ -50,7 +50,7 @@
</item>
<item>
<key> <string>_params</string> </key>
<value> <string>base_category_list, user_name, object, portal_type</string> </value>
<value> <string>base_category_list, user_name, obj, portal_type</string> </value>
</item>
<item>
<key> <string>id</string> </key>
......
......@@ -50,7 +50,7 @@
</item>
<item>
<key> <string>_params</string> </key>
<value> <string>base_category_list, user_name, object, portal_type, strict=False, root=False</string> </value>
<value> <string>base_category_list, user_name, obj, portal_type, strict=False, root=False</string> </value>
</item>
<item>
<key> <string>id</string> </key>
......
......@@ -5,7 +5,7 @@ of the document (e.g. in Memo type).
from Products.ERP5Type.Log import log
category_list = []
for ob in object.getDestinationValueList():
for ob in obj.getDestinationValueList():
category_dict = {}
for base_category in base_category_list:
if base_category == 'group':
......
......@@ -50,7 +50,7 @@
</item>
<item>
<key> <string>_params</string> </key>
<value> <string>base_category_list, user_name, object, portal_type</string> </value>
<value> <string>base_category_list, user_name, obj, portal_type</string> </value>
</item>
<item>
<key> <string>id</string> </key>
......
......@@ -6,7 +6,7 @@ is addressed to (destination). Can be multiple destination persons.
category_list = []
# We look for valid assignments of destination users
for person_object in object.getDestinationValueList(portal_type='Person'):
for person_object in obj.getDestinationValueList(portal_type='Person'):
for assignment in person_object.contentValues(filter={'portal_type': 'Assignment'}):
if assignment.getValidationState() == 'open':
category_dict = {}
......@@ -18,7 +18,7 @@ for person_object in object.getDestinationValueList(portal_type='Person'):
if category_value not in (None, ''):
category_dict[base_category] = category_value
else:
raise RuntimeError, "Error: '%s' property is required in order to update person security group" % (base_category)
raise RuntimeError("Error: '%s' property is required in order to update person security group" % (base_category))
category_list.append(category_dict)
return category_list
......@@ -50,7 +50,7 @@
</item>
<item>
<key> <string>_params</string> </key>
<value> <string>base_category_list, user_name, object, portal_type</string> </value>
<value> <string>base_category_list, user_name, obj, portal_type</string> </value>
</item>
<item>
<key> <string>id</string> </key>
......
......@@ -8,10 +8,8 @@ Person, just take from the object.
category_list = []
person_object = object
# We look for valid assignments of this user
for assignment in person_object.contentValues(filter={'portal_type': 'Assignment'}):
for assignment in obj.contentValues(filter={'portal_type': 'Assignment'}):
if assignment.getValidationState() == 'open':
category_dict = {}
for base_category in base_category_list:
......@@ -22,7 +20,7 @@ for assignment in person_object.contentValues(filter={'portal_type': 'Assignment
if category_value not in (None, ''):
category_dict[base_category] = category_value
else:
raise RuntimeError, "Error: '%s' property is required in order to update person security group" % (base_category)
raise RuntimeError("Error: '%s' property is required in order to update person security group" % (base_category))
category_list.append(category_dict)
return category_list
......@@ -50,7 +50,7 @@
</item>
<item>
<key> <string>_params</string> </key>
<value> <string>base_category_list, user_name, object, portal_type</string> </value>
<value> <string>base_category_list, user_name, obj, portal_type</string> </value>
</item>
<item>
<key> <string>id</string> </key>
......
......@@ -50,7 +50,7 @@
</item>
<item>
<key> <string>_params</string> </key>
<value> <string>base_category_list, user_name, object, portal_type</string> </value>
<value> <string>base_category_list, user_name, obj, portal_type</string> </value>
</item>
<item>
<key> <string>id</string> </key>
......
......@@ -6,4 +6,4 @@ in the certain organisation - for this, all we need is the first part
of the group category.
"""
return context.ERP5Type_getSecurityCategoryFromAssignmentTree(base_category_list, user_name, object, portal_type, strict=True, root=True)
return context.ERP5Type_getSecurityCategoryFromAssignmentTree(base_category_list, user_name, obj, portal_type, strict=True, root=True)
......@@ -50,7 +50,7 @@
</item>
<item>
<key> <string>_params</string> </key>
<value> <string>base_category_list, user_name, object, portal_type</string> </value>
<value> <string>base_category_list, user_name, obj, portal_type</string> </value>
</item>
<item>
<key> <string>id</string> </key>
......
......@@ -4,5 +4,11 @@ if brain.getValidationState() == 'embedded':
reference = brain.getId()
else:
reference = brain.getReference()
format = context.getPortalObject().portal_preferences.getPreferredImageFormat()
return unicode("javascript:SelectFile('%s?format=%s')" % (reference.replace("'", "\\'"), format), 'utf-8')
return unicode(
"javascript:SelectFile('%s?format=%s')" % (
reference.replace("'", "\\'"),
context.getPortalObject().portal_preferences.getPreferredImageFormat()
),
'utf-8',
)
# this script has an `format` argument
# pylint: disable=redefined-builtin
if format in ('svg',):
image_pixels = context.getHeight()* context.getWidth()
max_pixels = 128*128 # default thumbnail size
......
# this script has an `format` argument
# pylint: disable=redefined-builtin
"""
Convert Image (context) to a desired format and return as a binary `filename` file.
Requires format and desired filename (adds extension if missing).
......
# this script has an `format` argument
# pylint: disable=redefined-builtin
"""
Convert OOoDocument (context) to a desired format and return as a binary `filename` file.
Requires format and desired filename (adds extension if missing).
......
# this script has an `format` argument
# pylint: disable=redefined-builtin
from Products.ERP5.Document.Document import VALID_IMAGE_FORMAT_LIST
if format in VALID_IMAGE_FORMAT_LIST:
......
content_information = context.getContentInformation()
number_of_pages = int(content_information.get('Pages', 1))
max = number_of_pages - 1
max_ = number_of_pages - 1
selection_index = int(selection_index)
if selection_index > max:
return max
elif -max > selection_index:
if selection_index > max_:
return max_
elif -max_ > selection_index:
return 0
elif selection_index < 0:
return max + selection_index + 1
return max_ + selection_index + 1
else:
return selection_index
message = state_change.kwargs['reply_body']
subject = state_change.kwargs['reply_subject']
recipient = state_change.kwargs['reply_to']
object = state_change['object']
event = state_change['object']
state_change['object'].MailHost.send(message, mto=recipient,
mfrom=object.portal_preferences.getPreferredEventSenderEmail(),
subject=subject)
event.MailHost.send(
message,
mto=recipient,
mfrom=event.portal_preferences.getPreferredEventSenderEmail(),
subject=subject)
......@@ -50,7 +50,7 @@
</item>
<item>
<key> <string>_params</string> </key>
<value> <string>state_change, validation_state=[\'published\', \'published_alive\', \'released\', \'released_alive\', \'shared\', \'shared_alive\'], now=None</string> </value>
<value> <string>state_change, validation_state=(\'published\', \'published_alive\', \'released\', \'released_alive\', \'shared\', \'shared_alive\'), now=None</string> </value>
</item>
<item>
<key> <string>_proxy_roles</string> </key>
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
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