? .DS_Store
? signup-adminlink-handler.patch
? signup-seats.patch
Index: signup.install
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/signup/signup.install,v
retrieving revision 1.26
diff -u -p -r1.26 signup.install
--- signup.install	15 Dec 2008 22:26:06 -0000	1.26
+++ signup.install	17 Dec 2008 21:15:07 -0000
@@ -109,6 +109,13 @@ function signup_schema() {
         'not null' => TRUE,
         'default' => '',
       ),
+      'seats' => array(
+        'description' => t('Total number of seats to reserve.'),
+        'type' => 'int',
+        'unsigned' => TRUE,
+        'not null' => TRUE,
+        'default' => 1,
+      ),
       'signup_time' => array(
         'description' => t('Integer timestamp of when the user signed up for the node.'),
         'type' => 'int',
Index: signup.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/signup/signup.module,v
retrieving revision 1.206
diff -u -p -r1.206 signup.module
--- signup.module	16 Dec 2008 18:48:07 -0000	1.206
+++ signup.module	17 Dec 2008 21:15:46 -0000
@@ -584,7 +584,7 @@ function signup_nodeapi(&$node, $op, $te
         $node->signup_close_signup_limit = $signup->close_signup_limit;
         $node->signup_status = $signup->status;
         if ($node->nid) {
-          $node->signup_total = db_result(db_query("SELECT COUNT(*) FROM {signup_log} WHERE nid = %d", $node->nid));
+          $node->signup_total = db_result(db_query("SELECT SUM(seats) FROM {signup_log} WHERE nid = %d", $node->nid));
         }
       }
       else {
@@ -671,10 +671,12 @@ function signup_cancel_signup($signup) {
     $query = db_query('SELECT * FROM {signup_log} WHERE sid = %d', $signup);
     $signup = db_fetch_object($query);
   }
+  // Before deleting user, find out number of seats.
+  $signup_seats = $signup->seats;
   db_query('DELETE FROM {signup_log} WHERE sid = %d', $signup->sid);
 
   $node = node_load($signup->nid);
-  $node->signup_total--;
+  $node->signup_total-= $signup_seats;
   module_invoke_all('signup_cancel', $node, $signup->sid, $signup->uid);
   drupal_set_message(t('Signup to !title cancelled.', array('!title' => l($node->title, "node/$node->nid"))));
   _signup_check_limit($node, 'total');
@@ -791,6 +793,10 @@ function signup_sign_up_user($signup_for
       $signup_info = array_merge($signup_info, $extra);
     }
     $signup_form_data = serialize($signup_info);
+    $signup_seats = '1';
+    if (!empty($signup_form['signup_seats'])) {
+      $signup_seats = $signup_form['signup_seats'];
+    }
 
     // Figure out if confirmation or reminder emails will be sent and
     // inform the user.
@@ -798,7 +804,7 @@ function signup_sign_up_user($signup_for
     $reminder_email = $node->signup_send_reminder ? '  '. t('You will receive a reminder email !number !days before the %node_type.', array('!number' => $node->signup_reminder_days_before, '!days' => format_plural($node->signup_reminder_days_before, 'day', 'days'), '%node_type' => node_get_types('name', $node->type))) : '';
 
     // Insert the user into the signup_log.
-    db_query("INSERT INTO {signup_log} (uid, nid, anon_mail, signup_time, form_data) VALUES (%d, %d, '%s', %d, '%s')", $signup_form['uid'], $signup_form['nid'], $signup_anon_mail, $curtime, $signup_form_data);
+    db_query("INSERT INTO {signup_log} (uid, nid, anon_mail, seats, signup_time, form_data) VALUES (%d, %d, '%s', %d, %d, '%s')", $signup_form['uid'], $signup_form['nid'], $signup_anon_mail, $signup_seats, $curtime, $signup_form_data);
 
     $from = variable_get('site_mail', ini_get('sendmail_from'));
 
@@ -864,7 +870,7 @@ function signup_sign_up_user($signup_for
 
     drupal_set_message(t('Signup to !title confirmed.', array('!title' => l($node->title, "node/$node->nid"))) . $confirmation_email . $reminder_email);
 
-    $node->signup_total++;
+    $node->signup_total += $signup_seats;
     if ($node->signup_close_signup_limit) {
       _signup_check_limit($node, 'total');
     }
Index: includes/node_admin.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/signup/includes/node_admin.inc,v
retrieving revision 1.2
diff -u -p -r1.2 node_admin.inc
--- includes/node_admin.inc	16 Dec 2008 18:48:08 -0000	1.2
+++ includes/node_admin.inc	17 Dec 2008 21:15:46 -0000
@@ -40,6 +40,7 @@ function signup_node_admin_details_form(
   $header = array(
     theme('table_select_header_cell'),
     array('data' => t('Name'), 'field' => 'u.name', 'sort' => 'asc'),
+    array('data' => t('Seats'), 'field' => 's.seats'),
     array('data' => t('Signup time'), 'field' => 's.signup_time'),
     array('data' => t('Extra information')),
   );
@@ -62,6 +63,7 @@ function signup_node_admin_details_form(
     $key = $signed_up_user->sid;
     $users[$key] = '';
     $form['username'][$key] = array('#value' => $username);
+    $form['signup_seats'][$key] = array('#value' => $signed_up_user->seats),
     $form['signup_date'][$key] = array('#value' => format_date($signed_up_user->signup_time, variable_get('signup_date_format', 'small')));
     $form['signup_form_data'][$key] = array('#value' => theme('signup_custom_data', unserialize($signed_up_user->form_data)));
   }
Index: includes/signup_form.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/signup/includes/signup_form.inc,v
retrieving revision 1.1
diff -u -p -r1.1 signup_form.inc
--- includes/signup_form.inc	15 Nov 2008 02:03:50 -0000	1.1
+++ includes/signup_form.inc	17 Dec 2008 21:15:46 -0000
@@ -85,6 +85,14 @@ function signup_form(&$form_state, $node
       unset($signup_themed_form['signup_form_data']['Name']['#default_value']);
     }
   }
+  // Add to to signup_form_data
+  $guestrange = array('1' => '1', '2' => '2', '3' => '3', '4' => '4', '5' => '5', '6' => '6', '7' => '7', '8' => '8', '9' => '9', '10' => '10');
+  $form['signup_seats'] = array(
+    '#type' => 'select',
+    '#title' => t('Number of Anonymous users being signed up'),
+    '#default_value' => '1',
+    '#options' => $guestrange,
+  );
   $signup_form += $signup_themed_form;
 
   $form['collapse']['signup_user_form'] = $signup_form;
Index: theme/node.admin.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/signup/theme/node.admin.inc,v
retrieving revision 1.4
diff -u -p -r1.4 node.admin.inc
--- theme/node.admin.inc	19 Nov 2008 18:35:11 -0000	1.4
+++ theme/node.admin.inc	17 Dec 2008 21:15:46 -0000
@@ -82,6 +82,7 @@ function theme_signup_node_admin_details
       $rows[] = array(
         'cancel_checkbox' => drupal_render($form['users'][$key]),
         'username' => drupal_render($form['username'][$key]),
+        'signup_seats' => drupal_render($form['signup_seats'][$key]),
         'signup_date' => drupal_render($form['signup_date'][$key]),
         'signup_form_data' => drupal_render($form['signup_form_data'][$key]),
       );
