? storm--918760-1.patch
? storm--918760-3.patch
? storm--918760-5.patch
? storm.get_assignment_options_sort_1.patch
Index: stormnote/stormnote.install
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/storm/stormnote/stormnote.install,v
retrieving revision 1.1.4.3
diff -u -p -r1.1.4.3 stormnote.install
--- stormnote/stormnote.install	23 Nov 2009 20:35:46 -0000	1.1.4.3
+++ stormnote/stormnote.install	21 Sep 2010 23:26:33 -0000
@@ -29,7 +29,6 @@ function stormnote_schema() {
       'project_title'       => array('type' => 'varchar', 'length' => 128),
       'task_nid'            => array('type' => 'int'),
       'task_title'          => array('type' => 'varchar', 'length' => 128),
-      'task_stepno'         => array('type' => 'varchar', 'length' => 50),
     ),
     'primary key' => array('vid', 'nid'),
   );
@@ -37,3 +36,15 @@ function stormnote_schema() {
   return $schema;
 }
 
+/**
+ * @function
+ * Update function to remove task_stepno field from stormnote table
+ */
+function stormnote_update_6101() {
+  $ret = array();
+  
+  db_drop_field($ret, 'stormnote', 'task_stepno');
+  
+  return $ret;
+}
+
Index: stormnote/stormnote.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/storm/stormnote/stormnote.module,v
retrieving revision 1.6.4.29
diff -u -p -r1.6.4.29 stormnote.module
--- stormnote/stormnote.module	9 Sep 2010 22:16:37 -0000	1.6.4.29
+++ stormnote/stormnote.module	21 Sep 2010 23:26:34 -0000
@@ -254,13 +254,13 @@ function stormnote_form(&$node) {
       }
     }
 
