def _add_system_updates(self, original, updates, user): """Adds system updates to item. As the name suggests, this method adds properties which are derived based on updates sent in the request. 1. Sets item operation, version created, version creator, sign off and word count. 2. Resets Item Expiry """ convert_task_attributes_to_objectId(updates) updates[ITEM_OPERATION] = ITEM_UPDATE updates.setdefault('original_creator', original.get('original_creator')) updates['versioncreated'] = utcnow() updates['version_creator'] = str(user.get(config.ID_FIELD)) if user else None update_word_count(updates, original) update_version(updates, original) set_item_expiry(updates, original) set_sign_off(updates, original=original) set_dateline(updates, original) # Clear publish_schedule field if updates.get(PUBLISH_SCHEDULE) \ and datetime.datetime.fromtimestamp(0).date() == updates.get(PUBLISH_SCHEDULE).date(): updates[PUBLISH_SCHEDULE] = None updates[SCHEDULE_SETTINGS] = {} if updates.get('force_unlock', False): del updates['force_unlock']
def _add_system_updates(self, original, updates, user): """Adds system updates to item. As the name suggests, this method adds properties which are derived based on updates sent in the request. 1. Sets item operation, version created, version creator, sign off and word count. 2. Resets Item Expiry """ convert_task_attributes_to_objectId(updates) updates[ITEM_OPERATION] = ITEM_UPDATE updates.setdefault('original_creator', original.get('original_creator')) updates['versioncreated'] = utcnow() updates['version_creator'] = str(user.get( config.ID_FIELD)) if user else None update_word_count(updates, original) update_version(updates, original) set_item_expiry(updates, original) set_sign_off(updates, original=original) set_dateline(updates, original) # Clear publish_schedule field if updates.get(PUBLISH_SCHEDULE) \ and datetime.datetime.fromtimestamp(0).date() == updates.get(PUBLISH_SCHEDULE).date(): updates[PUBLISH_SCHEDULE] = None updates[SCHEDULE_SETTINGS] = {} if updates.get('force_unlock', False): del updates['force_unlock']
def on_create(self, docs): on_create_item(docs) for doc in docs: if doc.get('body_footer') and is_normal_package(doc): raise SuperdeskApiError.badRequestError( "Package doesn't support Public Service Announcements") self._test_readonly_stage(doc) doc['version_creator'] = doc['original_creator'] remove_unwanted(doc) update_word_count(doc) set_item_expiry({}, doc) if doc[ITEM_TYPE] == CONTENT_TYPE.COMPOSITE: self.packageService.on_create([doc]) # Do the validation after Circular Reference check passes in Package Service update_schedule_settings(doc, EMBARGO, doc.get(EMBARGO)) self.validate_embargo(doc) update_associations(doc) if doc.get('media'): self.mediaService.on_create([doc]) # let client create version 0 docs if doc.get('version') == 0: doc[config.VERSION] = doc['version'] self._add_desk_metadata(doc, {}) convert_task_attributes_to_objectId(doc)
def on_update(self, updates, original): update_associations(updates) CropService().validate_multiple_crops(updates, original) super().on_update(updates, original) updates[ITEM_OPERATION] = self.item_operation updates['versioncreated'] = utcnow() updates['correction_sequence'] = original.get('correction_sequence', 1) + 1 set_sign_off(updates, original) update_word_count(updates, original)
def on_update(self, updates, original): CropService().validate_multiple_crops(updates, original) super().on_update(updates, original) updates[ITEM_OPERATION] = self.item_operation updates["versioncreated"] = utcnow() updates["correction_sequence"] = original.get("correction_sequence", 1) + 1 set_sign_off(updates, original) update_word_count(updates, original) flush_renditions(updates, original) self.change_being_corrected_to_published(updates, original) self.send_to_original_desk(updates, original)
def on_create(self, docs): on_create_item(docs) for doc in docs: if doc.get('body_footer') and is_normal_package(doc): raise SuperdeskApiError.badRequestError("Package doesn't support Public Service Announcements") self._test_readonly_stage(doc) doc['version_creator'] = doc['original_creator'] remove_unwanted(doc) update_word_count(doc) set_item_expiry({}, doc) if doc[ITEM_TYPE] == CONTENT_TYPE.COMPOSITE: self.packageService.on_create([doc]) # Do the validation after Circular Reference check passes in Package Service update_schedule_settings(doc, EMBARGO, doc.get(EMBARGO)) self.validate_embargo(doc) update_associations(doc) for assoc in doc.get(ASSOCIATIONS, {}).values(): self._set_association_timestamps(assoc, doc) remove_unwanted(assoc) if doc.get('media'): self.mediaService.on_create([doc]) # let client create version 0 docs if doc.get('version') == 0: doc[config.VERSION] = doc['version'] self._add_desk_metadata(doc, {}) convert_task_attributes_to_objectId(doc)