From 4c449d5dc4edfc22da2f8fa42d0da8c8c73a0b05 Mon Sep 17 00:00:00 2001 From: Helmut Merz Date: Sat, 21 Mar 2015 09:18:53 +0100 Subject: [PATCH] fix start action: only for work; repair IFTA qualification work items: done -> running --- organize/work/browser.py | 23 +++++++++++++++++++++++ organize/work/configure.zcml | 8 ++++++++ 2 files changed, 31 insertions(+) diff --git a/organize/work/browser.py b/organize/work/browser.py index b5270b3..478dab5 100644 --- a/organize/work/browser.py +++ b/organize/work/browser.py @@ -28,6 +28,7 @@ from zope.app.pagetemplate import ViewPageTemplateFile from zope.cachedescriptors.property import Lazy from zope.event import notify from zope.lifecycleevent import ObjectModifiedEvent +from zope.security.proxy import removeSecurityProxy from zope.traversing.browser import absoluteURL from zope.traversing.api import getName, getParent @@ -733,3 +734,25 @@ def formatTimeDelta(value): return str(int(round(h / 24.0))) return u'%02i:%02i' % (h, m) + +class FixCheckupWorkItems(object): + + def __call__(self): + context = removeSecurityProxy(self.context) + rm = context['records']['work'] + count = 0 + workItems = list(rm.values()) + for wi in workItems: + if wi.state in ('done',): + if wi.workItemType != 'checkup': + print '*** done, but not checkup', wi.__name__ + continue + wi.state = 'running' + wi.reindex('state') + if wi.end == wi.start: + del wi.data['end'] + count += 1 + msg = '*** checked: %i, updated: %i.' % (len(workItems), count) + print msg + return msg + diff --git a/organize/work/configure.zcml b/organize/work/configure.zcml index d4eab19..28d8d54 100644 --- a/organize/work/configure.zcml +++ b/organize/work/configure.zcml @@ -132,6 +132,14 @@ attribute="embed" permission="zope.View" /> + + + +