def cache_generic_values(doc: Document, save: bool = True, log: ProcessLogger = None): doc.generic_data = get_generic_values(doc) if save: doc.save(update_fields=['generic_data']) events.on_document_change(events.DocumentChangedEvent(log=log, document=doc, system_fields_changed=False, generic_fields_changed=True, user_fields_changed=False, pre_detected_field_values=None))
def cache_generic_values(doc: Document, save: bool = True, log: ProcessLogger = None, fire_doc_changed_event: bool = True): doc.generic_data = get_generic_values(doc) if save: doc.save(update_fields=['generic_data']) if fire_doc_changed_event: signals.fire_document_changed(sender=cache_generic_values, log=log, document=doc, system_fields_changed=False, generic_fields_changed=True, user_fields_changed=False, pre_detected_field_values=None)
def cache_generic_values(doc: Document, save: bool = True): document_qs = Document.objects.filter(pk=doc.pk) \ .annotate(cluster_id=Max('documentcluster'), parties=StringAgg('textunit__partyusage__party__name', delimiter=', ', distinct=True), max_currency_amount=Max('textunit__currencyusage__amount'), max_currency_name=Max('textunit__currencyusage__currency'), min_date=Min('textunit__dateusage__date'), max_date=Max('textunit__dateusage__date')) values = document_qs.values('cluster_id', 'parties', 'max_currency_amount', 'max_currency_name', 'min_date', 'max_date').first() doc.generic_data = values if save: doc.save(update_fields=['generic_data'])