Skip to content
Snippets Groups Projects
Commit 99117721 authored by ErikHommel's avatar ErikHommel
Browse files

fix issue 7337 - temp group id

parent 51495dd5
No related branches found
No related tags found
No related merge requests found
......@@ -31,6 +31,7 @@ class PetitionActivity extends AbstractAction {
$specs->addSpecification(new Specification('campaign_id', 'Integer', E::ts('Campaign ID'), FALSE, NULL));
$specs->addSpecification(new Specification('contact_id', 'Integer', E::ts('Contact ID'), TRUE, NULL));
$specs->addSpecification(new Specification('petition_flag', 'Integer', E::ts('Petition Flag'), FALSE, 0));
$specs->addSpecification(new Specification('more_information', 'Integer', E::ts('More Information'), FALSE, 0));
return $specs;
}
......@@ -38,9 +39,24 @@ class PetitionActivity extends AbstractAction {
* @return SpecificationBag
*/
public function getConfigurationSpecification() {
// get all active groups to add to the options of each specification
$activeGroups = [];
try {
$apiGroups = civicrm_api3('Group', 'get', [
'is_active' => 1,
'options' => ['limit' => 0],
'return' => ['title'],
]);
foreach ($apiGroups['values'] as $groupId => $group) {
$activeGroups[$groupId] = $group['title'];
}
}
catch (\CiviCRM_API3_Exception $ex) {
}
$specs = new SpecificationBag();
$specs->addSpecification(new OptionGroupByNameSpecification('activity_type_id', 'activity_type', E::ts('Activity Type'), TRUE));
$specs->addSpecification(new OptionGroupByNameSpecification('status_id', 'activity_status', E::ts('Activity Status'), TRUE));
$specs->addSpecification(new Specification("news_group_id", "Integer", E::ts("Nieuwsbrief Groep"), TRUE, NULL, NULL, $activeGroups));
return $specs;
}
......@@ -52,9 +68,39 @@ class PetitionActivity extends AbstractAction {
* @throws ExecutionException
*/
public function doAction(ParameterBagInterface $parameters, ParameterBagInterface $output) {
$activityId = $this->addPetitionActivity($parameters, $output);
if ($activityId) {
$output->setParameter('activity_id', (int) $activityId);
$this->addPetitionActivity($parameters, $output);
// temporarily: add to Nieuwsbrief group if more information ticked
$this->addNieuwsbrief($parameters);
}
/**
* Method to add contact to newsletter group (temp until we fixed email preferences
*
* @link https://issues.civicoop.org/issues/7337)
* @param ParameterBagInterface $parameters
* @throws \CiviCRM_API3_Exception
*/
private function addNieuwsbrief(ParameterBagInterface $parameters) {
$groupId = $this->configuration->getParameter('news_group_id');
$moreInfo = $parameters->getParameter('more_information');
$contactId = $parameters->getParameter('contact_id');
if ($moreInfo && $groupId && $contactId) {
// first check if contact is already in group, if not add
$count = civicrm_api3('GroupContact', 'getcount', [
'group_id' => $groupId,
'status' => "Added",
'contact_id' => $contactId,
]);
if ($count == 0) {
try {
civicrm_api3('GroupContact', 'create' , [
'group_id' => $groupId,
'contact_id' => $contactId,
]);
}
catch (\CiviCRM_API3_Exception $ex) {
}
}
}
}
......
......@@ -14,8 +14,8 @@
<url desc="Support">https://civicoop.org</url>
<url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url>
</urls>
<releaseDate>2020-11-18</releaseDate>
<version>1.8</version>
<releaseDate>2020-12-16</releaseDate>
<version>1.9</version>
<develStage>beta</develStage>
<compatibility>
<ver>4.7</ver>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment