From ea6fbf75be76c010291adb8c9c23ed74e6a50783 Mon Sep 17 00:00:00 2001 From: Coleman Watts Date: Tue, 28 Dec 2021 10:40:58 -0500 Subject: [PATCH] APIv4 - Set 'activity_type_id' to required In APIv4 GetFields, sets activity field to required because the database default is problematic. --- Civi/Api4/Service/Spec/Provider/ActivitySpecProvider.php | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Civi/Api4/Service/Spec/Provider/ActivitySpecProvider.php b/Civi/Api4/Service/Spec/Provider/ActivitySpecProvider.php index 7188735293..5399893798 100644 --- a/Civi/Api4/Service/Spec/Provider/ActivitySpecProvider.php +++ b/Civi/Api4/Service/Spec/Provider/ActivitySpecProvider.php @@ -23,6 +23,12 @@ class ActivitySpecProvider implements Generic\SpecProviderInterface { public function modifySpec(RequestSpec $spec) { $action = $spec->getAction(); + // The database default '1' is problematic as the option list is user-configurable, + // so activity type '1' doesn't necessarily exist. Best make the field required. + $spec->getFieldByName('activity_type_id') + ->setDefaultValue(NULL) + ->setRequired($action === 'create'); + $field = new FieldSpec('source_contact_id', 'Activity', 'Integer'); $field->setTitle(ts('Source Contact')); $field->setLabel(ts('Added by')); -- 2.25.1