feat(campaign): complete durable operator queue

This commit is contained in:
2026-07-22 09:31:33 +02:00
parent f095a3e2c7
commit 99d44eeb8d
5 changed files with 832 additions and 81 deletions
+43 -7
View File
@@ -4,22 +4,40 @@ export const generatedTranslations: PlatformTranslations = {
"en": {
"i18n:govoplan-campaign.1_campaign.ccd70074": "1 campaign",
"i18n:govoplan-campaign.2_campaigns.35b84804": "2 campaigns",
"i18n:govoplan-campaign.appended.979f5a82": "Appended",
"i18n:govoplan-campaign.appending.167de6b2": "Appending",
"i18n:govoplan-campaign.another_queue_action_is_still_running.4985baea": "Another queue action is still running.",
"i18n:govoplan-campaign.cancel_eligible_queued_work.e280192e": "Cancel eligible queued work?",
"i18n:govoplan-campaign.cancel_all_eligible_queued_work_for_this_campaign.1455825b": "Cancel all eligible queued work for this Campaign",
"i18n:govoplan-campaign.cancel_queued_work.a54fb955": "Cancel queued work",
"i18n:govoplan-campaign.claimed.83c87884": "Claimed",
"i18n:govoplan-campaign.current.4fc0e2bc": "Current",
"i18n:govoplan-campaign.delivery_jobs_for_value0.50a94a70": "Delivery jobs for {value0}",
"i18n:govoplan-campaign.eligible_jobs_that_have_not_started_will_be_cancelled_.00096ddb": "Eligible jobs that have not started will be cancelled. Accepted, sending, and outcome-unknown jobs remain protected.",
"i18n:govoplan-campaign.eligible_jobs_in_every_version_of_this_campaign_tha.47b67f34": "Eligible jobs in every version of this Campaign that have not started will be cancelled. Accepted, sending, and outcome-unknown jobs remain protected.",
"i18n:govoplan-campaign.historical.bb2fe205": "Historical",
"i18n:govoplan-campaign.no_cancellable_queued_work_remains.80e31d49": "No cancellable queued work remains.",
"i18n:govoplan-campaign.no_failed_jobs_are_eligible_for_retry.e65a69f9": "No failed jobs are eligible for retry.",
"i18n:govoplan-campaign.no_paused_jobs_can_be_resumed.869b6275": "No paused jobs can be resumed.",
"i18n:govoplan-campaign.no_queued_jobs_can_be_paused.acaa0b4e": "No queued jobs can be paused.",
"i18n:govoplan-campaign.no_uncertain_outcomes_require_reconciliation.933bc53c": "No uncertain outcomes require reconciliation.",
"i18n:govoplan-campaign.no_unsent_jobs_are_available_to_queue.585bfe87": "No unsent jobs are available to queue.",
"i18n:govoplan-campaign.not_requested.a0f3bce4": "Not requested",
"i18n:govoplan-campaign.open_recipient_report.d6892ee4": "Open recipient report",
"i18n:govoplan-campaign.pause_queue.b66e7696": "Pause queue",
"i18n:govoplan-campaign.pause_all_queued_work_for_this_campaign.64ee23cf": "Pause all queued work for this Campaign",
"i18n:govoplan-campaign.paused.c7dfb6f1": "Paused",
"i18n:govoplan-campaign.queue_action_for_value_completed_value_value.d799ce56": "Queue action for {value0} completed: {value1} ({value2}).",
"i18n:govoplan-campaign.queue_refreshes_automatically_while_delivery_is_active.df8dc205": "Queue refreshes automatically while delivery is active.",
"i18n:govoplan-campaign.queued_at.1ac179b3": "Queued at",
"i18n:govoplan-campaign.reconcile_outcomes.bd81d8a7": "Reconcile outcomes",
"i18n:govoplan-campaign.resume_queue.1f22f964": "Resume queue",
"i18n:govoplan-campaign.resume_all_paused_work_for_this_campaign.69b2aa6a": "Resume all paused work for this Campaign",
"i18n:govoplan-campaign.sending.ceafde86": "Sending",
"i18n:govoplan-campaign.sent_at.a6f45556": "Sent at",
"i18n:govoplan-campaign.temporarily_failed.50d9b1a8": "Temporarily failed",
"i18n:govoplan-campaign.permanently_failed.32eda23a": "Permanently failed",
"i18n:govoplan-campaign.this_campaign_queue_is_already_selected_.211ab9d8": "This Campaign queue is already selected.",
"i18n:govoplan-campaign.you_do_not_have_permission_for_this_action.dfcfbad6": "You do not have permission for this action.",
"i18n:govoplan-campaign.campaign_reports_available_to_you.f14fa403": "Campaign reports available to you",
"i18n:govoplan-campaign.cancelled_value0_unsent_message_s_value1_protect.d24c5e24": "Cancelled {value0} unsent message(s); {value1} protected outcome(s) and {value2} excluded/skipped message(s) were retained.",
@@ -1269,22 +1287,40 @@ export const generatedTranslations: PlatformTranslations = {
"de": {
"i18n:govoplan-campaign.1_campaign.ccd70074": "1 campaign",
"i18n:govoplan-campaign.2_campaigns.35b84804": "2 campaigns",
"i18n:govoplan-campaign.appended.979f5a82": "Abgelegt",
"i18n:govoplan-campaign.appending.167de6b2": "Wird abgelegt",
"i18n:govoplan-campaign.another_queue_action_is_still_running.4985baea": "Eine andere Warteschlangenaktion wird noch ausgeführt.",
"i18n:govoplan-campaign.cancel_eligible_queued_work.e280192e": "Geeignete Warteschlangenaufträge abbrechen?",
"i18n:govoplan-campaign.cancel_all_eligible_queued_work_for_this_campaign.1455825b": "Alle geeigneten Warteschlangenaufträge dieser Kampagne abbrechen",
"i18n:govoplan-campaign.cancel_queued_work.a54fb955": "Warteschlangenaufträge abbrechen",
"i18n:govoplan-campaign.claimed.83c87884": "Beansprucht",
"i18n:govoplan-campaign.current.4fc0e2bc": "Aktuell",
"i18n:govoplan-campaign.delivery_jobs_for_value0.50a94a70": "Versandaufträge für {value0}",
"i18n:govoplan-campaign.eligible_jobs_that_have_not_started_will_be_cancelled_.00096ddb": "Geeignete Aufträge, die noch nicht begonnen haben, werden abgebrochen. Angenommene, laufende und ungeklärte Aufträge bleiben geschützt.",
"i18n:govoplan-campaign.eligible_jobs_in_every_version_of_this_campaign_tha.47b67f34": "Geeignete Aufträge in allen Versionen dieser Kampagne, die noch nicht begonnen haben, werden abgebrochen. Angenommene, laufende und ungeklärte Aufträge bleiben geschützt.",
"i18n:govoplan-campaign.historical.bb2fe205": "Historisch",
"i18n:govoplan-campaign.no_cancellable_queued_work_remains.80e31d49": "Es sind keine abbrechbaren Warteschlangenaufträge mehr vorhanden.",
"i18n:govoplan-campaign.no_failed_jobs_are_eligible_for_retry.e65a69f9": "Keine fehlgeschlagenen Aufträge können erneut versucht werden.",
"i18n:govoplan-campaign.no_paused_jobs_can_be_resumed.869b6275": "Es sind keine pausierten Aufträge zum Fortsetzen vorhanden.",
"i18n:govoplan-campaign.no_queued_jobs_can_be_paused.acaa0b4e": "Es sind keine wartenden Aufträge zum Pausieren vorhanden.",
"i18n:govoplan-campaign.no_uncertain_outcomes_require_reconciliation.933bc53c": "Es müssen keine ungeklärten Ergebnisse abgestimmt werden.",
"i18n:govoplan-campaign.no_unsent_jobs_are_available_to_queue.585bfe87": "Es sind keine ungesendeten Aufträge für die Warteschlange verfügbar.",
"i18n:govoplan-campaign.not_requested.a0f3bce4": "Nicht angefordert",
"i18n:govoplan-campaign.open_recipient_report.d6892ee4": "Empfängerbezogenen Bericht öffnen",
"i18n:govoplan-campaign.pause_queue.b66e7696": "Warteschlange pausieren",
"i18n:govoplan-campaign.pause_all_queued_work_for_this_campaign.64ee23cf": "Alle eingereihten Aufträge dieser Kampagne pausieren",
"i18n:govoplan-campaign.paused.c7dfb6f1": "Pausiert",
"i18n:govoplan-campaign.queue_action_for_value_completed_value_value.d799ce56": "Warteschlangenaktion für {value0} abgeschlossen: {value1} ({value2}).",
"i18n:govoplan-campaign.queue_refreshes_automatically_while_delivery_is_active.df8dc205": "Die Warteschlange wird während eines laufenden Versands automatisch aktualisiert.",
"i18n:govoplan-campaign.queued_at.1ac179b3": "Eingereiht am",
"i18n:govoplan-campaign.reconcile_outcomes.bd81d8a7": "Ergebnisse abstimmen",
"i18n:govoplan-campaign.resume_queue.1f22f964": "Warteschlange fortsetzen",
"i18n:govoplan-campaign.resume_all_paused_work_for_this_campaign.69b2aa6a": "Alle pausierten Aufträge dieser Kampagne fortsetzen",
"i18n:govoplan-campaign.sending.ceafde86": "Im Versand",
"i18n:govoplan-campaign.sent_at.a6f45556": "Gesendet am",
"i18n:govoplan-campaign.temporarily_failed.50d9b1a8": "Vorübergehend fehlgeschlagen",
"i18n:govoplan-campaign.permanently_failed.32eda23a": "Endgültig fehlgeschlagen",
"i18n:govoplan-campaign.this_campaign_queue_is_already_selected_.211ab9d8": "Diese Kampagnenwarteschlange ist bereits ausgewählt.",
"i18n:govoplan-campaign.you_do_not_have_permission_for_this_action.dfcfbad6": "Sie haben keine Berechtigung für diese Aktion.",
"i18n:govoplan-campaign.campaign_reports_available_to_you.f14fa403": "Für Sie verfügbare Kampagnenberichte",
"i18n:govoplan-campaign.cancelled_value0_unsent_message_s_value1_protect.d24c5e24": "{value0} ungesendete Nachricht(en) wurden abgebrochen; {value1} geschützte Ergebnisse und {value2} ausgeschlossene/übersprungene Nachricht(en) wurden beibehalten.",
@@ -1583,7 +1619,7 @@ export const generatedTranslations: PlatformTranslations = {
"i18n:govoplan-campaign.can_view.1b3e4006": "Can view",
"i18n:govoplan-campaign.cancel_filename_changes.b558598e": "Cancel filename changes",
"i18n:govoplan-campaign.cancel.77dfd213": "Abbrechen",
"i18n:govoplan-campaign.cancelled.a1bf92ef": "Cancelled",
"i18n:govoplan-campaign.cancelled.a1bf92ef": "Abgebrochen",
"i18n:govoplan-campaign.captured_mailbox_preview_is_disabled_for_this_ru.6559458d": "Captured mailbox preview is disabled for this run. Recipient outcomes remain available.",
"i18n:govoplan-campaign.captured_mailbox_preview_requires_the_mail_devel.9b3d9f0d": "Captured mailbox preview requires the Mail development mailbox API.",
"i18n:govoplan-campaign.captured_messages.a833d293": "Captured messages",
@@ -1615,7 +1651,7 @@ export const generatedTranslations: PlatformTranslations = {
"i18n:govoplan-campaign.compatibility_notes.7d648a6d": "Compatibility notes",
"i18n:govoplan-campaign.complete_a_successful_mock_delivery_first.bc2a587d": "Complete a successful mock delivery first.",
"i18n:govoplan-campaign.complete_review.4c2ed8c8": "Complete review",
"i18n:govoplan-campaign.completed.1798b3ba": "Completed",
"i18n:govoplan-campaign.completed.1798b3ba": "Abgeschlossen",
"i18n:govoplan-campaign.compose_the_subject_and_body_merge_fields_can_la.4fb6e97b": "Compose the subject and body. Merge fields can later be inserted from the field picker.",
"i18n:govoplan-campaign.concurrency.2ec390bf": "Concurrency",
"i18n:govoplan-campaign.configure_campaign_wide_attachment_behavior_and_.441a6cd2": "Configure campaign-wide attachment behavior and global matching rules.",
@@ -2018,7 +2054,7 @@ export const generatedTranslations: PlatformTranslations = {
"i18n:govoplan-campaign.not_claimed.aa712c1b": "Not claimed",
"i18n:govoplan-campaign.not_configured.67f2141f": "not configured",
"i18n:govoplan-campaign.not_loaded_yet.9968c191": "Not loaded yet",
"i18n:govoplan-campaign.not_queued.b7f41e1e": "Not queued",
"i18n:govoplan-campaign.not_queued.b7f41e1e": "Nicht eingereiht",
"i18n:govoplan-campaign.not_reviewed.0a0e3cff": "Not reviewed",
"i18n:govoplan-campaign.not_run.9e019cd5": "Not run",
"i18n:govoplan-campaign.not_sent.587c501e": "Not sent",
@@ -2050,7 +2086,7 @@ export const generatedTranslations: PlatformTranslations = {
"i18n:govoplan-campaign.optional.0c6c4102": "Optional",
"i18n:govoplan-campaign.or_click_to_select_file.0e72f25d": "or click to select file",
"i18n:govoplan-campaign.outcome_unknown.4383023a": ", outcome unknown",
"i18n:govoplan-campaign.outcome_unknown.6e929fca": "Outcome unknown",
"i18n:govoplan-campaign.outcome_unknown.6e929fca": "Ergebnis ungeklärt",
"i18n:govoplan-campaign.overview.0efc2e6b": "Übersicht",
"i18n:govoplan-campaign.owner_type.6b86eacc": "Owner type",
"i18n:govoplan-campaign.owner.719379ae": "Owner:",
@@ -2113,7 +2149,7 @@ export const generatedTranslations: PlatformTranslations = {
"i18n:govoplan-campaign.queued_jobs_are_waiting_for_a_background_deliver.cc703afb": "Queued jobs are waiting for a background delivery worker. If the counts do not change, check the worker process and queue logs.",
"i18n:govoplan-campaign.queued_jobs_are_waiting_if_the_counts_do_not_cha.7d2164d6": "Queued jobs are waiting. If the counts do not change, check whether background delivery workers are enabled and running.",
"i18n:govoplan-campaign.queued_jobs_are_waiting_in_the_database_but_back.5b1fadfd": "Queued jobs are waiting in the database, but background delivery workers are disabled on this server. Use Send queued now for a small dev run, or start Redis/Celery with CELERY_ENABLED=true.",
"i18n:govoplan-campaign.queued.6a599877": "Queued",
"i18n:govoplan-campaign.queued.6a599877": "Eingereiht",
"i18n:govoplan-campaign.queueing_pending_imap_append_jobs.31dd388e": "Queueing pending IMAP append jobs...",
"i18n:govoplan-campaign.quoted_contents.f7fd335a": "Quoted contents",
"i18n:govoplan-campaign.rate_limit.d08e55f5": "Rate limit",
@@ -2295,10 +2331,10 @@ export const generatedTranslations: PlatformTranslations = {
"i18n:govoplan-campaign.show_review_candidates_only.f49df60b": "Show review candidates only",
"i18n:govoplan-campaign.showing.163d8174": "Showing",
"i18n:govoplan-campaign.size.b7152342": "Größe",
"i18n:govoplan-campaign.skipped.5a000ad7": "Skipped",
"i18n:govoplan-campaign.skipped.5a000ad7": "Übersprungen",
"i18n:govoplan-campaign.skipped.6b98496c": ", skipped",
"i18n:govoplan-campaign.smtp_accepted.a5d0dccc": ", SMTP accepted",
"i18n:govoplan-campaign.smtp_accepted.e3aa7603": "SMTP accepted",
"i18n:govoplan-campaign.smtp_accepted.e3aa7603": "Von SMTP angenommen",
"i18n:govoplan-campaign.smtp_attempts.eb0a9ca6": "SMTP attempts",
"i18n:govoplan-campaign.smtp_credentials.10f75c8a": "). SMTP credentials:",
"i18n:govoplan-campaign.smtp_failed.0ce5516d": "SMTP failed",