From 0d702108e25107e4ba71e713ee723ee10c4f00fa Mon Sep 17 00:00:00 2001 From: Arnaud Fontaine <arnaud.fontaine@nexedi.com> Date: Thu, 11 Jan 2018 11:35:29 +0900 Subject: [PATCH] erp5_budget: Fix errors/warnings reported by pylint. --- .../portal_components/document.erp5.Budget.py | 53 ++-- .../document.erp5.Budget.xml | 43 ++- .../document.erp5.BudgetCell.py | 256 +++++++++--------- .../document.erp5.BudgetCell.xml | 107 +++----- .../document.erp5.BudgetTransaction.py | 60 ++-- .../document.erp5.BudgetTransaction.xml | 47 ++-- .../document.erp5.BudgetTransfer.py | 39 ++- .../document.erp5.BudgetTransfer.xml | 43 ++- .../document.erp5.BudgetTransferLine.py | 41 ++- .../document.erp5.BudgetTransferLine.xml | 43 ++- .../document.erp5.CategoryBudgetVariation.py | 8 +- .../document.erp5.CategoryBudgetVariation.xml | 38 ++- .../document.erp5.NodeBudgetVariation.py | 3 +- .../document.erp5.NodeBudgetVariation.xml | 38 ++- ...ctionQuantityValueFeasabilityConstraint.py | 89 +++--- ...tionQuantityValueFeasabilityConstraint.xml | 66 +++-- ...nsactionQuantityValueValidityConstraint.py | 70 +++-- ...sactionQuantityValueValidityConstraint.xml | 62 ++--- .../portal_components/test.erp5.testBudget.py | 24 +- 19 files changed, 597 insertions(+), 533 deletions(-) diff --git a/bt5/erp5_budget/DocumentTemplateItem/portal_components/document.erp5.Budget.py b/bt5/erp5_budget/DocumentTemplateItem/portal_components/document.erp5.Budget.py index 439e282fc5..b8710bf242 100644 --- a/bt5/erp5_budget/DocumentTemplateItem/portal_components/document.erp5.Budget.py +++ b/bt5/erp5_budget/DocumentTemplateItem/portal_components/document.erp5.Budget.py @@ -34,33 +34,32 @@ from Products.ERP5.mixin.variated import VariatedMixin class Budget(Predicate, VariatedMixin): - """ - Budget means a kind of budget stock. - """ + """ + Budget means a kind of budget stock. + """ - # Default Properties - property_sheets = ( PropertySheet.Base - , PropertySheet.XMLObject - , PropertySheet.SimpleItem - , PropertySheet.CategoryCore - , PropertySheet.Folder - , PropertySheet.Predicate - , PropertySheet.SortIndex - , PropertySheet.Task - , PropertySheet.Arrow - , PropertySheet.Budget - , PropertySheet.Path - , PropertySheet.VariationRange - , PropertySheet.Reference - , PropertySheet.Version - ) + # Default Properties + property_sheets = ( PropertySheet.Base + , PropertySheet.XMLObject + , PropertySheet.SimpleItem + , PropertySheet.CategoryCore + , PropertySheet.Folder + , PropertySheet.Predicate + , PropertySheet.SortIndex + , PropertySheet.Task + , PropertySheet.Arrow + , PropertySheet.Budget + , PropertySheet.Path + , PropertySheet.VariationRange + , PropertySheet.Reference + , PropertySheet.Version + ) - # CMF Type Definition - meta_type='ERP5 Budget' - portal_type='Budget' - add_permission = Permissions.AddPortalContent - - # Declarative security - security = ClassSecurityInfo() - security.declareObjectProtected(Permissions.AccessContentsInformation) + # CMF Type Definition + meta_type='ERP5 Budget' + portal_type='Budget' + add_permission = Permissions.AddPortalContent + # Declarative security + security = ClassSecurityInfo() + security.declareObjectProtected(Permissions.AccessContentsInformation) \ No newline at end of file diff --git a/bt5/erp5_budget/DocumentTemplateItem/portal_components/document.erp5.Budget.xml b/bt5/erp5_budget/DocumentTemplateItem/portal_components/document.erp5.Budget.xml index f711fde754..cb80ba59b7 100644 --- a/bt5/erp5_budget/DocumentTemplateItem/portal_components/document.erp5.Budget.xml +++ b/bt5/erp5_budget/DocumentTemplateItem/portal_components/document.erp5.Budget.xml @@ -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>Budget</string> </value> @@ -14,6 +20,12 @@ <key> <string>default_source_reference</string> </key> <value> <string>Products.ERP5.Document.Budget</string> </value> </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> <item> <key> <string>id</string> </key> <value> <string>document.erp5.Budget</string> </value> @@ -37,15 +49,7 @@ <item> <key> <string>text_content_warning_message</string> </key> <value> - <tuple> - <string>W: 37, 0: Bad indentation. Found 4 spaces, expected 2 (bad-indentation)</string> - <string>W: 42, 0: Bad indentation. Found 4 spaces, expected 2 (bad-indentation)</string> - <string>W: 59, 0: Bad indentation. Found 4 spaces, expected 2 (bad-indentation)</string> - <string>W: 60, 0: Bad indentation. Found 4 spaces, expected 2 (bad-indentation)</string> - <string>W: 61, 0: Bad indentation. Found 4 spaces, expected 2 (bad-indentation)</string> - <string>W: 64, 0: Bad indentation. Found 4 spaces, expected 2 (bad-indentation)</string> - <string>W: 65, 0: Bad indentation. Found 4 spaces, expected 2 (bad-indentation)</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.patches.WorkflowTool"/> </pickle> diff --git a/bt5/erp5_budget/DocumentTemplateItem/portal_components/document.erp5.BudgetCell.py b/bt5/erp5_budget/DocumentTemplateItem/portal_components/document.erp5.BudgetCell.py index f4805eeeb6..3488a0332c 100644 --- a/bt5/erp5_budget/DocumentTemplateItem/portal_components/document.erp5.BudgetCell.py +++ b/bt5/erp5_budget/DocumentTemplateItem/portal_components/document.erp5.BudgetCell.py @@ -35,133 +35,133 @@ from Products.ERP5.Document.MetaNode import MetaNode from Products.ERP5.Document.Movement import Movement class BudgetCell(Predicate, MetaNode, Movement): - """ Budget Cell defines a cell of budget. - XXX This is not a Movement, but we need getDestinationCredit - XXX This is not a MetaNode + """ Budget Cell defines a cell of budget. + XXX This is not a Movement, but we need getDestinationCredit + XXX This is not a MetaNode + """ + + # Default Properties + property_sheets = ( PropertySheet.Base + , PropertySheet.XMLObject + , PropertySheet.SimpleItem + , PropertySheet.Folder + , PropertySheet.Predicate + , PropertySheet.SortIndex + , PropertySheet.CategoryCore + , PropertySheet.DublinCore + , PropertySheet.Task + , PropertySheet.Arrow + , PropertySheet.Amount + , PropertySheet.Budget + , PropertySheet.MappedValue + , PropertySheet.VariationRange + ) + + # CMF Type Definition + meta_type='ERP5 Budget Cell' + portal_type='Budget Cell' + add_permission = Permissions.AddPortalContent + + # Declarative security + security = ClassSecurityInfo() + security.declareObjectProtected(Permissions.AccessContentsInformation) + + security.declareProtected(Permissions.AccessContentsInformation, 'getTitle') + def getTitle(self): """ + Return a calculated title. + """ + script = self._getTypeBasedMethod('asTitle') + if script is not None: + return script() + raise UnboundLocalError( + "Did not find title script for portal type: %r" % + self.getPortalType()) + + security.declareProtected(Permissions.AccessContentsInformation, 'getCurrentInventory') + def getCurrentInventory(self, at_date=None, **kw): + """ Returns current inventory. + + at_date parameter can be used to take into account budget transactions + before that date. + """ + kw['node_uid'] = self.getUid() + resource = self.getResourceValue() + if resource is not None: + kw['resource_uid'] = resource.getUid() + if at_date: + kw['at_date'] = at_date + sign = self.getParentValue().BudgetLine_getConsumptionSign() + return sign * self.portal_simulation.getCurrentInventory(**kw) + + security.declareProtected(Permissions.AccessContentsInformation, 'getCurrentBalance') + def getCurrentBalance(self, at_date=None): + """ + Returns current balance + """ + sign = self.getParentValue().BudgetLine_getConsumptionSign() + return sign * self.getQuantity(0.0) + self.getCurrentInventory(at_date=at_date) - # Default Properties - property_sheets = ( PropertySheet.Base - , PropertySheet.XMLObject - , PropertySheet.SimpleItem - , PropertySheet.Folder - , PropertySheet.Predicate - , PropertySheet.SortIndex - , PropertySheet.CategoryCore - , PropertySheet.DublinCore - , PropertySheet.Task - , PropertySheet.Arrow - , PropertySheet.Amount - , PropertySheet.Budget - , PropertySheet.MappedValue - , PropertySheet.VariationRange - ) - - # CMF Type Definition - meta_type='ERP5 Budget Cell' - portal_type='Budget Cell' - add_permission = Permissions.AddPortalContent - - # Declarative security - security = ClassSecurityInfo() - security.declareObjectProtected(Permissions.AccessContentsInformation) - - security.declareProtected(Permissions.AccessContentsInformation, 'getTitle') - def getTitle(self): - """ - Return a calculated title. - """ - script = self._getTypeBasedMethod('asTitle') - if script is not None: - return script() - raise UnboundLocalError,\ - "Did not find title script for portal type: %r" %\ - self.getPortalType() - - security.declareProtected(Permissions.AccessContentsInformation, 'getCurrentInventory') - def getCurrentInventory(self, at_date=None, **kw): - """ Returns current inventory. - - at_date parameter can be used to take into account budget transactions - before that date. - """ - kw['node_uid'] = self.getUid() - resource = self.getResourceValue() - if resource is not None: - kw['resource_uid'] = resource.getUid() - if at_date: - kw['at_date'] = at_date - sign = self.getParentValue().BudgetLine_getConsumptionSign() - return sign * self.portal_simulation.getCurrentInventory(**kw) - - security.declareProtected(Permissions.AccessContentsInformation, 'getCurrentBalance') - def getCurrentBalance(self, at_date=None): - """ - Returns current balance - """ - sign = self.getParentValue().BudgetLine_getConsumptionSign() - return sign * self.getQuantity(0.0) + self.getCurrentInventory(at_date=at_date) - - security.declareProtected(Permissions.AccessContentsInformation, 'getConsumedBudget') - def getConsumedBudget(self, src__=0): - """ - Return consumed budget. - """ - script = self._getTypeBasedMethod('getConsumedBudget') - if script is not None: - return script(src__=src__) - raise UnboundLocalError,\ - "Did not find consumed budget script for portal type: %r" % \ - self.getPortalType() - - security.declareProtected(Permissions.AccessContentsInformation, 'getAvailableBudget') - def getAvailableBudget(self, at_date=None): - """ - Return available budget. - """ - return self.getCurrentBalance(at_date=at_date) - self.getEngagedBudget() - - security.declareProtected(Permissions.AccessContentsInformation, 'getEngagedBudget') - def getEngagedBudget(self, src__=0): - """ - Return Engaged budget. - """ - script = self._getTypeBasedMethod('getEngagedBudget') - if script is not None: - return script(src__=src__) - raise UnboundLocalError,\ - "Did not find engaged budget script for portal type: %r" % \ - self.getPortalType() - - security.declareProtected(Permissions.AccessContentsInformation, - 'getExplanationValue') - def getExplanationValue(self, default=None): - """Explanation has no meaning for a budget cell""" - return default - - security.declareProtected(Permissions.ModifyPortalContent, - 'setSourceCredit') - def setSourceCredit(self, source_credit): - """Set the quantity. - Overloaded from movement, we always set the quantity, even if not passed - """ - try: - source_credit = float(source_credit) - except TypeError: - source_credit = 0.0 - Movement.setSourceCredit(self, source_credit) - - def setSourceDebit(self, source_debit): - """Set the quantity. - Overloaded from movement, we always set the quantity, even if not passed - """ - try: - source_debit = float(source_debit) - except TypeError: - source_debit = 0.0 - Movement.setSourceDebit(self, source_debit) - - security.declareProtected( Permissions.ModifyPortalContent, - 'setDestinationDebit', 'setDestinationCredit' ) - setDestinationDebit = setSourceCredit - setDestinationCredit = setSourceDebit + security.declareProtected(Permissions.AccessContentsInformation, 'getConsumedBudget') + def getConsumedBudget(self, src__=0): + """ + Return consumed budget. + """ + script = self._getTypeBasedMethod('getConsumedBudget') + if script is not None: + return script(src__=src__) + raise UnboundLocalError( + "Did not find consumed budget script for portal type: %r" % + self.getPortalType()) + + security.declareProtected(Permissions.AccessContentsInformation, 'getAvailableBudget') + def getAvailableBudget(self, at_date=None): + """ + Return available budget. + """ + return self.getCurrentBalance(at_date=at_date) - self.getEngagedBudget() + + security.declareProtected(Permissions.AccessContentsInformation, 'getEngagedBudget') + def getEngagedBudget(self, src__=0): + """ + Return Engaged budget. + """ + script = self._getTypeBasedMethod('getEngagedBudget') + if script is not None: + return script(src__=src__) + raise UnboundLocalError( + "Did not find engaged budget script for portal type: %r" % + self.getPortalType()) + + security.declareProtected(Permissions.AccessContentsInformation, + 'getExplanationValue') + def getExplanationValue(self): + """Explanation has no meaning for a budget cell""" + return None + + security.declareProtected(Permissions.ModifyPortalContent, + 'setSourceCredit') + def setSourceCredit(self, source_credit): + """Set the quantity. + Overloaded from movement, we always set the quantity, even if not passed + """ + try: + source_credit = float(source_credit) + except TypeError: + source_credit = 0.0 + Movement.setSourceCredit(self, source_credit) + + def setSourceDebit(self, source_debit): + """Set the quantity. + Overloaded from movement, we always set the quantity, even if not passed + """ + try: + source_debit = float(source_debit) + except TypeError: + source_debit = 0.0 + Movement.setSourceDebit(self, source_debit) + + security.declareProtected(Permissions.ModifyPortalContent, + 'setDestinationDebit', 'setDestinationCredit' ) + setDestinationDebit = setSourceCredit + setDestinationCredit = setSourceDebit \ No newline at end of file diff --git a/bt5/erp5_budget/DocumentTemplateItem/portal_components/document.erp5.BudgetCell.xml b/bt5/erp5_budget/DocumentTemplateItem/portal_components/document.erp5.BudgetCell.xml index ae61095505..a19f2cf9a2 100644 --- a/bt5/erp5_budget/DocumentTemplateItem/portal_components/document.erp5.BudgetCell.xml +++ b/bt5/erp5_budget/DocumentTemplateItem/portal_components/document.erp5.BudgetCell.xml @@ -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>BudgetCell</string> </value> @@ -14,6 +20,12 @@ <key> <string>default_source_reference</string> </key> <value> <string>Products.ERP5.Document.BudgetCell</string> </value> </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> <item> <key> <string>id</string> </key> <value> <string>document.erp5.BudgetCell</string> </value> @@ -37,79 +49,7 @@ <item> <key> <string>text_content_warning_message</string> </key> <value> - <tuple> - <string>W: 38, 0: Bad indentation. Found 4 spaces, expected 2 (bad-indentation)</string> - <string>W: 44, 0: Bad indentation. Found 4 spaces, expected 2 (bad-indentation)</string> - <string>W: 61, 0: Bad indentation. Found 4 spaces, expected 2 (bad-indentation)</string> - <string>W: 62, 0: Bad indentation. Found 4 spaces, expected 2 (bad-indentation)</string> - <string>W: 63, 0: Bad indentation. Found 4 spaces, expected 2 (bad-indentation)</string> - <string>W: 66, 0: Bad indentation. Found 4 spaces, expected 2 (bad-indentation)</string> - <string>W: 67, 0: Bad indentation. Found 4 spaces, expected 2 (bad-indentation)</string> - <string>W: 69, 0: Bad indentation. Found 4 spaces, expected 2 (bad-indentation)</string> - <string>W: 70, 0: Bad indentation. Found 4 spaces, expected 2 (bad-indentation)</string> - <string>W: 71, 0: Bad indentation. Found 6 spaces, expected 4 (bad-indentation)</string> - <string>W: 74, 0: Bad indentation. Found 6 spaces, expected 4 (bad-indentation)</string> - <string>W: 75, 0: Bad indentation. Found 6 spaces, expected 4 (bad-indentation)</string> - <string>W: 76, 0: Bad indentation. Found 8 spaces, expected 6 (bad-indentation)</string> - <string>W: 77, 0: Bad indentation. Found 6 spaces, expected 4 (bad-indentation)</string> - <string>W: 81, 0: Bad indentation. Found 4 spaces, expected 2 (bad-indentation)</string> - <string>W: 82, 0: Bad indentation. Found 4 spaces, expected 2 (bad-indentation)</string> - <string>W: 83, 0: Bad indentation. Found 6 spaces, expected 4 (bad-indentation)</string> - <string>W: 88, 0: Bad indentation. Found 6 spaces, expected 4 (bad-indentation)</string> - <string>W: 89, 0: Bad indentation. Found 6 spaces, expected 4 (bad-indentation)</string> - <string>W: 90, 0: Bad indentation. Found 6 spaces, expected 4 (bad-indentation)</string> - <string>W: 91, 0: Bad indentation. Found 8 spaces, expected 6 (bad-indentation)</string> - <string>W: 92, 0: Bad indentation. Found 6 spaces, expected 4 (bad-indentation)</string> - <string>W: 93, 0: Bad indentation. Found 8 spaces, expected 6 (bad-indentation)</string> - <string>W: 94, 0: Bad indentation. Found 6 spaces, expected 4 (bad-indentation)</string> - <string>W: 95, 0: Bad indentation. Found 6 spaces, expected 4 (bad-indentation)</string> - <string>W: 97, 0: Bad indentation. Found 4 spaces, expected 2 (bad-indentation)</string> - <string>W: 98, 0: Bad indentation. Found 4 spaces, expected 2 (bad-indentation)</string> - <string>W: 99, 0: Bad indentation. Found 6 spaces, expected 4 (bad-indentation)</string> - <string>W:102, 0: Bad indentation. Found 6 spaces, expected 4 (bad-indentation)</string> - <string>W:103, 0: Bad indentation. Found 6 spaces, expected 4 (bad-indentation)</string> - <string>W:105, 0: Bad indentation. Found 4 spaces, expected 2 (bad-indentation)</string> - <string>W:106, 0: Bad indentation. Found 4 spaces, expected 2 (bad-indentation)</string> - <string>W:107, 0: Bad indentation. Found 6 spaces, expected 4 (bad-indentation)</string> - <string>W:110, 0: Bad indentation. Found 6 spaces, expected 4 (bad-indentation)</string> - <string>W:111, 0: Bad indentation. Found 6 spaces, expected 4 (bad-indentation)</string> - <string>W:112, 0: Bad indentation. Found 8 spaces, expected 6 (bad-indentation)</string> - <string>W:113, 0: Bad indentation. Found 6 spaces, expected 4 (bad-indentation)</string> - <string>W:117, 0: Bad indentation. Found 4 spaces, expected 2 (bad-indentation)</string> - <string>W:118, 0: Bad indentation. Found 4 spaces, expected 2 (bad-indentation)</string> - <string>W:119, 0: Bad indentation. Found 6 spaces, expected 4 (bad-indentation)</string> - <string>W:122, 0: Bad indentation. Found 6 spaces, expected 4 (bad-indentation)</string> - <string>W:124, 0: Bad indentation. Found 4 spaces, expected 2 (bad-indentation)</string> - <string>W:125, 0: Bad indentation. Found 4 spaces, expected 2 (bad-indentation)</string> - <string>W:126, 0: Bad indentation. Found 6 spaces, expected 4 (bad-indentation)</string> - <string>W:129, 0: Bad indentation. Found 6 spaces, expected 4 (bad-indentation)</string> - <string>W:130, 0: Bad indentation. Found 6 spaces, expected 4 (bad-indentation)</string> - <string>W:131, 0: Bad indentation. Found 8 spaces, expected 6 (bad-indentation)</string> - <string>W:132, 0: Bad indentation. Found 6 spaces, expected 4 (bad-indentation)</string> - <string>W:136, 0: Bad indentation. Found 4 spaces, expected 2 (bad-indentation)</string> - <string>W:138, 0: Bad indentation. Found 4 spaces, expected 2 (bad-indentation)</string> - <string>W:139, 0: Bad indentation. Found 6 spaces, expected 4 (bad-indentation)</string> - <string>W:140, 0: Bad indentation. Found 6 spaces, expected 4 (bad-indentation)</string> - <string>W:142, 0: Bad indentation. Found 4 spaces, expected 2 (bad-indentation)</string> - <string>W:144, 0: Bad indentation. Found 4 spaces, expected 2 (bad-indentation)</string> - <string>W:145, 0: Bad indentation. Found 6 spaces, expected 4 (bad-indentation)</string> - <string>W:148, 0: Bad indentation. Found 6 spaces, expected 4 (bad-indentation)</string> - <string>W:149, 0: Bad indentation. Found 8 spaces, expected 6 (bad-indentation)</string> - <string>W:150, 0: Bad indentation. Found 6 spaces, expected 4 (bad-indentation)</string> - <string>W:151, 0: Bad indentation. Found 8 spaces, expected 6 (bad-indentation)</string> - <string>W:152, 0: Bad indentation. Found 6 spaces, expected 4 (bad-indentation)</string> - <string>W:154, 0: Bad indentation. Found 4 spaces, expected 2 (bad-indentation)</string> - <string>W:155, 0: Bad indentation. Found 6 spaces, expected 4 (bad-indentation)</string> - <string>W:158, 0: Bad indentation. Found 6 spaces, expected 4 (bad-indentation)</string> - <string>W:159, 0: Bad indentation. Found 8 spaces, expected 6 (bad-indentation)</string> - <string>W:160, 0: Bad indentation. Found 6 spaces, expected 4 (bad-indentation)</string> - <string>W:161, 0: Bad indentation. Found 8 spaces, expected 6 (bad-indentation)</string> - <string>W:162, 0: Bad indentation. Found 6 spaces, expected 4 (bad-indentation)</string> - <string>W:164, 0: Bad indentation. Found 4 spaces, expected 2 (bad-indentation)</string> - <string>W:166, 0: Bad indentation. Found 4 spaces, expected 2 (bad-indentation)</string> - <string>W:167, 0: Bad indentation. Found 4 spaces, expected 2 (bad-indentation)</string> - <string>W:138, 4: Arguments number differs from overridden \'getExplanationValue\' method (arguments-differ)</string> - </tuple> + <tuple/> </value> </item> <item> @@ -119,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> @@ -138,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> @@ -147,7 +102,7 @@ </dictionary> </pickle> </record> - <record id="3" aka="AAAAAAAAAAM="> + <record id="4" aka="AAAAAAAAAAQ="> <pickle> <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> </pickle> diff --git a/bt5/erp5_budget/DocumentTemplateItem/portal_components/document.erp5.BudgetTransaction.py b/bt5/erp5_budget/DocumentTemplateItem/portal_components/document.erp5.BudgetTransaction.py index ed473b8fbf..7ed3324e6d 100644 --- a/bt5/erp5_budget/DocumentTemplateItem/portal_components/document.erp5.BudgetTransaction.py +++ b/bt5/erp5_budget/DocumentTemplateItem/portal_components/document.erp5.BudgetTransaction.py @@ -32,37 +32,35 @@ from Products.ERP5Type import Permissions, PropertySheet from Products.ERP5.Document.DeliveryLine import DeliveryLine class BudgetTransaction(DeliveryLine): - """ - BudgetTransaction an order or transfer of budget. - """ - - # Default Properties - property_sheets = ( PropertySheet.Base - , PropertySheet.XMLObject - , PropertySheet.CategoryCore - , PropertySheet.Amount - , PropertySheet.Task - , PropertySheet.Arrow - , PropertySheet.Movement - , PropertySheet.Price - , PropertySheet.VariationRange - , PropertySheet.ItemAggregation - ) - # CMF Type Definition - meta_type='ERP5 Budget Transaction' - portal_type='Budget Transaction' - add_permission = Permissions.AddPortalContent + """ + BudgetTransaction an order or transfer of budget. + """ - # Declarative security - security = ClassSecurityInfo() - security.declareObjectProtected(Permissions.AccessContentsInformation) + # Default Properties + property_sheets = ( PropertySheet.Base + , PropertySheet.XMLObject + , PropertySheet.CategoryCore + , PropertySheet.Amount + , PropertySheet.Task + , PropertySheet.Arrow + , PropertySheet.Movement + , PropertySheet.Price + , PropertySheet.VariationRange + , PropertySheet.ItemAggregation + ) + # CMF Type Definition + meta_type='ERP5 Budget Transaction' + portal_type='Budget Transaction' + add_permission = Permissions.AddPortalContent + # Declarative security + security = ClassSecurityInfo() + security.declareObjectProtected(Permissions.AccessContentsInformation) - security.declareProtected(Permissions.AccessContentsInformation, - 'isAccountable') - def isAccountable(self): - """ - Supersedes the DeliveryLine definition - """ - return 1 - + security.declareProtected(Permissions.AccessContentsInformation, + 'isAccountable') + def isAccountable(self): + """ + Supersedes the DeliveryLine definition + """ + return 1 \ No newline at end of file diff --git a/bt5/erp5_budget/DocumentTemplateItem/portal_components/document.erp5.BudgetTransaction.xml b/bt5/erp5_budget/DocumentTemplateItem/portal_components/document.erp5.BudgetTransaction.xml index 7847299de3..930f336c23 100644 --- a/bt5/erp5_budget/DocumentTemplateItem/portal_components/document.erp5.BudgetTransaction.xml +++ b/bt5/erp5_budget/DocumentTemplateItem/portal_components/document.erp5.BudgetTransaction.xml @@ -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>BudgetTransaction</string> </value> @@ -14,6 +20,12 @@ <key> <string>default_source_reference</string> </key> <value> <string>Products.ERP5.Document.BudgetTransaction</string> </value> </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> <item> <key> <string>id</string> </key> <value> <string>document.erp5.BudgetTransaction</string> </value> @@ -37,19 +49,7 @@ <item> <key> <string>text_content_warning_message</string> </key> <value> - <tuple> - <string>W: 35, 0: Bad indentation. Found 4 spaces, expected 2 (bad-indentation)</string> - <string>W: 40, 0: Bad indentation. Found 4 spaces, expected 2 (bad-indentation)</string> - <string>W: 52, 0: Bad indentation. Found 4 spaces, expected 2 (bad-indentation)</string> - <string>W: 53, 0: Bad indentation. Found 4 spaces, expected 2 (bad-indentation)</string> - <string>W: 54, 0: Bad indentation. Found 4 spaces, expected 2 (bad-indentation)</string> - <string>W: 57, 0: Bad indentation. Found 4 spaces, expected 2 (bad-indentation)</string> - <string>W: 58, 0: Bad indentation. Found 4 spaces, expected 2 (bad-indentation)</string> - <string>W: 61, 0: Bad indentation. Found 4 spaces, expected 2 (bad-indentation)</string> - <string>W: 63, 0: Bad indentation. Found 4 spaces, expected 2 (bad-indentation)</string> - <string>W: 64, 0: Bad indentation. Found 6 spaces, expected 4 (bad-indentation)</string> - <string>W: 67, 0: Bad indentation. Found 6 spaces, expected 4 (bad-indentation)</string> - </tuple> + <tuple/> </value> </item> <item> @@ -59,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> @@ -78,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> @@ -87,7 +102,7 @@ </dictionary> </pickle> </record> - <record id="3" aka="AAAAAAAAAAM="> + <record id="4" aka="AAAAAAAAAAQ="> <pickle> <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> </pickle> diff --git a/bt5/erp5_budget/DocumentTemplateItem/portal_components/document.erp5.BudgetTransfer.py b/bt5/erp5_budget/DocumentTemplateItem/portal_components/document.erp5.BudgetTransfer.py index 5c1ab7d255..153ec7532b 100644 --- a/bt5/erp5_budget/DocumentTemplateItem/portal_components/document.erp5.BudgetTransfer.py +++ b/bt5/erp5_budget/DocumentTemplateItem/portal_components/document.erp5.BudgetTransfer.py @@ -33,25 +33,24 @@ from Products.ERP5Type import Permissions, PropertySheet class BudgetTransfer(Supply): - """ - BudgetTransfer ... - """ + """ + BudgetTransfer ... + """ + # Default Properties + property_sheets = ( PropertySheet.Base + , PropertySheet.XMLObject + , PropertySheet.CategoryCore + , PropertySheet.Folder + , PropertySheet.Task + , PropertySheet.Arrow + , PropertySheet.Movement + ) - # Default Properties - property_sheets = ( PropertySheet.Base - , PropertySheet.XMLObject - , PropertySheet.CategoryCore - , PropertySheet.Folder - , PropertySheet.Task - , PropertySheet.Arrow - , PropertySheet.Movement - ) + # CMF Type Definition + meta_type='ERP5 Budget Transfer' + portal_type='Budget Transfer' + add_permission = Permissions.AddPortalContent - # CMF Type Definition - meta_type='ERP5 Budget Transfer' - portal_type='Budget Transfer' - add_permission = Permissions.AddPortalContent - - # Declarative security - security = ClassSecurityInfo() - security.declareObjectProtected(Permissions.AccessContentsInformation) + # Declarative security + security = ClassSecurityInfo() + security.declareObjectProtected(Permissions.AccessContentsInformation) \ No newline at end of file diff --git a/bt5/erp5_budget/DocumentTemplateItem/portal_components/document.erp5.BudgetTransfer.xml b/bt5/erp5_budget/DocumentTemplateItem/portal_components/document.erp5.BudgetTransfer.xml index e5f41c1f60..16f3702a33 100644 --- a/bt5/erp5_budget/DocumentTemplateItem/portal_components/document.erp5.BudgetTransfer.xml +++ b/bt5/erp5_budget/DocumentTemplateItem/portal_components/document.erp5.BudgetTransfer.xml @@ -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>BudgetTransfer</string> </value> @@ -14,6 +20,12 @@ <key> <string>default_source_reference</string> </key> <value> <string>Products.ERP5.Document.BudgetTransfer</string> </value> </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> <item> <key> <string>id</string> </key> <value> <string>document.erp5.BudgetTransfer</string> </value> @@ -37,15 +49,7 @@ <item> <key> <string>text_content_warning_message</string> </key> <value> - <tuple> - <string>W: 36, 0: Bad indentation. Found 4 spaces, expected 2 (bad-indentation)</string> - <string>W: 41, 0: Bad indentation. Found 4 spaces, expected 2 (bad-indentation)</string> - <string>W: 51, 0: Bad indentation. Found 4 spaces, expected 2 (bad-indentation)</string> - <string>W: 52, 0: Bad indentation. Found 4 spaces, expected 2 (bad-indentation)</string> - <string>W: 53, 0: Bad indentation. Found 4 spaces, expected 2 (bad-indentation)</string> - <string>W: 56, 0: Bad indentation. Found 4 spaces, expected 2 (bad-indentation)</string> - <string>W: 57, 0: Bad indentation. Found 4 spaces, expected 2 (bad-indentation)</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.patches.WorkflowTool"/> </pickle> diff --git a/bt5/erp5_budget/DocumentTemplateItem/portal_components/document.erp5.BudgetTransferLine.py b/bt5/erp5_budget/DocumentTemplateItem/portal_components/document.erp5.BudgetTransferLine.py index 33b849c7ad..88fb01a898 100644 --- a/bt5/erp5_budget/DocumentTemplateItem/portal_components/document.erp5.BudgetTransferLine.py +++ b/bt5/erp5_budget/DocumentTemplateItem/portal_components/document.erp5.BudgetTransferLine.py @@ -35,24 +35,23 @@ from Products.ERP5Type import Permissions, PropertySheet from Products.ERP5.Document.SupplyLine import SupplyLine class BudgetTransferLine(SupplyLine): - """ - BudgetTransferLine - """ - - # Default Properties - property_sheets = ( PropertySheet.Base - , PropertySheet.XMLObject - , PropertySheet.CategoryCore - , PropertySheet.Amount - , PropertySheet.Task - , PropertySheet.Arrow - ) - - # CMF Type Definition - meta_type='ERP5 Budget Transfer Line' - portal_type='Budget Transfer Line' - add_permission = Permissions.AddPortalContent - - # Declarative security - security = ClassSecurityInfo() - security.declareObjectProtected(Permissions.AccessContentsInformation) + """ + BudgetTransferLine + """ + # Default Properties + property_sheets = ( PropertySheet.Base + , PropertySheet.XMLObject + , PropertySheet.CategoryCore + , PropertySheet.Amount + , PropertySheet.Task + , PropertySheet.Arrow + ) + + # CMF Type Definition + meta_type='ERP5 Budget Transfer Line' + portal_type='Budget Transfer Line' + add_permission = Permissions.AddPortalContent + + # Declarative security + security = ClassSecurityInfo() + security.declareObjectProtected(Permissions.AccessContentsInformation) \ No newline at end of file diff --git a/bt5/erp5_budget/DocumentTemplateItem/portal_components/document.erp5.BudgetTransferLine.xml b/bt5/erp5_budget/DocumentTemplateItem/portal_components/document.erp5.BudgetTransferLine.xml index 688d107e1c..276fe14e7e 100644 --- a/bt5/erp5_budget/DocumentTemplateItem/portal_components/document.erp5.BudgetTransferLine.xml +++ b/bt5/erp5_budget/DocumentTemplateItem/portal_components/document.erp5.BudgetTransferLine.xml @@ -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>BudgetTransferLine</string> </value> @@ -14,6 +20,12 @@ <key> <string>default_source_reference</string> </key> <value> <string>Products.ERP5.Document.BudgetTransferLine</string> </value> </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> <item> <key> <string>id</string> </key> <value> <string>document.erp5.BudgetTransferLine</string> </value> @@ -37,15 +49,7 @@ <item> <key> <string>text_content_warning_message</string> </key> <value> - <tuple> - <string>W: 38, 0: Bad indentation. Found 4 spaces, expected 2 (bad-indentation)</string> - <string>W: 43, 0: Bad indentation. Found 4 spaces, expected 2 (bad-indentation)</string> - <string>W: 52, 0: Bad indentation. Found 4 spaces, expected 2 (bad-indentation)</string> - <string>W: 53, 0: Bad indentation. Found 4 spaces, expected 2 (bad-indentation)</string> - <string>W: 54, 0: Bad indentation. Found 4 spaces, expected 2 (bad-indentation)</string> - <string>W: 57, 0: Bad indentation. Found 4 spaces, expected 2 (bad-indentation)</string> - <string>W: 58, 0: Bad indentation. Found 4 spaces, expected 2 (bad-indentation)</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.patches.WorkflowTool"/> </pickle> diff --git a/bt5/erp5_budget/DocumentTemplateItem/portal_components/document.erp5.CategoryBudgetVariation.py b/bt5/erp5_budget/DocumentTemplateItem/portal_components/document.erp5.CategoryBudgetVariation.py index c593ebdd08..603b19a5d5 100644 --- a/bt5/erp5_budget/DocumentTemplateItem/portal_components/document.erp5.CategoryBudgetVariation.py +++ b/bt5/erp5_budget/DocumentTemplateItem/portal_components/document.erp5.CategoryBudgetVariation.py @@ -30,7 +30,6 @@ from AccessControl import ClassSecurityInfo from Products.ERP5Type import Permissions, PropertySheet from erp5.component.document.BudgetVariation import BudgetVariation - class CategoryBudgetVariation(BudgetVariation): """ A budget variation based on a category """ @@ -141,7 +140,7 @@ class CategoryBudgetVariation(BudgetVariation): for criterion_category in context.getMembershipCriterionCategoryList(): if '/' not in criterion_category: # safe ... continue - criterion_base_category, category_url = criterion_category.split('/', 1) + criterion_base_category, _ = criterion_category.split('/', 1) if criterion_base_category == base_category: if uid_based_axis: category_uid = self.getPortalObject().portal_categories\ @@ -184,8 +183,9 @@ class CategoryBudgetVariation(BudgetVariation): axis = '%s_uid' % axis if self.getProperty('full_consumption_detail'): - for title, category in self.getBudgetLineVariationRangeCategoryList(context): - if not category: continue + for _, category in self.getBudgetLineVariationRangeCategoryList(context): + if not category: + continue if axis.endswith('_uid'): # XXX move out getattrs category = self.getPortalObject().portal_categories\ diff --git a/bt5/erp5_budget/DocumentTemplateItem/portal_components/document.erp5.CategoryBudgetVariation.xml b/bt5/erp5_budget/DocumentTemplateItem/portal_components/document.erp5.CategoryBudgetVariation.xml index a981f521bc..687dfa89a0 100644 --- a/bt5/erp5_budget/DocumentTemplateItem/portal_components/document.erp5.CategoryBudgetVariation.xml +++ b/bt5/erp5_budget/DocumentTemplateItem/portal_components/document.erp5.CategoryBudgetVariation.xml @@ -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>CategoryBudgetVariation</string> </value> @@ -14,6 +20,12 @@ <key> <string>default_source_reference</string> </key> <value> <string>Products.ERP5.Document.CategoryBudgetVariation</string> </value> </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> <item> <key> <string>id</string> </key> <value> <string>document.erp5.CategoryBudgetVariation</string> </value> @@ -37,10 +49,7 @@ <item> <key> <string>text_content_warning_message</string> </key> <value> - <tuple> - <string>W:144, 31: Unused variable \'category_url\' (unused-variable)</string> - <string>W:187, 10: Unused variable \'title\' (unused-variable)</string> - </tuple> + <tuple/> </value> </item> <item> @@ -50,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> @@ -69,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> @@ -78,7 +102,7 @@ </dictionary> </pickle> </record> - <record id="3" aka="AAAAAAAAAAM="> + <record id="4" aka="AAAAAAAAAAQ="> <pickle> <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> </pickle> diff --git a/bt5/erp5_budget/DocumentTemplateItem/portal_components/document.erp5.NodeBudgetVariation.py b/bt5/erp5_budget/DocumentTemplateItem/portal_components/document.erp5.NodeBudgetVariation.py index a922652ea8..82da49d6b0 100644 --- a/bt5/erp5_budget/DocumentTemplateItem/portal_components/document.erp5.NodeBudgetVariation.py +++ b/bt5/erp5_budget/DocumentTemplateItem/portal_components/document.erp5.NodeBudgetVariation.py @@ -33,7 +33,6 @@ from erp5.component.document.BudgetVariation import BudgetVariation from Products.ZSQLCatalog.SQLCatalog import Query, NegatedQuery, ComplexQuery - class NodeBudgetVariation(BudgetVariation): """ A budget variation for node @@ -282,7 +281,7 @@ class NodeBudgetVariation(BudgetVariation): found = False for node_url in category_list: if node_url != '%s/budget_special_node/none' % base_category: - __traceback_info__ = (node_url, ) + __traceback_info__ = (node_url, ) # pylint: disable=unused-variable if uid_based_axis: query_dict.setdefault(axis, []).append( portal_categories.getCategoryValue(node_url, diff --git a/bt5/erp5_budget/DocumentTemplateItem/portal_components/document.erp5.NodeBudgetVariation.xml b/bt5/erp5_budget/DocumentTemplateItem/portal_components/document.erp5.NodeBudgetVariation.xml index d9b9be1b38..582adbeb03 100644 --- a/bt5/erp5_budget/DocumentTemplateItem/portal_components/document.erp5.NodeBudgetVariation.xml +++ b/bt5/erp5_budget/DocumentTemplateItem/portal_components/document.erp5.NodeBudgetVariation.xml @@ -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>NodeBudgetVariation</string> </value> @@ -14,6 +20,12 @@ <key> <string>default_source_reference</string> </key> <value> <string>Products.ERP5.Document.NodeBudgetVariation</string> </value> </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> <item> <key> <string>id</string> </key> <value> <string>document.erp5.NodeBudgetVariation</string> </value> @@ -37,10 +49,7 @@ <item> <key> <string>text_content_warning_message</string> </key> <value> - <tuple> - <string>W:133, 6: Unused variable \'consumption_dict\' (unused-variable)</string> - <string>W:284, 8: Unused variable \'__traceback_info__\' (unused-variable)</string> - </tuple> + <tuple/> </value> </item> <item> @@ -50,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> @@ -69,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> @@ -78,7 +102,7 @@ </dictionary> </pickle> </record> - <record id="3" aka="AAAAAAAAAAM="> + <record id="4" aka="AAAAAAAAAAQ="> <pickle> <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> </pickle> diff --git a/bt5/erp5_budget/DocumentTemplateItem/portal_components/document.erp5.TransactionQuantityValueFeasabilityConstraint.py b/bt5/erp5_budget/DocumentTemplateItem/portal_components/document.erp5.TransactionQuantityValueFeasabilityConstraint.py index d3b6fb8e8b..d3560a00a5 100644 --- a/bt5/erp5_budget/DocumentTemplateItem/portal_components/document.erp5.TransactionQuantityValueFeasabilityConstraint.py +++ b/bt5/erp5_budget/DocumentTemplateItem/portal_components/document.erp5.TransactionQuantityValueFeasabilityConstraint.py @@ -27,54 +27,53 @@ ############################################################################## from Products.ERP5Type.mixin.constraint import ConstraintMixin -from Products.ERP5Type import PropertySheet class TransactionQuantityValueFeasabilityConstraint(ConstraintMixin): + """ + Check if the quantity of the transaction is possible + for the source and the destination + + This is only relevant for ZODB Property Sheets (filesystem Property + Sheets rely on Products.ERP5.Constraint.TransactionQuantityValueFeasability + instead). + """ + meta_type = 'ERP5 Transaction Quantity Value Feasability Constraint' + portal_type = 'Transaction Quantity Value Feasability Constraint' + + def _checkConsistency(self, obj, fixit=0, **_): """ Check if the quantity of the transaction is possible for the source and the destination - - This is only relevant for ZODB Property Sheets (filesystem Property - Sheets rely on Products.ERP5.Constraint.TransactionQuantityValueFeasability - instead). """ - meta_type = 'ERP5 Transaction Quantity Value Feasability Constraint' - portal_type = 'Transaction Quantity Value Feasability Constraint' - - def _checkConsistency(self, object, fixit=0): - """ - Check if the quantity of the transaction is possible - for the source and the destination - """ - errors = [] - source_cell = object.getSourceValue() - destination_cell = object.getDestinationValue() - # Check for source and destination - for node, sign, node_title in ((source_cell, 1, 'source'), - (destination_cell, -1, 'destination')): - # As the quantity can change a few lines letter, - # we need to get it each time. - object_quantity = object.getQuantity() - quantity = object_quantity * sign - if node is not None: - balance = node.getCurrentBalance() - is_transaction_ok = 1 - # Check if balance and quantity have the same sign - if ((balance < 0) and (quantity < 0)): - if balance > quantity: - is_transaction_ok = 0 - elif ((balance >= 0) and (quantity >= 0)): - if balance < quantity: - is_transaction_ok = 0 - # Raise error - if not is_transaction_ok: - if fixit != 0: - object.setQuantity(balance) - else: - error_message = 'The quantity "%s" of the transaction is not ' \ - 'compatible with budget "%s" defined on the ' \ - '%s "%s".' % \ - (object_quantity, balance, node_title, node) - # Add error - errors.append(self._generateError(object, error_message)) - return errors + errors = [] + source_cell = obj.getSourceValue() + destination_cell = obj.getDestinationValue() + # Check for source and destination + for node, sign, node_title in ((source_cell, 1, 'source'), + (destination_cell, -1, 'destination')): + # As the quantity can change a few lines letter, + # we need to get it each time. + object_quantity = obj.getQuantity() + quantity = object_quantity * sign + if node is not None: + balance = node.getCurrentBalance() + is_transaction_ok = 1 + # Check if balance and quantity have the same sign + if ((balance < 0) and (quantity < 0)): + if balance > quantity: + is_transaction_ok = 0 + elif ((balance >= 0) and (quantity >= 0)): + if balance < quantity: + is_transaction_ok = 0 + # Raise error + if not is_transaction_ok: + if fixit != 0: + obj.setQuantity(balance) + else: + error_message = 'The quantity "%s" of the transaction is not ' \ + 'compatible with budget "%s" defined on the ' \ + '%s "%s".' % \ + (object_quantity, balance, node_title, node) + # Add error + errors.append(self._generateError(obj, error_message)) + return errors diff --git a/bt5/erp5_budget/DocumentTemplateItem/portal_components/document.erp5.TransactionQuantityValueFeasabilityConstraint.xml b/bt5/erp5_budget/DocumentTemplateItem/portal_components/document.erp5.TransactionQuantityValueFeasabilityConstraint.xml index a55981edec..70b29fea99 100644 --- a/bt5/erp5_budget/DocumentTemplateItem/portal_components/document.erp5.TransactionQuantityValueFeasabilityConstraint.xml +++ b/bt5/erp5_budget/DocumentTemplateItem/portal_components/document.erp5.TransactionQuantityValueFeasabilityConstraint.xml @@ -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>TransactionQuantityValueFeasabilityConstraint</string> </value> @@ -14,6 +20,12 @@ <key> <string>default_source_reference</string> </key> <value> <string>Products.ERP5.Document.TransactionQuantityValueFeasabilityConstraint</string> </value> </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> <item> <key> <string>id</string> </key> <value> <string>document.erp5.TransactionQuantityValueFeasabilityConstraint</string> </value> @@ -37,38 +49,7 @@ <item> <key> <string>text_content_warning_message</string> </key> <value> - <tuple> - <string>W: 33, 0: Bad indentation. Found 4 spaces, expected 2 (bad-indentation)</string> - <string>W: 41, 0: Bad indentation. Found 4 spaces, expected 2 (bad-indentation)</string> - <string>W: 42, 0: Bad indentation. Found 4 spaces, expected 2 (bad-indentation)</string> - <string>W: 44, 0: Bad indentation. Found 4 spaces, expected 2 (bad-indentation)</string> - <string>W: 45, 0: Bad indentation. Found 6 spaces, expected 4 (bad-indentation)</string> - <string>W: 49, 0: Bad indentation. Found 6 spaces, expected 4 (bad-indentation)</string> - <string>W: 50, 0: Bad indentation. Found 6 spaces, expected 4 (bad-indentation)</string> - <string>W: 51, 0: Bad indentation. Found 6 spaces, expected 4 (bad-indentation)</string> - <string>W: 53, 0: Bad indentation. Found 6 spaces, expected 4 (bad-indentation)</string> - <string>W: 57, 0: Bad indentation. Found 8 spaces, expected 6 (bad-indentation)</string> - <string>W: 58, 0: Bad indentation. Found 8 spaces, expected 6 (bad-indentation)</string> - <string>W: 59, 0: Bad indentation. Found 8 spaces, expected 6 (bad-indentation)</string> - <string>W: 60, 0: Bad indentation. Found 10 spaces, expected 8 (bad-indentation)</string> - <string>W: 61, 0: Bad indentation. Found 10 spaces, expected 8 (bad-indentation)</string> - <string>W: 63, 0: Bad indentation. Found 10 spaces, expected 8 (bad-indentation)</string> - <string>W: 64, 0: Bad indentation. Found 12 spaces, expected 10 (bad-indentation)</string> - <string>W: 65, 0: Bad indentation. Found 14 spaces, expected 12 (bad-indentation)</string> - <string>W: 66, 0: Bad indentation. Found 10 spaces, expected 8 (bad-indentation)</string> - <string>W: 67, 0: Bad indentation. Found 12 spaces, expected 10 (bad-indentation)</string> - <string>W: 68, 0: Bad indentation. Found 14 spaces, expected 12 (bad-indentation)</string> - <string>W: 70, 0: Bad indentation. Found 10 spaces, expected 8 (bad-indentation)</string> - <string>W: 71, 0: Bad indentation. Found 12 spaces, expected 10 (bad-indentation)</string> - <string>W: 72, 0: Bad indentation. Found 14 spaces, expected 12 (bad-indentation)</string> - <string>W: 73, 0: Bad indentation. Found 12 spaces, expected 10 (bad-indentation)</string> - <string>W: 74, 0: Bad indentation. Found 14 spaces, expected 12 (bad-indentation)</string> - <string>W: 79, 0: Bad indentation. Found 14 spaces, expected 12 (bad-indentation)</string> - <string>W: 80, 0: Bad indentation. Found 6 spaces, expected 4 (bad-indentation)</string> - <string>W: 44, 32: Redefining built-in \'object\' (redefined-builtin)</string> - <string>W: 44, 4: Arguments number differs from overridden \'_checkConsistency\' method (arguments-differ)</string> - <string>W: 30, 0: Unused PropertySheet imported from Products.ERP5Type (unused-import)</string> - </tuple> + <tuple/> </value> </item> <item> @@ -78,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> @@ -97,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> @@ -106,7 +102,7 @@ </dictionary> </pickle> </record> - <record id="3" aka="AAAAAAAAAAM="> + <record id="4" aka="AAAAAAAAAAQ="> <pickle> <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> </pickle> diff --git a/bt5/erp5_budget/DocumentTemplateItem/portal_components/document.erp5.TransactionQuantityValueValidityConstraint.py b/bt5/erp5_budget/DocumentTemplateItem/portal_components/document.erp5.TransactionQuantityValueValidityConstraint.py index 6d04e76b55..42e7cdca17 100644 --- a/bt5/erp5_budget/DocumentTemplateItem/portal_components/document.erp5.TransactionQuantityValueValidityConstraint.py +++ b/bt5/erp5_budget/DocumentTemplateItem/portal_components/document.erp5.TransactionQuantityValueValidityConstraint.py @@ -27,46 +27,44 @@ ############################################################################## from Products.ERP5Type.mixin.constraint import ConstraintMixin -from Products.ERP5Type import PropertySheet class TransactionQuantityValueValidityConstraint(ConstraintMixin): + """ + This is only relevant for ZODB Property Sheets (filesystem Property + Sheets rely on Products.ERP5.Constraint.TransactionQuantityValueValidity + instead). + """ + meta_type = 'ERP5 Transaction Quantity Value Validity Constraint' + portal_type = 'Transaction Quantity Value Validity Constraint' + + def _checkConsistency(self, obj, fixit=0, **_): """ - This is only relevant for ZODB Property Sheets (filesystem Property - Sheets rely on Products.ERP5.Constraint.TransactionQuantityValueValidity - instead). + Check if the quantity of the transaction is greater than the + balance of the source. """ - meta_type = 'ERP5 Transaction Quantity Value Validity Constraint' - portal_type = 'Transaction Quantity Value Validity Constraint' - - def _checkConsistency(self, object, fixit=0): - """ - Check if the quantity of the transaction is greater than the - balance of the source. - """ - errors = [] + errors = [] - source_cell = object.getSourceValue() - destination_cell = object.getDestinationValue() + source_cell = obj.getSourceValue() + destination_cell = obj.getDestinationValue() - if (source_cell is not None) and \ - (destination_cell is not None): - # XXX Dirty code ! - quantity = object.getQuantity() - budget_list = object.getPortalObject().budget_module.objectValues() - max_quantity = 0 - for obj in budget_list: - for item in obj.objectValues(): - if (item.getPortalType() == 'Budget Transfer Line') and \ - (item.getSourceValue() == source_cell) and \ - (item.getDestinationValue() == destination_cell): - max_quantity = item.getQuantity() - if quantity > max_quantity: - if fixit != 0: - self.setQuantity(max_quantity) - else: - error_message = 'The quantity of the transaction is greater than ' \ - 'the transferable maximum quantity (TMQ): ' \ + if source_cell is not None and destination_cell is not None: + # XXX Dirty code ! + quantity = obj.getQuantity() + budget_list = obj.getPortalObject().budget_module.objectValues() + max_quantity = 0 + for obj in budget_list: + for item in obj.objectValues(): + if item.getPortalType() == 'Budget Transfer Line' and \ + item.getSourceValue() == source_cell and \ + item.getDestinationValue() == destination_cell: + max_quantity = item.getQuantity() + if quantity > max_quantity: + if fixit != 0: + self.setQuantity(max_quantity) + else: + error_message = 'The quantity of the transaction is greater than ' \ + 'the transferable maximum quantity (TMQ): ' \ 'TMQ = %.2f' % max_quantity - # Add error - errors.append(self._generateError(object, error_message)) - return errors + # Add error + errors.append(self._generateError(obj, error_message)) + return errors \ No newline at end of file diff --git a/bt5/erp5_budget/DocumentTemplateItem/portal_components/document.erp5.TransactionQuantityValueValidityConstraint.xml b/bt5/erp5_budget/DocumentTemplateItem/portal_components/document.erp5.TransactionQuantityValueValidityConstraint.xml index e6570b720f..6112653b00 100644 --- a/bt5/erp5_budget/DocumentTemplateItem/portal_components/document.erp5.TransactionQuantityValueValidityConstraint.xml +++ b/bt5/erp5_budget/DocumentTemplateItem/portal_components/document.erp5.TransactionQuantityValueValidityConstraint.xml @@ -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>TransactionQuantityValueValidityConstraint</string> </value> @@ -14,6 +20,12 @@ <key> <string>default_source_reference</string> </key> <value> <string>Products.ERP5.Document.TransactionQuantityValueValidityConstraint</string> </value> </item> + <item> + <key> <string>description</string> </key> + <value> + <none/> + </value> + </item> <item> <key> <string>id</string> </key> <value> <string>document.erp5.TransactionQuantityValueValidityConstraint</string> </value> @@ -37,34 +49,7 @@ <item> <key> <string>text_content_warning_message</string> </key> <value> - <tuple> - <string>W: 33, 0: Bad indentation. Found 4 spaces, expected 2 (bad-indentation)</string> - <string>W: 38, 0: Bad indentation. Found 4 spaces, expected 2 (bad-indentation)</string> - <string>W: 39, 0: Bad indentation. Found 4 spaces, expected 2 (bad-indentation)</string> - <string>W: 41, 0: Bad indentation. Found 4 spaces, expected 2 (bad-indentation)</string> - <string>W: 42, 0: Bad indentation. Found 6 spaces, expected 4 (bad-indentation)</string> - <string>W: 46, 0: Bad indentation. Found 6 spaces, expected 4 (bad-indentation)</string> - <string>W: 48, 0: Bad indentation. Found 6 spaces, expected 4 (bad-indentation)</string> - <string>W: 49, 0: Bad indentation. Found 6 spaces, expected 4 (bad-indentation)</string> - <string>W: 51, 0: Bad indentation. Found 6 spaces, expected 4 (bad-indentation)</string> - <string>W: 54, 0: Bad indentation. Found 8 spaces, expected 6 (bad-indentation)</string> - <string>W: 55, 0: Bad indentation. Found 8 spaces, expected 6 (bad-indentation)</string> - <string>W: 56, 0: Bad indentation. Found 8 spaces, expected 6 (bad-indentation)</string> - <string>W: 57, 0: Bad indentation. Found 8 spaces, expected 6 (bad-indentation)</string> - <string>W: 58, 0: Bad indentation. Found 10 spaces, expected 8 (bad-indentation)</string> - <string>W: 59, 0: Bad indentation. Found 13 spaces, expected 10 (bad-indentation)</string> - <string>W: 62, 0: Bad indentation. Found 15 spaces, expected 12 (bad-indentation)</string> - <string>W: 63, 0: Bad indentation. Found 8 spaces, expected 6 (bad-indentation)</string> - <string>W: 64, 0: Bad indentation. Found 10 spaces, expected 8 (bad-indentation)</string> - <string>W: 65, 0: Bad indentation. Found 12 spaces, expected 10 (bad-indentation)</string> - <string>W: 66, 0: Bad indentation. Found 10 spaces, expected 8 (bad-indentation)</string> - <string>W: 67, 0: Bad indentation. Found 12 spaces, expected 10 (bad-indentation)</string> - <string>W: 71, 0: Bad indentation. Found 12 spaces, expected 10 (bad-indentation)</string> - <string>W: 72, 0: Bad indentation. Found 6 spaces, expected 4 (bad-indentation)</string> - <string>W: 41, 32: Redefining built-in \'object\' (redefined-builtin)</string> - <string>W: 41, 4: Arguments number differs from overridden \'_checkConsistency\' method (arguments-differ)</string> - <string>W: 30, 0: Unused PropertySheet imported from Products.ERP5Type (unused-import)</string> - </tuple> + <tuple/> </value> </item> <item> @@ -74,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> @@ -93,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> @@ -102,7 +102,7 @@ </dictionary> </pickle> </record> - <record id="3" aka="AAAAAAAAAAM="> + <record id="4" aka="AAAAAAAAAAQ="> <pickle> <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> </pickle> diff --git a/bt5/erp5_budget/TestTemplateItem/portal_components/test.erp5.testBudget.py b/bt5/erp5_budget/TestTemplateItem/portal_components/test.erp5.testBudget.py index 9fc4909755..df99a04485 100644 --- a/bt5/erp5_budget/TestTemplateItem/portal_components/test.erp5.testBudget.py +++ b/bt5/erp5_budget/TestTemplateItem/portal_components/test.erp5.testBudget.py @@ -85,7 +85,7 @@ class TestBudget(ERP5TypeTestCase): budget = self.portal.budget_module.newContent( portal_type='Budget') budget_line = budget.newContent(portal_type='Budget Line') - budget_cell = budget_line.newContent(portal_type='Budget Cell') + budget_line.newContent(portal_type='Budget Cell') self.assertEqual([], budget.checkConsistency()) def test_budget_cell_node_variation_with_aggregate(self): @@ -626,17 +626,18 @@ class TestBudget(ERP5TypeTestCase): self.assertEqual(2, len(budget_line.contentValues())) + test_class_self = self class ReferenceQuery: """Helper class to compare queries """ - def __eq__(me, query): - self.assertTrue(isinstance(query, ComplexQuery)) - self.assertEqual(query.logical_operator, 'or') - self.assertEqual(2, len(query.query_list)) - self.assertEqual(query.query_list[0].kw, {'project_uid': None}) - self.assertEqual(query.query_list[1].kw, + def __eq__(self, query): + test_class_self.assertTrue(isinstance(query, ComplexQuery)) + test_class_self.assertEqual(query.logical_operator, 'or') + test_class_self.assertEqual(2, len(query.query_list)) + test_class_self.assertEqual(query.query_list[0].kw, {'project_uid': None}) + test_class_self.assertEqual(query.query_list[1].kw, {'project_uid': - [self.portal.organisation_module.my_organisation.getUid()]}) + [test_class_self.portal.organisation_module.my_organisation.getUid()]}) return True self.assertEqual( @@ -730,12 +731,13 @@ class TestBudget(ERP5TypeTestCase): self.assertEqual(1, len(budget_line.contentValues())) + test_class_self = self class ReferenceQuery: """Helper class to compare queries """ - def __eq__(me, query): - self.assertTrue(isinstance(query, Query)) - self.assertEqual(query.kw, {'project_uid': None}) + def __eq__(self, query): + test_class_self.assertTrue(isinstance(query, Query)) + test_class_self.assertEqual(query.kw, {'project_uid': None}) return True self.assertEqual( -- 2.30.9