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

base: fix pylint messages and enable coding style test

parent cdae0727
......@@ -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>
......
##############################################################################
#
# 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>
......
......@@ -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
......
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