? decisions-HEAD-400172-1.patch
? decisions-HEAD-92138-4.patch
? decisions_electoral_list.inc
Index: decisions.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/decisions/decisions.module,v
retrieving revision 1.206
diff -u -p -r1.206 decisions.module
--- decisions.module	5 Dec 2008 05:02:41 -0000	1.206
+++ decisions.module	12 Mar 2009 23:26:44 -0000
@@ -33,6 +33,7 @@ function decisions_init() {
   module_load_include('inc', 'decisions', 'decisions');
   module_load_include('inc', 'decisions', 'decisions_node');
   module_load_include('inc', 'decisions', 'decisions_datetime');
+  module_load_include('inc', 'decisions', 'decisions_electoral_list');
   drupal_add_css(drupal_get_path('module', 'poll') .'/poll.css');
 }
 
@@ -322,47 +323,27 @@ function theme_decisions_status($message
 }
 
 
-/****************************/
-/* Electoral list functions */
-/****************************/
-
-/**
- * Creates the form for the electoral list.
- */
-function decisions_electoral_list_form($form_state, $nid) {
-  $form = array();
-  $form['electoral_list'] = array(
-                                  '#type' => 'fieldset',
-                                  '#tree' => TRUE,
-                                  '#title' => t('Administer electoral list'),
-                                  '#collapsible' => TRUE,
-                                  '#weight' => 2,
-                                  '#collapsed' => TRUE,
-                                  );
-
-  $form['electoral_list']['add_user'] = array(
-                                              '#type' => 'textfield',
-                                              '#title' => t('Add user'),
-                                              '#size' => 40,
-                                              '#autocomplete_path' => 'user/autocomplete',
-                                              '#description' => t('Add an individual user to the electoral list'),
-                                              );
-
-  $form['electoral_list']['submit'] = array(
-                                            '#type' => 'submit',
-                                            '#value' => t('Modify electoral list'),
-                                            );
-
-  $form['electoral_list']['reset'] = array(
-                                           '#type' => 'button',
-                                           '#value' => t('Reset electoral list'),
-                                           );
-
-  $form['nid'] = array('#type' => 'hidden', '#value' => $nid);
-  return $form;        
-
+/**
+ * Invoke a hook_electoral_list() operation in all modules.
+ *
+ * @param $form
+ *   The form to be modified.
+ * @param $node
+ *   A node object.
+ * @return
+ *   The returned value of the invoked hooks.
+ */
+function decisions_invoke_electoral_list(&$form, $node) {
+  $return = '';
+  foreach (module_implements('electoral_list') as $name) {
+    $function = $name .'_electoral_list';
+    $result = $function($form, $node);
+    $return .= $result;
+  }
+  return $return;
 }
 
+
 /**
  * Outputs the electoral list tab.
  */
@@ -382,29 +363,13 @@ function decisions_electoral_list_tab() 
                                       '#collapsible' => TRUE,
                                       '#weight' => 2,
                                       '#collapsed' => TRUE,
-                                      );
-  	 
-      $form['electoral_list']['add_user'] = array(
-                                                  '#type' => 'textfield',
-                                                  '#title' => t('Add user'),
-                                                  '#size' => 40,
-                                                  '#autocomplete_path' => 'user/autocomplete',
-                                                  '#description' => t('Add an individual user to the electoral list'),
-                                                  );
-  	 
-      $form['electoral_list']['submit'] = array(
-                                                '#type' => 'submit',
-                                                '#value' => t('Modify electoral list'),
-                                                );
-  	 
-      $form['electoral_list']['reset'] = array(
-                                               '#type' => 'button',
-                                               '#value' => t('Reset electoral list'),
-                                               );
-  	 
-      $form['nid'] = array('#type' => 'hidden', '#value' => $node->nid);
-      $output .= drupal_get_form('decisions_electoral_list_form', $node->nid);
+                                      );      
+
+      //print_r(decisions_invoke_electoral_list($form, $node));
+      $output .= decisions_invoke_electoral_list($form, $node);
+
     }
+
     $output .= t('This table lists all the eligible voters for this Decision.');
 
     $header[] = array('data' => t('Voter'), 'field' => 'u.name');
@@ -445,47 +410,7 @@ function decisions_electoral_list_remove
   
   drupal_goto('node/'. $node->nid .'/electoral_list');
 }
-  	 
-/**
- * Validate changes to the electoral list
- */
-function decisions_electoral_list_form_validate($form, &$form_state) {
-  if ($form_state['values']['op'] == t('Reset electoral list')) {
-    if (user_access('administer decisions')) {
-      db_query('DELETE FROM {decisions_electoral_list} WHERE nid=%d', $form_state['values']['nid']);
-      drupal_set_message(t('Electoral list cleared.'));
-      $node = menu_get_object();
-      if (_decisions_electoral_list_reset($node)) {
-        drupal_set_message(t('Electoral list reset.'));
-      }
-      return;
-    }
-  }
-  $add_user = $form_state['values']['electoral_list']['add_user'];
-  if ($add_user) {
-    // Check that the user exists
-    if (db_fetch_object(db_query('SELECT uid FROM {users} WHERE name="%s"', $add_user))) {
-      form_set_error('electoral_list][add_user', t('User %user does not exist.', array('%user' => $add_user)));
-      return FALSE;
-    }
-  }
-}
-  	 
-/**
- * Submit changes to the electoral list
- */
-function decisions_electoral_list_form_submit($form, &$form_state) {
-  $add_user = $form_state['values']['electoral_list']['add_user'];
-  $nid = $form_state['values']['nid'];
-  if ($add_user) {
-    db_query('REPLACE INTO {decisions_electoral_list} (nid, uid) SELECT "%d", u.uid FROM users u WHERE u.name = "%s"', $nid, $add_user);
-    drupal_set_message(t('%user added to electoral list.', array('%user' => $add_user)));
-    drupal_goto('node/'. $nid .'/electoral_list');
-  }
-  else {
-    drupal_not_found();
-  }
-}
+	 
 
 
 /***********************************/

