DataObjects/Core_group.php
[Pman.Core] / UpdateDatabase.php
index 195f89f..4f9f865 100644 (file)
@@ -129,10 +129,12 @@ class Pman_Core_UpdateDatabase extends Pman
     
     var $emailTemplates = array(
         'EVENT_ERRORS_REPORT' => array(
-            'test_class' => 'Pman/Coba/DataObjects/Ext_data',
+            'bcc_group' => 'Empty Group',
+            'test_class' => 'Pman/Admin/Report/SendEventErrors',
             'to_group' => 'Administrators',
             'active' => 1,
-            'description' => '9. System Error Messages'
+            'description' => '9. System Error Messages',
+            'template_dir' => '/Pman/Admin/templates/mail/'
         )
     );
     
@@ -793,16 +795,23 @@ class Pman_Core_UpdateDatabase extends Pman
             array(
                 'name' => 'bcc-email', // group who are bcc'ed on all requests.
                 'type' => 0, // system
+                'display_name' => 'Standard BCC Group'
             ),
             array(
                 'name' => 'system-email-from',
                 'type' => 0, // system
+                'display_name' => 'Standard System Email From Group'
             ),
             array(
                 'name' => 'core-person-signup-bcc',
                 'type' => 0, // system
+                'display_name' => 'Standard Person Signup BCC Group'
             ),
-        
+            array(
+                'name' => 'Empty Group', // use for no bcc emails.
+                'type' => 0,
+                'display_name' => 'Standard Empty Group'
+            )
 
         ));
         
@@ -847,6 +856,19 @@ class Pman_Core_UpdateDatabase extends Pman
         
     }
     
+    function updateDataEmails()
+    {
+        foreach ($this->emailTemplates as $k => $mail) {
+            
+            $mail_dir = "{$this->rootDir}{$mail['template_dir']}";
+
+            $this->initEmails(
+                $mail_dir,
+                array($k => $mail),
+                false
+            );
+        }
+    }
     
     function initEmails($templateDir, $emails, $mapping = false)
     {
@@ -862,13 +884,14 @@ class Pman_Core_UpdateDatabase extends Pman
                 if (empty($data['bcc_group'])) {
                     $this->jerr("missing bcc_group for template $name");
                 }
+                
                 $g = DB_DataObject::Factory('core_group')->lookup('name',$data['bcc_group']);
                 
                 if (empty($g->id)) {
                     $this->jerr("bcc_group {$data['bcc_group']} does not exist when importing template $name");
                 }
                 
-                if (!$g->members('email')) {
+                if (!$g->members('email') && $g->name != 'Empty Group') {
                     $this->jerr("bcc_group {$data['bcc_group']} does not have any members");
                 }
                 
@@ -905,7 +928,11 @@ class Pman_Core_UpdateDatabase extends Pman
                 $cm->active = $data['active'];
             }
             
-            if(!empty($data['description'])){
+            /*
+             * Set description to email.
+             * However we do not update if it is been set.
+             */
+            if(empty($cm->description) && !empty($data['description'])){
                 $cm->description = $cm->escape($data['description']);
             }
             
@@ -965,6 +992,8 @@ class Pman_Core_UpdateDatabase extends Pman
         $this->updateDataGroups();
         $this->updateDataCompanies();
         
+        $this->updateDataEmails();
+        
         $c = DB_DataObject::Factory('I18n');
         $c->buildDB();