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
Labels
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Jobs
Commits
Open sidebar
Rafael Monnerat
slapos.core
Commits
8755c713
Commit
8755c713
authored
Jul 11, 2024
by
Rafael Monnerat
👻
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
slapos_erp5: Add Upgrade Constraint to Migrate Region Categories
parent
0e81a818
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
286 additions
and
1 deletion
+286
-1
master/bt5/slapos_erp5/PortalTypePropertySheetTemplateItem/property_sheet_list.xml
...rtalTypePropertySheetTemplateItem/property_sheet_list.xml
+3
-0
master/bt5/slapos_erp5/PropertySheetTemplateItem/portal_property_sheets/CategoryToolUpgraderRegionConstraint.xml
..._property_sheets/CategoryToolUpgraderRegionConstraint.xml
+65
-0
master/bt5/slapos_erp5/PropertySheetTemplateItem/portal_property_sheets/CategoryToolUpgraderRegionConstraint/region_migration_upgrade_constraint.xml
...rRegionConstraint/region_migration_upgrade_constraint.xml
+78
-0
master/bt5/slapos_erp5/SkinTemplateItem/portal_skins/slapos_erp5/CategoryTool_checkRegionMigrationConsistency.py
...apos_erp5/CategoryTool_checkRegionMigrationConsistency.py
+75
-0
master/bt5/slapos_erp5/SkinTemplateItem/portal_skins/slapos_erp5/CategoryTool_checkRegionMigrationConsistency.xml
...pos_erp5/CategoryTool_checkRegionMigrationConsistency.xml
+62
-0
master/bt5/slapos_erp5/bt/template_portal_type_property_sheet_list
...5/slapos_erp5/bt/template_portal_type_property_sheet_list
+1
-0
master/bt5/slapos_erp5/bt/template_property_sheet_id_list
master/bt5/slapos_erp5/bt/template_property_sheet_id_list
+2
-1
No files found.
master/bt5/slapos_erp5/PortalTypePropertySheetTemplateItem/property_sheet_list.xml
View file @
8755c713
...
...
@@ -2,6 +2,9 @@
<portal_type
id=
"Catalog Tool"
>
<item>
CatalogToolNoneCreationDateConstraint
</item>
</portal_type>
<portal_type
id=
"Category Tool"
>
<item>
CategoryToolUpgraderRegionConstraint
</item>
</portal_type>
<portal_type
id=
"Contract Invitation Token"
>
<item>
Reference
</item>
<item>
SlapOSCloudContractAccounting
</item>
...
...
master/bt5/slapos_erp5/PropertySheetTemplateItem/portal_property_sheets/CategoryToolUpgraderRegionConstraint.xml
0 → 100644
View file @
8755c713
<?xml version="1.0"?>
<ZopeData>
<record
id=
"1"
aka=
"AAAAAAAAAAE="
>
<pickle>
<global
name=
"Property Sheet"
module=
"erp5.portal_type"
/>
</pickle>
<pickle>
<dictionary>
<item>
<key>
<string>
_count
</string>
</key>
<value>
<persistent>
<string
encoding=
"base64"
>
AAAAAAAAAAI=
</string>
</persistent>
</value>
</item>
<item>
<key>
<string>
_mt_index
</string>
</key>
<value>
<persistent>
<string
encoding=
"base64"
>
AAAAAAAAAAM=
</string>
</persistent>
</value>
</item>
<item>
<key>
<string>
_tree
</string>
</key>
<value>
<persistent>
<string
encoding=
"base64"
>
AAAAAAAAAAQ=
</string>
</persistent>
</value>
</item>
<item>
<key>
<string>
description
</string>
</key>
<value>
<string>
Migrate and unify the constraints related to Region changes\n
</string>
</value>
</item>
<item>
<key>
<string>
id
</string>
</key>
<value>
<string>
CategoryToolUpgraderRegionConstraint
</string>
</value>
</item>
<item>
<key>
<string>
portal_type
</string>
</key>
<value>
<string>
Property Sheet
</string>
</value>
</item>
</dictionary>
</pickle>
</record>
<record
id=
"2"
aka=
"AAAAAAAAAAI="
>
<pickle>
<global
name=
"Length"
module=
"BTrees.Length"
/>
</pickle>
<pickle>
<int>
0
</int>
</pickle>
</record>
<record
id=
"3"
aka=
"AAAAAAAAAAM="
>
<pickle>
<global
name=
"OOBTree"
module=
"BTrees.OOBTree"
/>
</pickle>
<pickle>
<none/>
</pickle>
</record>
<record
id=
"4"
aka=
"AAAAAAAAAAQ="
>
<pickle>
<global
name=
"OOBTree"
module=
"BTrees.OOBTree"
/>
</pickle>
<pickle>
<none/>
</pickle>
</record>
</ZopeData>
master/bt5/slapos_erp5/PropertySheetTemplateItem/portal_property_sheets/CategoryToolUpgraderRegionConstraint/region_migration_upgrade_constraint.xml
0 → 100644
View file @
8755c713
<?xml version="1.0"?>
<ZopeData>
<record
id=
"1"
aka=
"AAAAAAAAAAE="
>
<pickle>
<global
name=
"Script Constraint"
module=
"erp5.portal_type"
/>
</pickle>
<pickle>
<dictionary>
<item>
<key>
<string>
_identity_criterion
</string>
</key>
<value>
<persistent>
<string
encoding=
"base64"
>
AAAAAAAAAAI=
</string>
</persistent>
</value>
</item>
<item>
<key>
<string>
_range_criterion
</string>
</key>
<value>
<persistent>
<string
encoding=
"base64"
>
AAAAAAAAAAM=
</string>
</persistent>
</value>
</item>
<item>
<key>
<string>
categories
</string>
</key>
<value>
<tuple>
<string>
constraint_type/post_upgrade
</string>
</tuple>
</value>
</item>
<item>
<key>
<string>
description
</string>
</key>
<value>
<string
encoding=
"base64"
>
Cg==
</string>
</value>
</item>
<item>
<key>
<string>
id
</string>
</key>
<value>
<string>
region_migration_upgrade_constraint
</string>
</value>
</item>
<item>
<key>
<string>
portal_type
</string>
</key>
<value>
<string>
Script Constraint
</string>
</value>
</item>
<item>
<key>
<string>
script_id
</string>
</key>
<value>
<string>
CategoryTool_checkRegionMigrationConsistency
</string>
</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>
<pickle>
<dictionary>
<item>
<key>
<string>
data
</string>
</key>
<value>
<dictionary/>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
master/bt5/slapos_erp5/SkinTemplateItem/portal_skins/slapos_erp5/CategoryTool_checkRegionMigrationConsistency.py
0 → 100644
View file @
8755c713
from
zExceptions
import
Unauthorized
from
Products.ZSQLCatalog.SQLCatalog
import
SimpleQuery
,
NegatedQuery
if
REQUEST
is
not
None
:
raise
Unauthorized
# check if is consistent
portal
=
context
.
getPortalObject
()
not_expired_category_list
=
portal
.
portal_catalog
(
portal_type
=
"Category"
,
path
=
"%portal_categories/region/%"
,
validation_state
=
NegatedQuery
(
SimpleQuery
(
validation_state
=
'expired'
))
)
# Filter the list, since search for None dont work properly.
category_to_migrate_list
=
[
c
for
c
in
not_expired_category_list
if
c
.
getIntIndex
(
0
)
<
1
]
if
not
len
(
category_to_migrate_list
):
# Skip everything is consistent
return
[]
if
fixit
:
# Build a Map to not search inside the loop, this makes upgrade faster
new_category_map
=
{}
for
category
in
not_expired_category_list
:
if
c
.
getIntIndex
(
0
)
<
1
or
category
.
getValidationState
()
==
'expired'
:
continue
title
=
category
.
getTitle
()
if
title
not
in
new_category_map
:
new_category_map
[
title
]
=
[
category
]
else
:
new_category_map
[
title
].
append
(
category
)
message_list
=
[]
for
category
in
category_to_migrate_list
:
if
category
.
getIntIndex
()
==
1
:
raise
ValueError
(
"Selected the wrong thing"
)
if
category
.
getValidationState
()
==
'expired'
:
# skip, we seems to be rerunning the migration
# and some reindexation is going on.
continue
message_list
.
append
(
"%s requires migration (int_index: %s, validation_state: %s)"
%
(
category
.
getRelativeUrl
(),
category
.
getIntIndex
(),
category
.
getValidationState
())
)
if
fixit
:
new_category_list
=
new_category_map
[
category
.
getTitle
()]
if
len
(
new_category_list
)
!=
1
:
raise
ValueError
(
'Cannot decide which one to migrate into (%s options)'
%
len
(
new_category_list
))
new_category
=
new_category_list
[
0
]
# Can we make it cheaper
related_document_list
=
category
.
Base_getRelatedObjectList
(
**
{
'portal_type'
:
NegatedQuery
(
SimpleQuery
(
portal_type
=
'Category'
)),
'category.category_strict_membership'
:
1
})
for
document
in
related_document_list
:
# does it actually has the category?
document
.
edit
(
region
=
new_category
)
document
.
reindexObject
()
# 1) Search for the all related objects
# 2) Migrate all related objects
# 3) reindex everything
# 4) Expire the category
category
.
expire
()
message_list
.
append
(
"%s migrated and expired (int_index: %s, validation_state: %s)"
%
(
category
.
getRelativeUrl
(),
category
.
getIntIndex
(),
category
.
getValidationState
())
)
return
message_list
master/bt5/slapos_erp5/SkinTemplateItem/portal_skins/slapos_erp5/CategoryTool_checkRegionMigrationConsistency.xml
0 → 100644
View file @
8755c713
<?xml version="1.0"?>
<ZopeData>
<record
id=
"1"
aka=
"AAAAAAAAAAE="
>
<pickle>
<global
name=
"PythonScript"
module=
"Products.PythonScripts.PythonScript"
/>
</pickle>
<pickle>
<dictionary>
<item>
<key>
<string>
_bind_names
</string>
</key>
<value>
<object>
<klass>
<global
name=
"_reconstructor"
module=
"copy_reg"
/>
</klass>
<tuple>
<global
name=
"NameAssignments"
module=
"Shared.DC.Scripts.Bindings"
/>
<global
name=
"object"
module=
"__builtin__"
/>
<none/>
</tuple>
<state>
<dictionary>
<item>
<key>
<string>
_asgns
</string>
</key>
<value>
<dictionary>
<item>
<key>
<string>
name_container
</string>
</key>
<value>
<string>
container
</string>
</value>
</item>
<item>
<key>
<string>
name_context
</string>
</key>
<value>
<string>
context
</string>
</value>
</item>
<item>
<key>
<string>
name_m_self
</string>
</key>
<value>
<string>
script
</string>
</value>
</item>
<item>
<key>
<string>
name_subpath
</string>
</key>
<value>
<string>
traverse_subpath
</string>
</value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key>
<string>
_params
</string>
</key>
<value>
<string>
fixit=False, REQUEST=None, **kw
</string>
</value>
</item>
<item>
<key>
<string>
id
</string>
</key>
<value>
<string>
CategoryTool_checkRegionMigrationConsistency
</string>
</value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
master/bt5/slapos_erp5/bt/template_portal_type_property_sheet_list
View file @
8755c713
Catalog Tool | CatalogToolNoneCreationDateConstraint
Category Tool | CategoryToolUpgraderRegionConstraint
Contract Invitation Token | Reference
Contract Invitation Token | SlapOSCloudContractAccounting
Contract Invitation Token | Url
...
...
master/bt5/slapos_erp5/bt/template_property_sheet_id_list
View file @
8755c713
CatalogToolNoneCreationDateConstraint
CategoryToolUpgraderRegionConstraint
GeographicOrganisation
TemplateToolPASConsistencyConstraint
PreferenceSlapOSConstraintPreference
ShacacheSystemPreference
SlapOSModuleIdGeneratorConstraint
TemplateToolBusinessApplicationModuleCategoryConstraint
TemplateToolPASConsistencyConstraint
WebSiteModuleShacacheConstraint
\ No newline at end of file
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