From e6772fc67cfe9e735448f33c63d2f404831f4353 Mon Sep 17 00:00:00 2001 From: Coleman Watts Date: Thu, 12 Aug 2021 17:17:05 -0400 Subject: [PATCH] Afform - Store submissions in a new database table This adds the `civicrm_afform_submission` table and accompanying api entity, and a new Afform setting "create_submission" which will store a submission record whenever a form is submitted. --- .../ang/afGuiEditor/afGuiEditor.component.js | 1 + .../admin/ang/afGuiEditor/config-form.html | 8 + .../core/CRM/Afform/BAO/AfformSubmission.php | 6 + .../core/CRM/Afform/DAO/AfformSubmission.php | 247 ++++++++++++++++++ ext/afform/core/CRM/Afform/Upgrader.php | 11 + .../core/Civi/Api4/Action/Afform/Submit.php | 10 + ext/afform/core/Civi/Api4/Afform.php | 4 + .../core/Civi/Api4/AfformSubmission.php | 14 + ext/afform/core/afform.civix.php | 8 +- ext/afform/core/sql/auto_install.sql | 45 ++++ ext/afform/core/sql/auto_uninstall.sql | 20 ++ .../Afform/AfformSubmission.entityType.php | 10 + .../schema/CRM/Afform/AfformSubmission.xml | 66 +++++ .../phpunit/api/v4/AfformContactUsageTest.php | 19 +- 14 files changed, 466 insertions(+), 3 deletions(-) create mode 100644 ext/afform/core/CRM/Afform/BAO/AfformSubmission.php create mode 100644 ext/afform/core/CRM/Afform/DAO/AfformSubmission.php create mode 100644 ext/afform/core/Civi/Api4/AfformSubmission.php create mode 100644 ext/afform/core/sql/auto_install.sql create mode 100644 ext/afform/core/sql/auto_uninstall.sql create mode 100644 ext/afform/core/xml/schema/CRM/Afform/AfformSubmission.entityType.php create mode 100644 ext/afform/core/xml/schema/CRM/Afform/AfformSubmission.xml diff --git a/ext/afform/admin/ang/afGuiEditor/afGuiEditor.component.js b/ext/afform/admin/ang/afGuiEditor/afGuiEditor.component.js index a44f6eeb81..6ed1d027bd 100644 --- a/ext/afform/admin/ang/afGuiEditor/afGuiEditor.component.js +++ b/ext/afform/admin/ang/afGuiEditor/afGuiEditor.component.js @@ -69,6 +69,7 @@ if (editor.mode === 'create') { editor.addEntity(editor.entity); + editor.afform.create_submission = true; editor.layout['#children'].push(afGui.meta.elements.submit.element); } } diff --git a/ext/afform/admin/ang/afGuiEditor/config-form.html b/ext/afform/admin/ang/afGuiEditor/config-form.html index 59d04705b9..466f4bc251 100644 --- a/ext/afform/admin/ang/afGuiEditor/config-form.html +++ b/ext/afform/admin/ang/afGuiEditor/config-form.html @@ -88,6 +88,14 @@ {{:: ts('Submit Actions') }} +
+ +

{{:: ts('Keep a log of the date, time, user, and items saved by each form submission.') }}

+
+