def link_to_revisions(self, revisions): """Set the given revisions as related documents. The revisions MUST be valid: - belong to the same category - be transmittable objects """ trs_revisions = [] ids = [] index_data = [] for revision in revisions: trs_revisions.append( ExportedRevision( document=revision.document, transmittal=self, revision=revision.revision, title=revision.document.title, status=revision.status, return_code=revision.get_final_return_code(), comments=revision.trs_comments)) ids.append(revision.id) # Update ES index to make sure the "can_be_transmitted" # filter is up to date index_datum = build_index_data(revision) index_datum['_source']['can_be_transmitted'] = False index_data.append(index_datum) with transaction.atomic(): ExportedRevision.objects.bulk_create(trs_revisions) # Mark revisions as transmitted Revision = type(revisions[0]) Revision.objects \ .filter(id__in=ids) \ .update(already_transmitted=True) bulk_actions(index_data)
def link_to_revisions(self, revisions): """Set the given revisions as related documents. The revisions MUST be valid: - belong to the same category - be transmittable objects """ ids = [] index_data = [] for revision in revisions: ids.append(revision.id) # Update ES index to make sure the "can_be_transmitted" # filter is up to date index_datum = build_index_data(revision) index_datum['_source']['can_be_transmitted'] = False index_datum['_source']['last_review_closed'] = False index_data.append(index_datum) with transaction.atomic(): today = timezone.now() later = today + datetime.timedelta(days=self.EXTERNAL_REVIEW_DURATION) # Mark revisions as transmitted Revision = type(revisions[0]) Revision.objects \ .filter(id__in=ids) \ .update( transmittal=self, transmittal_sent_date=timezone.now(), external_review_due_date=Case( When(purpose_of_issue='FR', then=Value(later)), When(purpose_of_issue='FI', then=Value(None)), )) for rev in Revision.objects.filter(id__in=ids): rev.transmittals.add(self) bulk_actions(index_data)
def link_to_revisions(self, revisions): """Set the given revisions as related documents. The revisions MUST be valid: - belong to the same category - be transmittable objects """ ids = [] index_data = [] for revision in revisions: ids.append(revision.id) # Update ES index to make sure the "can_be_transmitted" # filter is up to date index_datum = build_index_data(revision) index_datum['_source']['can_be_transmitted'] = False index_datum['_source']['last_review_closed'] = False index_data.append(index_datum) with transaction.atomic(): Revision = type(revisions[0]) for rev in Revision.objects.filter(id__in=ids): rev.transmittals.add(self) bulk_actions(index_data)