def on_updated(self, updates, original): """ Locates the published or corrected non-take packages containing the corrected item and corrects them :param updates: correction :param original: original story """ original_updates = dict() original_updates['operation'] = updates['operation'] original_updates[ITEM_STATE] = updates[ITEM_STATE] super().on_updated(updates, original) ArchiveCropService().delete_replaced_crop_files(updates, original) packages = self.package_service.get_packages(original[config.ID_FIELD]) if packages and packages.count() > 0: archive_correct = get_resource_service('archive_correct') processed_packages = [] for package in packages: if package[ITEM_STATE] in [CONTENT_STATE.PUBLISHED, CONTENT_STATE.CORRECTED] and \ package.get(PACKAGE_TYPE, '') == '' and \ str(package[config.ID_FIELD]) not in processed_packages: original_updates['groups'] = package['groups'] if updates.get('headline'): self.package_service.update_field_in_package( original_updates, original[config.ID_FIELD], 'headline', updates.get('headline')) if updates.get('slugline'): self.package_service.update_field_in_package( original_updates, original[config.ID_FIELD], 'slugline', updates.get('slugline')) archive_correct.patch(id=package[config.ID_FIELD], updates=original_updates) insert_into_versions(id_=package[config.ID_FIELD]) processed_packages.append(package[config.ID_FIELD])
def setUp(self): super().setUp() self.service = ArchiveCropService() VocabulariesPopulateCommand().run( os.path.abspath( 'apps/prepopulate/data_initialization/vocabularies.json'))
def update(self, id, updates, original): ArchiveCropService().create_multiple_crops(updates, original) super().update(id, updates, original)
def on_update(self, updates, original): updates[ITEM_OPERATION] = ITEM_CORRECT ArchiveCropService().validate_multiple_crops(updates, original) super().on_update(updates, original) set_sign_off(updates, original)