-    if ($_SESSION['stormnote_list_filter']['organization_nid'] && !$node->organization_nid) {
+    if (isset($_SESSION['stormnote_list_filter']['organization_nid']) && !$node->organization_nid) {
       $node->organization_nid = $_SESSION['stormnote_list_filter']['organization_nid'];
     }
-    if ($_SESSION['stormnote_list_filter']['project_nid'] && !$node->project_nid) {
+    if (isset($_SESSION['stormnote_list_filter']['project_nid']) && !$node->project_nid) {
       $node->project_nid = $_SESSION['stormnote_list_filter']['project_nid'];
     }
-    if ($_SESSION['stormnote_list_filter']['task_nid'] && !$node->task_nid) {
+    if (isset($_SESSION['stormnote_list_filter']['task_nid']) && !$node->task_nid) {
       $node->task_nid = $_SESSION['stormnote_list_filter']['task_nid'];
     }
     $s_org = "SELECT n.nid, n.title FROM {stormorganization} so INNER JOIN {node} n 
@@ -285,7 +285,9 @@ function stormnote_form(&$node) {
   $organizations = array();
   while ($organization = db_fetch_object($r)) {
     $organizations[$organization->nid] = $organization->title;
-    if (!$node->organization_nid) $node->organization_nid = $organization->nid;
+    if (!isset($node->organization_nid)) {
+      $node->organization_nid = $organization->nid;
+    }
   }
   $form['group1']['organization_nid'] = array(
     '#type' => 'select',
@@ -307,18 +309,18 @@ function stormnote_form(&$node) {
   $form['group1']['project_nid'] = array(
     '#type' => 'select',
     '#title' => t('Project'),
-    '#default_value' => $node->project_nid,
+    '#default_value' => isset($node->project_nid) ? $node->project_nid : NULL,
     '#options' => array(0 => '-') + $projects,
     '#process' => array('storm_dependent_select_process'),
     '#attributes' => array('onchange' => "stormtask_project_tasks('edit-organization-nid', this, 'edit-task-nid', '', true, '-')"),
   );
 
-  $tree = _stormtask_get_tree($node->project_nid);
+  $tree = isset($node->project_nid) ? _stormtask_get_tree($node->project_nid) : array();
   $tasks = _stormtask_plain_tree($tree);
   $form['group1']['task_nid'] = array(
     '#type' => 'select',
     '#title' => t('Task'),
-    '#default_value' => $node->task_nid,
+    '#default_value' => isset($node->task_nid) ? $node->task_nid : NULL,
     '#options' => array(0 => '-') + $tasks,
     '#process' => array('storm_dependent_select_process'),
   );
@@ -345,17 +347,17 @@ function stormnote_insert($node) {
            (vid, nid,
            organization_nid, organization_title,
            project_nid, project_title,
-           task_nid, task_title, task_stepno
+           task_nid, task_title
            ) VALUES
            (%d, %d,
            %d, '%s',
            %d, '%s',
-           %d, '%s', '%s'
+           %d, '%s'
            )",
             $node->vid, $node->nid,
             $node->organization_nid, $node->organization_title,
             $node->project_nid, $node->project_title,
-            $node->task_nid, $node->task_title, $node->task_stepno
+            $node->task_nid, $node->task_title
             );
 }
 
@@ -369,11 +371,11 @@ function stormnote_update($node) {
     db_query("UPDATE {stormnote} SET
             organization_nid=%d, organization_title='%s',
             project_nid=%d, project_title='%s',
-            task_nid=%d, task_title='%s', task_stepno='%s'
+            task_nid=%d, task_title='%s'
             WHERE vid = %d",
             $node->organization_nid, $node->organization_title,
             $node->project_nid, $node->project_title,
-            $node->task_nid, $node->task_title, $node->task_stepno,
+            $node->task_nid, $node->task_title,
             $node->vid);
   }
 }
@@ -389,13 +391,13 @@ function _stormnote_beforesave(&$node) {
         WHERE type='stormproject' AND n.nid=%d";
   $r = db_query($s, $node->project_nid);
   $p = db_fetch_object($r);
-  $node->project_title = $p->title;
+  $node->project_title = isset($p->title) ? $p->title : '';
 
   $s = "SELECT n.title FROM {node} n INNER JOIN {stormtask} p ON n.nid=p.nid
         WHERE type='stormtask' AND n.nid=%d";
   $r = db_query($s, $node->task_nid);
   $t = db_fetch_object($r);
-  $node->task_title = $t->title;
+  $node->task_title = isset($t->title) ? $t->title : '';
 }
 
 function stormnote_nodeapi(&$node, $op, $teaser, $page) {
Index: stormnote/stormnote.test
===================================================================
RCS file: stormnote/stormnote.test
diff -N stormnote/stormnote.test
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ stormnote/stormnote.test	21 Sep 2010 23:26:34 -0000
@@ -0,0 +1,45 @@
+<?php
+class StormnoteTestCase extends DrupalWebTestCase {
+
+  public static function getInfo() {
+    return array(
+      'name' => t('Storm Note Functionality'),
+      'description' => t('Test the functionality of the Storm Note module'),
+      'group' => 'Storm',
+    );
+  }
+
+  public function setUp() {
+    parent::setUp('storm', 'stormattribute', 'stormorganization', 'stormproject', 'stormtask', 'stormnote');
+  }
+
+  public function testStormnoteCreate() {
+    // Create and login user
+    $user = $this->drupalCreateUser(array('Storm organization: add', 'Storm organization: view all', 'Storm project: add', 'Storm project: view all', 'Storm task: add', 'Storm task: view all', 'Storm note: add', 'Storm note: view all'));
+    $this->drupalLogin($user);
+
+    // Create organization and invoice
+    $org = array(
+      'title' => $this->randomName(32),
+      'body' => $this->randomName(64),
+    );
+    $prj = array(
+      'title' => $this->randomName(32),
+      'organization_nid' => '1',
+    );
+    $task = array(
+      'title' => $this->randomName(32),
+      'body' => $this->randomName(64),
+    );
+    $note = array(
+      'title' => $this->randomName(32),
+      'body' => $this->randomName(64),
+    );
+    $this->drupalPost('node/add/stormorganization', $org, t('Save'));
+    $this->drupalPost('node/add/stormproject', $prj, t('Save'));
+    $this->drupalPost('node/add/stormtask', $task, t('Save'));
+    $this->drupalPost('node/add/stormnote', $note, t('Save'));
+
+    $this->assertText(t('Note @title has been created.', array('@title' => $note['title'])));;
+  }
+}
