Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
S
slapos.core
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Xavier Thompson
slapos.core
Commits
d058b2a9
Commit
d058b2a9
authored
Oct 28, 2022
by
Rafael Monnerat
Browse files
Options
Browse Files
Download
Plain Diff
Updates on Regularisation Request Auto Cancellation
See merge request
nexedi/slapos.core!439
parents
6cf5c4d9
bf9b3c26
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
23 additions
and
36 deletions
+23
-36
master/bt5/slapos_crm/SkinTemplateItem/portal_skins/slapos_crm/Alarm_invalidateSuspendedRegularisationRequest.py
...pos_crm/Alarm_invalidateSuspendedRegularisationRequest.py
+1
-1
master/bt5/slapos_crm/SkinTemplateItem/portal_skins/slapos_crm/RegularisationRequest_checkToSendUniqEvent.py
.../slapos_crm/RegularisationRequest_checkToSendUniqEvent.py
+1
-1
master/bt5/slapos_crm/SkinTemplateItem/portal_skins/slapos_crm/RegularisationRequest_invalidateIfPersonBalanceIsOk.py
...rm/RegularisationRequest_invalidateIfPersonBalanceIsOk.py
+3
-3
master/bt5/slapos_crm/SkinTemplateItem/portal_skins/slapos_crm_monitoring/Alarm_updateSupportRequestMonitoringState.py
...m_monitoring/Alarm_updateSupportRequestMonitoringState.py
+1
-3
master/bt5/slapos_crm/TestTemplateItem/portal_components/test.erp5.testSlapOSCRMAlarm.py
...ateItem/portal_components/test.erp5.testSlapOSCRMAlarm.py
+12
-2
master/bt5/slapos_crm/TestTemplateItem/portal_components/test.erp5.testSlapOSCRMRegularisationRequestSkins.py
...ents/test.erp5.testSlapOSCRMRegularisationRequestSkins.py
+2
-2
master/bt5/slapos_crm/TestTemplateItem/portal_components/test.erp5.testSlapOSCRMRegularisationRequestSkins.xml
...nts/test.erp5.testSlapOSCRMRegularisationRequestSkins.xml
+3
-24
No files found.
master/bt5/slapos_crm/SkinTemplateItem/portal_skins/slapos_crm/Alarm_invalidateSuspendedRegularisationRequest.py
View file @
d058b2a9
portal
=
context
.
getPortalObject
()
portal
=
context
.
getPortalObject
()
portal
.
portal_catalog
.
searchAndActivate
(
portal
.
portal_catalog
.
searchAndActivate
(
portal_type
=
"Regularisation Request"
,
portal_type
=
"Regularisation Request"
,
simulation_state
=
[
"suspended"
],
simulation_state
=
[
"suspended"
,
"validated"
],
method_id
=
'RegularisationRequest_invalidateIfPersonBalanceIsOk'
,
method_id
=
'RegularisationRequest_invalidateIfPersonBalanceIsOk'
,
activate_kw
=
{
'tag'
:
tag
}
activate_kw
=
{
'tag'
:
tag
}
)
)
...
...
master/bt5/slapos_crm/SkinTemplateItem/portal_skins/slapos_crm/RegularisationRequest_checkToSendUniqEvent.py
View file @
d058b2a9
...
@@ -42,7 +42,7 @@ if (event is None) and (ticket.getSimulationState() == 'suspended'):
...
@@ -42,7 +42,7 @@ if (event is None) and (ticket.getSimulationState() == 'suspended'):
text_content
=
text_content
,
text_content
=
text_content
,
)
)
portal
.
portal_workflow
.
doActionFor
(
event
,
'start_action'
,
send_mail
=
True
,
comment
=
comment
)
event
.
start
(
send_mail
=
True
,
comment
=
comment
)
event
.
stop
(
comment
=
comment
)
event
.
stop
(
comment
=
comment
)
event
.
deliver
(
comment
=
comment
)
event
.
deliver
(
comment
=
comment
)
event
.
reindexObject
(
activate_kw
=
{
'tag'
:
tag
})
event
.
reindexObject
(
activate_kw
=
{
'tag'
:
tag
})
...
...
master/bt5/slapos_crm/SkinTemplateItem/portal_skins/slapos_crm/RegularisationRequest_invalidateIfPersonBalanceIsOk.py
View file @
d058b2a9
...
@@ -4,7 +4,7 @@ if REQUEST is not None:
...
@@ -4,7 +4,7 @@ if REQUEST is not None:
state
=
context
.
getSimulationState
()
state
=
context
.
getSimulationState
()
person
=
context
.
getSourceProjectValue
(
portal_type
=
"Person"
)
person
=
context
.
getSourceProjectValue
(
portal_type
=
"Person"
)
if
(
state
!=
'suspended'
)
or
\
if
(
state
not
in
(
'suspended'
,
'validated'
)
)
or
\
(
person
is
None
):
(
person
is
None
):
return
return
...
@@ -19,10 +19,10 @@ for payment in person.Person_getSubscriptionRequestFirstUnpaidPaymentList():
...
@@ -19,10 +19,10 @@ for payment in person.Person_getSubscriptionRequestFirstUnpaidPaymentList():
# It can't be smaller, we are considernig all open invoices are from unpaid_payment_amount
# It can't be smaller, we are considernig all open invoices are from unpaid_payment_amount
if
round
(
float
(
outstanding_amount
),
2
)
==
round
(
-
float
(
unpaid_payment_amount
),
2
):
if
round
(
float
(
outstanding_amount
),
2
)
==
round
(
-
float
(
unpaid_payment_amount
),
2
):
context
.
invalidate
(
comment
=
"Automatically disabled as balance is %s"
%
person
.
Entity_statOutstandingAmount
()
)
context
.
invalidate
(
comment
=
"Automatically disabled as balance is %s"
%
outstanding_amount
)
return
return
if
(
int
(
outstanding_amount
)
>
0
):
if
(
int
(
outstanding_amount
)
>
0
):
return
return
context
.
invalidate
(
comment
=
"Automatically disabled as balance is %s"
%
person
.
Entity_statOutstandingAmount
()
)
context
.
invalidate
(
comment
=
"Automatically disabled as balance is %s"
%
outstanding_amount
)
master/bt5/slapos_crm/SkinTemplateItem/portal_skins/slapos_crm_monitoring/Alarm_updateSupportRequestMonitoringState.py
View file @
d058b2a9
portal
=
context
.
getPortalObject
()
portal
=
context
.
getPortalObject
()
default_resource_uid
=
portal
.
restrictedTraverse
(
"service_module/slapos_crm_monitoring"
,
None
).
getUid
()
default_resource_uid
=
portal
.
restrictedTraverse
(
"service_module/slapos_crm_monitoring"
,
None
).
getUid
()
portal
.
portal_catalog
.
searchAndActivate
(
portal
.
portal_catalog
.
searchAndActivate
(
portal_type
=
'Support Request'
,
portal_type
=
'Support Request'
,
simulation_state
=
'validated'
,
simulation_state
=
[
'validated'
,
'suspended'
]
,
default_resource_uid
=
default_resource_uid
,
default_resource_uid
=
default_resource_uid
,
default_aggregate_portal_type
=
[
"Instance Tree"
],
default_aggregate_portal_type
=
[
"Instance Tree"
],
method_id
=
'SupportRequest_updateMonitoringState'
,
method_id
=
'SupportRequest_updateMonitoringState'
,
...
...
master/bt5/slapos_crm/TestTemplateItem/portal_components/test.erp5.testSlapOSCRMAlarm.py
View file @
d058b2a9
...
@@ -127,13 +127,13 @@ class TestSlapOSCrmInvalidateSuspendedRegularisationRequest(SlapOSTestCaseMixinW
...
@@ -127,13 +127,13 @@ class TestSlapOSCrmInvalidateSuspendedRegularisationRequest(SlapOSTestCaseMixinW
reference
=
"TESTREGREQ-%s"
%
new_id
,
reference
=
"TESTREGREQ-%s"
%
new_id
,
)
)
def
test_alarm_
not_suspend
ed_regularisation_request
(
self
):
def
test_alarm_
validat
ed_regularisation_request
(
self
):
ticket
=
self
.
createRegularisationRequest
()
ticket
=
self
.
createRegularisationRequest
()
ticket
.
validate
()
ticket
.
validate
()
self
.
tic
()
self
.
tic
()
alarm
=
self
.
portal
.
portal_alarms
.
\
alarm
=
self
.
portal
.
portal_alarms
.
\
slapos_crm_invalidate_suspended_regularisation_request
slapos_crm_invalidate_suspended_regularisation_request
self
.
_test_alarm
_not_visited
(
alarm
,
ticket
,
"RegularisationRequest_invalidateIfPersonBalanceIsOk"
)
self
.
_test_alarm
(
alarm
,
ticket
,
"RegularisationRequest_invalidateIfPersonBalanceIsOk"
)
def
test_alarm_suspended_regularisation_request
(
self
):
def
test_alarm_suspended_regularisation_request
(
self
):
ticket
=
self
.
createRegularisationRequest
()
ticket
=
self
.
createRegularisationRequest
()
...
@@ -144,6 +144,16 @@ class TestSlapOSCrmInvalidateSuspendedRegularisationRequest(SlapOSTestCaseMixinW
...
@@ -144,6 +144,16 @@ class TestSlapOSCrmInvalidateSuspendedRegularisationRequest(SlapOSTestCaseMixinW
slapos_crm_invalidate_suspended_regularisation_request
slapos_crm_invalidate_suspended_regularisation_request
self
.
_test_alarm
(
alarm
,
ticket
,
"RegularisationRequest_invalidateIfPersonBalanceIsOk"
)
self
.
_test_alarm
(
alarm
,
ticket
,
"RegularisationRequest_invalidateIfPersonBalanceIsOk"
)
def
test_alarm_invalidated_regularisation_request
(
self
):
ticket
=
self
.
createRegularisationRequest
()
ticket
.
validate
()
ticket
.
invalidate
()
self
.
tic
()
alarm
=
self
.
portal
.
portal_alarms
.
\
slapos_crm_invalidate_suspended_regularisation_request
self
.
_test_alarm_not_visited
(
alarm
,
ticket
,
"RegularisationRequest_invalidateIfPersonBalanceIsOk"
)
class
TestSlapOSCrmTriggerEscalationOnAcknowledgmentRegularisationRequest
(
SlapOSTestCaseMixinWithAbort
):
class
TestSlapOSCrmTriggerEscalationOnAcknowledgmentRegularisationRequest
(
SlapOSTestCaseMixinWithAbort
):
def
createRegularisationRequest
(
self
):
def
createRegularisationRequest
(
self
):
...
...
master/bt5/slapos_crm/TestTemplateItem/portal_components/test.erp5.testSlapOSCRMRegularisationRequestSkins.py
View file @
d058b2a9
...
@@ -239,13 +239,13 @@ class TestSlapOSRegularisationRequest_invalidateIfPersonBalanceIsOk(
...
@@ -239,13 +239,13 @@ class TestSlapOSRegularisationRequest_invalidateIfPersonBalanceIsOk(
self
.
assertEqual
(
ticket
.
getSimulationState
(),
'invalidated'
)
self
.
assertEqual
(
ticket
.
getSimulationState
(),
'invalidated'
)
@
simulate
(
'Entity_statOutstandingAmount'
,
'*args, **kwargs'
,
'return "0"'
)
@
simulate
(
'Entity_statOutstandingAmount'
,
'*args, **kwargs'
,
'return "0"'
)
def
test_invalidateIfPersonBalanceIsOk_
not_suspend
ed
(
self
):
def
test_invalidateIfPersonBalanceIsOk_
validat
ed
(
self
):
person
=
self
.
makePerson
(
index
=
0
,
user
=
0
)
person
=
self
.
makePerson
(
index
=
0
,
user
=
0
)
ticket
=
self
.
createRegularisationRequest
()
ticket
=
self
.
createRegularisationRequest
()
ticket
.
edit
(
source_project_value
=
person
)
ticket
.
edit
(
source_project_value
=
person
)
ticket
.
validate
()
ticket
.
validate
()
ticket
.
RegularisationRequest_invalidateIfPersonBalanceIsOk
()
ticket
.
RegularisationRequest_invalidateIfPersonBalanceIsOk
()
self
.
assertEqual
(
ticket
.
getSimulationState
(),
'validated'
)
self
.
assertEqual
(
ticket
.
getSimulationState
(),
'
in
validated'
)
@
simulate
(
'Entity_statOutstandingAmount'
,
'*args, **kwargs'
,
'return "0"'
)
@
simulate
(
'Entity_statOutstandingAmount'
,
'*args, **kwargs'
,
'return "0"'
)
def
test_invalidateIfPersonBalanceIsOk_no_person
(
self
):
def
test_invalidateIfPersonBalanceIsOk_no_person
(
self
):
...
...
master/bt5/slapos_crm/TestTemplateItem/portal_components/test.erp5.testSlapOSCRMRegularisationRequestSkins.xml
View file @
d058b2a9
...
@@ -6,12 +6,6 @@
...
@@ -6,12 +6,6 @@
</pickle>
</pickle>
<pickle>
<pickle>
<dictionary>
<dictionary>
<item>
<key>
<string>
_recorded_property_dict
</string>
</key>
<value>
<persistent>
<string
encoding=
"base64"
>
AAAAAAAAAAI=
</string>
</persistent>
</value>
</item>
<item>
<item>
<key>
<string>
default_reference
</string>
</key>
<key>
<string>
default_reference
</string>
</key>
<value>
<string>
testSlapOSCRMRegularisationRequestSkins
</string>
</value>
<value>
<string>
testSlapOSCRMRegularisationRequestSkins
</string>
</value>
...
@@ -55,28 +49,13 @@
...
@@ -55,28 +49,13 @@
<item>
<item>
<key>
<string>
workflow_history
</string>
</key>
<key>
<string>
workflow_history
</string>
</key>
<value>
<value>
<persistent>
<string
encoding=
"base64"
>
AAAAAAAAAA
M
=
</string>
</persistent>
<persistent>
<string
encoding=
"base64"
>
AAAAAAAAAA
I
=
</string>
</persistent>
</value>
</value>
</item>
</item>
</dictionary>
</dictionary>
</pickle>
</pickle>
</record>
</record>
<record
id=
"2"
aka=
"AAAAAAAAAAI="
>
<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>
<pickle>
<global
name=
"PersistentMapping"
module=
"Persistence.mapping"
/>
<global
name=
"PersistentMapping"
module=
"Persistence.mapping"
/>
</pickle>
</pickle>
...
@@ -89,7 +68,7 @@
...
@@ -89,7 +68,7 @@
<item>
<item>
<key>
<string>
component_validation_workflow
</string>
</key>
<key>
<string>
component_validation_workflow
</string>
</key>
<value>
<value>
<persistent>
<string
encoding=
"base64"
>
AAAAAAAAAA
Q
=
</string>
</persistent>
<persistent>
<string
encoding=
"base64"
>
AAAAAAAAAA
M
=
</string>
</persistent>
</value>
</value>
</item>
</item>
</dictionary>
</dictionary>
...
@@ -98,7 +77,7 @@
...
@@ -98,7 +77,7 @@
</dictionary>
</dictionary>
</pickle>
</pickle>
</record>
</record>
<record
id=
"
4"
aka=
"AAAAAAAAAAQ
="
>
<record
id=
"
3"
aka=
"AAAAAAAAAAM
="
>
<pickle>
<pickle>
<global
name=
"WorkflowHistoryList"
module=
"Products.ERP5Type.Workflow"
/>
<global
name=
"WorkflowHistoryList"
module=
"Products.ERP5Type.Workflow"
/>
</pickle>
</pickle>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment