def _addNewVersion(self, comment=''): """Content must be updated, so the history machinery will save a new version""" context = self.context context.reindexObject() if VERSIONING_SUPPORT and isObjectChanged( context) and isObjectVersioned(context): maybeSaveVersion(context, comment=comment)
def webdavObjectEventHandler(obj, event, comment): obj = event.object if not isObjectChanged(obj): return try: maybeSaveVersion(obj, comment=comment, force=False) except FileTooLargeToVersionError: pass # There's no way to emit a warning here. Or is there?
def webdavObjectEventHandler(obj, event, comment): obj = event.object if not isObjectChanged(obj): return try: maybeSaveVersion(obj, comment=comment, force=False) except FileTooLargeToVersionError: pass # There's no way to emit a warning here. Or is there?
def patched_save(self, text, fieldname): """18221 call SaveVersion when using tinyMCE save plugin""" self.context.getField(fieldname).set(self.context, text, mimetype='text/html') # patch maybeSaveVersion(self.context, comment="TinyMCE save triggered revision", force=False) return "saved"
def handle_document_modified(obj, event, comment): obj = event.object changed = isObjectChanged(obj) if not changed: return handle_convert_document(obj, event) try: maybeSaveVersion(obj, policy='version_on_unlock', comment=comment, force=False) except FileTooLargeToVersionError: pass # There's no way to emit a warning here. Or is there?
def save_version(self): errors = [] comment = self.request.get('cmfeditions_version_comment', '') save_new_version = self.request.get('cmfeditions_save_new_version', None) force = save_new_version is not None if not (isObjectChanged(self.context) or force): return errors try: maybeSaveVersion(self.context, comment=comment, force=force) except FileTooLargeToVersionError as e: errors.append(e) return errors
def __call__(self): context = aq_inner(self.context) comment = self.request.get('cmfeditions_version_comment', '') force = self.request.get('cmfeditions_save_new_version', None) is not None if not (isObjectChanged(context) or force): return self.success() try: maybeSaveVersion(context, comment=comment, force=force) except FileTooLargeToVersionError: IStatusMessage(self.request).addStatusMessage( _('Versioning for this file has been disabled because it is too large'), type='warn' ) return self.success()
def __call__(self): context = aq_inner(self.context) pf = getToolByName(context, 'portal_factory') if pf.isTemporary(context): # don't do anything if we're in the factory return self.success() comment = _("Initial revision") if isObjectVersioned(context): return self.success() try: maybeSaveVersion(context, comment=comment, force=False) except FileTooLargeToVersionError: pass # the on edit save will emit a warning return self.success()
def __call__(self): logger = logging.getLogger() log_name = __name__ + '.' + self.__name__ logger.info('STARTING %s browser view', log_name) catalog = getToolByName(self.context, 'portal_catalog', None) mt = getToolByName(self.context, 'portal_membership', None) rt = getToolByName(self.context, "portal_repository", None) wf = getToolByName(self.context, "portal_workflow", None) res = catalog(show_inactive="True", language="All", sort_on="meta_type") count = 0 objs_urls = [] wf_error_objs = [] wf_error_objs_count = 0 reindex_error_objs = [] reindex_error_objs_count = 0 actor = mt.getAuthenticatedMember().id for brain in res: if brain.EffectiveDate != "None" and \ brain.effective < brain.created: obj = brain.getObject() obj_url = brain.getURL() try: review_state = wf.getInfoFor(obj, 'review_state', 'None') except WorkflowException: wf_error_objs_count += 1 wf_error_objs.append(obj_url) continue previous_creation_date = obj.created() effective_date = obj.effective() obj.setCreationDate(effective_date) comment = "Fixed creation date < effective date (issue 21326" \ "). Changed creation date from %s to --> %s." % ( previous_creation_date, effective_date) if not rt.isVersionable(obj): objs_urls.append(brain.getURL(1)) history = obj.workflow_history # persistent mapping for name, wf_entries in history.items(): wf_entries = list(wf_entries) wf_entries.append({'action': 'Edited', 'review_state': review_state, 'comments': comment, 'actor': actor, 'time': DateTime()}) history[name] = tuple(wf_entries) else: maybeSaveVersion(obj, comment=comment, force=False) try: obj.reindexObject(idxs=['created']) except Exception: reindex_error_objs.append(obj_url) reindex_error_objs_count += 1 logger.error("%s --> couldn't be reindexed", obj_url) continue count += 1 logger.info('Fixed %s', obj_url) objs_urls.append(obj_url) if count % 100 == 0: transaction.commit() logger.info('ENDING %s browser view', log_name) message = \ "REINDEX ERROR FOR %d objects \n %s \n" \ "REVIEW STATE ERROR FOR %d objects \n %s \n" \ "FIXED THE FOLLOWING OBJECTS %d %s" % ( reindex_error_objs_count, "\n".join(reindex_error_objs), wf_error_objs_count, "\n".join(wf_error_objs), count, "\n".join(objs_urls)) return message
def _addNewVersion(self, comment=''): """Content must be updated, so the history machinery will save a new version""" context = self.context context.reindexObject() if VERSIONING_SUPPORT and isObjectChanged(context) and isObjectVersioned(context): maybeSaveVersion(context, comment=comment)
def _createNewVersion(self, obj): _ = getToolByName(self.context, 'translation_service').utranslate if isObjectChanged(obj) and isObjectVersioned(obj): maybeSaveVersion(obj, comment=_(msgid="Bulk text replacement", domain="rt.bulkmodify", context=obj))
def __call__(self): count = 0 context = self.context cat = context.portal_catalog form = self.request.form match = form.get('text', 'bg-grey') form_field = form.get('field', 'text') ptype = form.get('ptype', 'Fiche') brains = cat(portal_type=ptype, show_inactive=True, Language="all") pat = [('class="bg-grey"', 'class="pullquote-container"'), ('box fullwidth-bg bg-blue', 'fullwidth-bg eea-block bg-primary'), ('box fullwidth-bg bg-grey', 'fullwidth-bg eea-block bg-secondary'), ('box fullwidth-bg bg-green', 'fullwidth-bg eea-block bg-tertiary'), ('="fullwidth-bg bg-grey', '="fullwidth-bg eea-block bg-secondary'), ("bg-blue", "box-primary"), ('bg-grey', ' box-secondary'), ("bg-green", "box-tertiary") ] modified = [] mt = getToolByName(context, 'portal_membership', None) rt = getToolByName(context, "portal_repository", None) wf = getToolByName(context, "portal_workflow", None) actor = mt.getAuthenticatedMember().id for brain in brains: obj = brain.getObject() text = obj.getField(form_field).get(obj) if match in text: review_state = wf.getInfoFor(obj, 'review_state', 'None') url = brain.getURL() modified.append(url) print url for pattern in pat: text = text.replace(pattern[0], pattern[1]) obj.setText(text, mimetype='text/html') if obj.portal_type == 'Fiche': text = obj.getEndnotes() if match in text: for pattern in pat: text = text.replace(pattern[0], pattern[1]) obj.setEndnotes(text, mimetype='text/html') comment = "Modified design elements html #117294" if not rt.isVersionable(obj): history = obj.workflow_history # persistent mapping for name, wf_entries in history.items(): wf_entries = list(wf_entries) wf_entries.append({'action': 'Edited', 'review_state': review_state, 'comments': comment, 'actor': actor, 'time': DateTime()}) history[name] = tuple(wf_entries) else: maybeSaveVersion(obj, comment=comment, force=False) try: obj.reindexObject() except Exception: logger.error("%s --> couldn't be reindexed", url) count += 1 logger.info("Finished migration of eea.design #117294") print '%d objects were modified' % count modified.sort() pprint(modified) logger.info("%s", '\n'.join(modified)) return '\n'.join(modified)
def __call__(self): logger = logging.getLogger() log_name = __name__ + '.' + self.__name__ logger.info('STARTING %s browser view', log_name) catalog = getToolByName(self.context, 'portal_catalog', None) mt = getToolByName(self.context, 'portal_membership', None) rt = getToolByName(self.context, "portal_repository", None) wf = getToolByName(self.context, "portal_workflow", None) res = catalog(show_inactive="True", language="All", sort_on="meta_type") count = 0 objs_urls = [] wf_error_objs = [] wf_error_objs_count = 0 reindex_error_objs = [] reindex_error_objs_count = 0 actor = mt.getAuthenticatedMember().id for brain in res: if brain.EffectiveDate != "None" and \ brain.effective < brain.created: obj = brain.getObject() obj_url = brain.getURL() try: review_state = wf.getInfoFor(obj, 'review_state', 'None') except WorkflowException: wf_error_objs_count += 1 wf_error_objs.append(obj_url) continue previous_creation_date = obj.created() effective_date = obj.effective() obj.setCreationDate(effective_date) comment = "Fixed creation date < effective date (issue 21326" \ "). Changed creation date from %s to --> %s." % ( previous_creation_date, effective_date) if not rt.isVersionable(obj): objs_urls.append(brain.getURL(1)) history = obj.workflow_history # persistent mapping for name, wf_entries in history.items(): wf_entries = list(wf_entries) wf_entries.append({ 'action': 'Edited', 'review_state': review_state, 'comments': comment, 'actor': actor, 'time': DateTime() }) history[name] = tuple(wf_entries) else: maybeSaveVersion(obj, comment=comment, force=False) try: obj.reindexObject(idxs=['created']) except Exception: reindex_error_objs.append(obj_url) reindex_error_objs_count += 1 logger.error("%s --> couldn't be reindexed", obj_url) continue count += 1 logger.info('Fixed %s', obj_url) objs_urls.append(obj_url) if count % 100 == 0: transaction.commit() logger.info('ENDING %s browser view', log_name) message = \ "REINDEX ERROR FOR %d objects \n %s \n" \ "REVIEW STATE ERROR FOR %d objects \n %s \n" \ "FIXED THE FOLLOWING OBJECTS %d %s" % ( reindex_error_objs_count, "\n".join(reindex_error_objs), wf_error_objs_count, "\n".join(wf_error_objs), count, "\n".join(objs_urls)) return message