Use match for date field conditionals

This commit is contained in:
shamoon 2024-11-22 13:30:02 -08:00
parent 3a3dd3608e
commit 8ba5b535c3

View File

@ -345,38 +345,27 @@ def check_scheduled_workflows():
logger.debug( logger.debug(
f"Checking trigger {trigger} with offset {offset_td} against field: {trigger.schedule_date_field}", f"Checking trigger {trigger} with offset {offset_td} against field: {trigger.schedule_date_field}",
) )
if ( match trigger.schedule_date_field:
trigger.schedule_date_field case WorkflowTrigger.ScheduleDateField.ADDED:
== WorkflowTrigger.ScheduleDateField.ADDED documents = Document.objects.filter(
): added__lt=timezone.now() - offset_td,
documents = Document.objects.filter( )
added__lt=timezone.now() - offset_td, case WorkflowTrigger.ScheduleDateField.CREATED:
) documents = Document.objects.filter(
elif ( created__lt=timezone.now() - offset_td,
trigger.schedule_date_field )
== WorkflowTrigger.ScheduleDateField.CREATED case WorkflowTrigger.ScheduleDateField.MODIFIED:
): documents = Document.objects.filter(
documents = Document.objects.filter( modified__lt=timezone.now() - offset_td,
created__lt=timezone.now() - offset_td, )
) case WorkflowTrigger.ScheduleDateField.CUSTOM_FIELD:
elif ( cf_instances = CustomFieldInstance.objects.filter(
trigger.schedule_date_field field=trigger.schedule_date_custom_field,
== WorkflowTrigger.ScheduleDateField.MODIFIED value_date__lt=timezone.now() - offset_td,
): )
documents = Document.objects.filter( documents = Document.objects.filter(
modified__lt=timezone.now() - offset_td, id__in=cf_instances.values_list("document", flat=True),
) )
elif (
trigger.schedule_date_field
== WorkflowTrigger.ScheduleDateField.CUSTOM_FIELD
):
cf_instances = CustomFieldInstance.objects.filter(
field=trigger.schedule_date_custom_field,
value_date__lt=timezone.now() - offset_td,
)
documents = Document.objects.filter(
id__in=cf_instances.values_list("document", flat=True),
)
if documents.count() > 0: if documents.count() > 0:
logger.debug( logger.debug(
f"Found {documents.count()} documents for trigger {trigger}", f"Found {documents.count()} documents for trigger {trigger}",