sync
[web.mtrack] / MTrackWeb / TicketEdit.php
index ba77a0a..41e5176 100644 (file)
@@ -132,6 +132,31 @@ class MTrackWeb_TicketEdit extends MTrackWeb
             $en->find(true);
             $this->issue->status = $en->id;
         }
+        
+        
+        //  VALIDATE POST!??!
+        
+        
+        if (!empty($_REQUEST['act_now'])) { //=+ adding act now..
+            // check project / assigned person / !closed for more than 3 'act_now'
+            //DB_DataObject::DebugLevel(1);
+            $xx = DB_DataObject::factory('mtrack_ticket');
+            $xx->owner_id = $this->issue->owner_id;
+            $xx->project_id  = $this->issue->project_id;
+            $xx->act_now = 1;
+            $xx->resolution_id = 0;
+            $xx->whereAdd('id != ' . ((int) $this->issue->id)); // just in case we are double setting...
+            if ($xx->count() > 2) {
+                $this->jerr("To many act-now tasks assigned to that person, wait until the have completed some");
+            }
+            
+            
+            
+        }
+        
+        
+        
+        
         $this->issue->setFrom($_POST); 
         
         /*
@@ -195,6 +220,10 @@ class MTrackWeb_TicketEdit extends MTrackWeb
             empty($_POST['estimate']) ? 0 : $_POST['estimate']
         );
         */
+        
+        
+        
+        
         $this->issue->project_id = $this->currentProject();
         
         
@@ -203,7 +232,10 @@ class MTrackWeb_TicketEdit extends MTrackWeb
        
         
         if ($this->issue->id) {
-            $this->issue->update($old);
+            if (0 === $this->issue->update($old)) {
+                $this->jerr("nothing changed?");
+            
+            }
         } else {
             $this->issue->insert();
             $old = false;
@@ -246,12 +278,15 @@ class MTrackWeb_TicketEdit extends MTrackWeb
                         $notify_query
             );
         //DB_DataObject::debugLevel(1);
-        // who to notify..
+        // who to notify.. -- originall did not send to issuer..
+        // we should probably make this configurable..
        
         $w->notify( 'mtrack_ticket' , $this->issue->id,
+                   $notify_query 
+                   /*
                  " ( $notify_query )
                     AND
-                    (person_id != {$this->authUser->id})   "  
+                    (person_id != {$this->authUser->id})   "  */
         );
         
         
@@ -345,7 +380,7 @@ class MTrackWeb_TicketEdit extends MTrackWeb
         $pd = DB_DataObject::factory('ProjectDirectory');
         $pd->project_id = $this->currentProject();
         $pd->whereAdd("ProjectDirectory.role != ''");
-        $pd->joinAdd(DB_DataObject::factory('Person'), 'LEFT');
+        $pd->joinAdd(DB_DataObject::factory('core_person'), 'LEFT');
         $pd->selectAdd();
         $pd->selectAdd("distinct(Person.id) as id ,  CONCAT(Person.name , '<', Person.email , '>') as name");
         $pd->groupBy('Person.id, Person.name');
@@ -373,14 +408,14 @@ class MTrackWeb_TicketEdit extends MTrackWeb
             $ar = $this->issue->components();
             $this->elements['component[]']->setValue(array_keys($ar));
             */
-            DB_DataObject::debugLevel(1);
+            //DB_DataObject::debugLevel(1);
             $d = DB_DataObject::factory('mtrack_milestone');
             $d->project_id = $this->currentProject();
             $d->orderBy('(case when duedate is null then 1 else 0 end), duedate, name');
             $d->whereAdd('completed != 1');
             $d->whereAdd('deleted != 1');
             $this->elements['milestone_id'] = new HTML_Template_Flexy_Element('select');
-            $this->elements['milestone_id']->setOptions($d->fetchAll('id', 'name'));
+            $this->elements['milestone_id']->setOptions(array(''=>'--select--') + $d->fetchAll('id', 'name'));
             //$ar = $this->issue->milestone();
             //$this->elements['milestone_id']->setValue(array_keys($ar));
         }