WARNING: THIS SITE IS A MIRROR OF GITHUB.COM / IT CANNOT LOGIN OR REGISTER ACCOUNTS / THE CONTENTS ARE PROVIDED AS-IS / THIS SITE ASSUMES NO RESPONSIBILITY FOR ANY DISPLAYED CONTENT OR LINKS / IF YOU FOUND SOMETHING MAY NOT GOOD FOR EVERYONE, CONTACT ADMIN AT ilovescratch@foxmail.com
Skip to content

Commit 3424b1c

Browse files
authored
Merge pull request #25 from collective/optimize_upgrade_step
Optimized upgrade step 2107
2 parents f62dfc9 + 86380d3 commit 3424b1c

File tree

2 files changed

+23
-25
lines changed

2 files changed

+23
-25
lines changed

src/collective/iconifiedcategory/upgrades.py

Lines changed: 22 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -48,9 +48,9 @@ def upgrade_to_2100(context):
4848
for brain in brains:
4949
obj = brain.getObject()
5050
# this can be useless if using behavior 'Scan metadata' collective.dms.scanbehavior
51-
if not(base_hasattr(obj, 'to_sign')):
51+
if not (base_hasattr(obj, 'to_sign')):
5252
setattr(obj, 'to_sign', False)
53-
if not(base_hasattr(obj, 'signed')):
53+
if not (base_hasattr(obj, 'signed')):
5454
setattr(obj, 'signed', False)
5555

5656
parent = obj.aq_parent
@@ -80,7 +80,7 @@ def upgrade_to_2101(context):
8080
parents_to_update = []
8181
for brain in brains:
8282
obj = brain.getObject()
83-
if not(base_hasattr(obj, 'publishable')):
83+
if not (base_hasattr(obj, 'publishable')):
8484
setattr(obj, 'publishable', False)
8585

8686
parent = obj.aq_parent
@@ -216,29 +216,27 @@ def upgrade_to_2106(context):
216216

217217
def upgrade_to_2107(context):
218218
''' '''
219-
portal_types = _portal_types_using_behavior()
220219
catalog = api.portal.get_tool('portal_catalog')
221-
brains = catalog(portal_type=portal_types)
222220

223-
logger.info('Querying elements to update among "{0}" objects of portal_type "{1}"'.format(
224-
len(brains), ', '.join(portal_types)))
225-
parents_to_update = []
221+
brains = catalog(
222+
object_provides='collective.iconifiedcategory.'
223+
'behaviors.iconifiedcategorization.IIconifiedCategorizationMarker')
224+
i = 0
225+
pghandler = ZLogHandler(steps=1000)
226+
pghandler.info('Initializing "approved/to_approve" for every categorized elements...')
227+
pghandler.init('InitFileContentTypeForCategorizedElements', len(brains))
228+
226229
for brain in brains:
230+
i += 1
231+
pghandler.report(i)
227232
obj = brain.getObject()
228-
if not(base_hasattr(obj, 'to_approve')):
229-
setattr(obj, 'to_approve', False)
230-
if not(base_hasattr(obj, 'approved')):
231-
setattr(obj, 'approved', False)
232-
233+
obj_uid = obj.UID()
233234
parent = obj.aq_parent
234-
if parent not in parents_to_update:
235-
parents_to_update.append(parent)
236-
237-
# finally update parents that contains categorized elements
238-
nb_of_parents_to_update = len(parents_to_update)
239-
i = 1
240-
for parent_to_update in parents_to_update:
241-
logger.info('Running update_all_categorized_elements for element {0}/{1} ({2})'.format(
242-
i, nb_of_parents_to_update, '/'.join(parent_to_update.getPhysicalPath())))
243-
i = i + 1
244-
update_all_categorized_elements(parent_to_update)
235+
if 'to_approve' not in parent.categorized_elements[obj_uid]:
236+
obj.to_approve = False
237+
parent.categorized_elements[obj_uid]['to_approve'] = False
238+
obj.approved = False
239+
parent.categorized_elements[obj_uid]['approved'] = False
240+
parent.categorized_elements[obj_uid]['approved_activated'] = False
241+
parent._p_changed = True
242+
pghandler.finish()

src/collective/iconifiedcategory/upgrades.zcml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@
6262
profile="collective.iconifiedcategory:default" />
6363

6464
<genericsetup:upgradeStep
65-
title="Updated ContentCategoryConfiguration type"
65+
title="Updated to_approve/approved workflow"
6666
description=""
6767
source="2106"
6868
destination="2107"

0 commit comments

Comments
 (0)