Skip to content

Commit

Permalink
initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
Rich Lott / Artful Robot committed Nov 10, 2020
0 parents commit abd74fc
Show file tree
Hide file tree
Showing 31 changed files with 29,776 additions and 0 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
node_modules
153 changes: 153 additions & 0 deletions CRM/Inlaypetition/Upgrader.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,153 @@
<?php
use CRM_Inlaypetition_ExtensionUtil as E;

/**
* Collection of upgrade steps.
*/
class CRM_Inlaypetition_Upgrader extends CRM_Inlaypetition_Upgrader_Base {

// By convention, functions that look like "function upgrade_NNNN()" are
// upgrade tasks. They are executed in order (like Drupal's hook_update_N).

/**
* Ensure we have our activity type ready.
*
*/
public function install() {

$petitionActivityType = \Civi\Api4\OptionValue::get(FALSE)
->addSelect('id')
->addWhere('option_group_id:name', '=', 'activity_type')
->addWhere('name', '=', 'inlay_petition')
->execute()->first()['id'] ?? 0;

if (!$petitionActivityType) {
// Petition activity type did not exist, create it now.
\Civi\Api4\OptionValue::create(FALSE)
->addValue('option_group_id:name', 'activity_type')
->addValue('name', 'inlay_petition')
->addValue('label', 'Signed Petiton (Inlay)')
->addValue('is_active', TRUE)
->addValue('description', 'Signed a petition provided using the Inlay framework. The subject will be the name of the petition signed.')
->addValue('icon', 'fa-hand-rock-o')
->execute();
}
}

/**
* Example: Work with entities usually not available during the install step.
*
* This method can be used for any post-install tasks. For example, if a step
* of your installation depends on accessing an entity that is itself
* created during the installation (e.g., a setting or a managed entity), do
* so here to avoid order of operation problems.
*/
// public function postInstall() {
// $customFieldId = civicrm_api3('CustomField', 'getvalue', array(
// 'return' => array("id"),
// 'name' => "customFieldCreatedViaManagedHook",
// ));
// civicrm_api3('Setting', 'create', array(
// 'myWeirdFieldSetting' => array('id' => $customFieldId, 'weirdness' => 1),
// ));
// }

/**
* Example: Run an external SQL script when the module is uninstalled.
*/
// public function uninstall() {
// $this->executeSqlFile('sql/myuninstall.sql');
// }

/**
* Example: Run a simple query when a module is enabled.
*/
// public function enable() {
// CRM_Core_DAO::executeQuery('UPDATE foo SET is_active = 1 WHERE bar = "whiz"');
// }

/**
* Example: Run a simple query when a module is disabled.
*/
// public function disable() {
// CRM_Core_DAO::executeQuery('UPDATE foo SET is_active = 0 WHERE bar = "whiz"');
// }

/**
* Example: Run a couple simple queries.
*
* @return TRUE on success
* @throws Exception
*/
// public function upgrade_4200() {
// $this->ctx->log->info('Applying update 4200');
// CRM_Core_DAO::executeQuery('UPDATE foo SET bar = "whiz"');
// CRM_Core_DAO::executeQuery('DELETE FROM bang WHERE willy = wonka(2)');
// return TRUE;
// }


/**
* Example: Run an external SQL script.
*
* @return TRUE on success
* @throws Exception
*/
// public function upgrade_4201() {
// $this->ctx->log->info('Applying update 4201');
// // this path is relative to the extension base dir
// $this->executeSqlFile('sql/upgrade_4201.sql');
// return TRUE;
// }


/**
* Example: Run a slow upgrade process by breaking it up into smaller chunk.
*
* @return TRUE on success
* @throws Exception
*/
// public function upgrade_4202() {
// $this->ctx->log->info('Planning update 4202'); // PEAR Log interface

// $this->addTask(E::ts('Process first step'), 'processPart1', $arg1, $arg2);
// $this->addTask(E::ts('Process second step'), 'processPart2', $arg3, $arg4);
// $this->addTask(E::ts('Process second step'), 'processPart3', $arg5);
// return TRUE;
// }
// public function processPart1($arg1, $arg2) { sleep(10); return TRUE; }
// public function processPart2($arg3, $arg4) { sleep(10); return TRUE; }
// public function processPart3($arg5) { sleep(10); return TRUE; }

/**
* Example: Run an upgrade with a query that touches many (potentially
* millions) of records by breaking it up into smaller chunks.
*
* @return TRUE on success
* @throws Exception
*/
// public function upgrade_4203() {
// $this->ctx->log->info('Planning update 4203'); // PEAR Log interface

// $minId = CRM_Core_DAO::singleValueQuery('SELECT coalesce(min(id),0) FROM civicrm_contribution');
// $maxId = CRM_Core_DAO::singleValueQuery('SELECT coalesce(max(id),0) FROM civicrm_contribution');
// for ($startId = $minId; $startId <= $maxId; $startId += self::BATCH_SIZE) {
// $endId = $startId + self::BATCH_SIZE - 1;
// $title = E::ts('Upgrade Batch (%1 => %2)', array(
// 1 => $startId,
// 2 => $endId,
// ));
// $sql = '
// UPDATE civicrm_contribution SET foobar = whiz(wonky()+wanker)
// WHERE id BETWEEN %1 and %2
// ';
// $params = array(
// 1 => array($startId, 'Integer'),
// 2 => array($endId, 'Integer'),
// );
// $this->addTask($title, 'executeSql', $sql, $params);
// }
// return TRUE;
// }

}
Loading

0 comments on commit abd74fc

Please sign in to comment.