Esempio n. 1
0
    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'))
Esempio n. 3
0
 def update(self, id, updates, original):
     ArchiveCropService().create_multiple_crops(updates, original)
     super().update(id, updates, original)
Esempio n. 4
0
 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)