Implemented the three types of changes and factorized their lifecycle

Created incident/request/change dictionnaries

SVN:trunk[549]
This commit is contained in:
Romain Quetiez
2010-07-04 16:58:00 +00:00
parent a7bf711182
commit 218ed7036b
7 changed files with 948 additions and 50 deletions

View File

@@ -1292,6 +1292,12 @@ abstract class MetaModel
self::$m_aTransitions[$sTargetClass][$sStateCode] = array();
}
public static function Init_OverloadStateAttribute($sStateCode, $sAttCode, $iFlags)
{
$sTargetClass = self::GetCallersPHPClass("Init");
self::$m_aStates[$sTargetClass][$sStateCode]['attribute_list'][$sAttCode] = $iFlags;
}
public static function Init_DefineStimulus($oStimulus)
{
$sTargetClass = self::GetCallersPHPClass("Init");

View File

@@ -23,6 +23,16 @@
* @license http://www.opensource.org/licenses/gpl-3.0.html LGPL
*/
Dict::Add('EN US', 'English', 'English', array(
'Menu:ChangeManagement' => 'Change management',
'Menu:WaitingAcceptance' => 'Changes awaiting acceptance',
'Menu:WaitingAcceptance+' => '',
'Menu:WaitingApproval' => 'Changes awaiting approval',
'Menu:WaitingApproval+' => '',
'Menu:Changes' => 'All changes',
'Menu:Changes+' => '',
));
// Dictionnay conventions
// Class:<class_name>
// Class:<class_name>+
@@ -33,19 +43,293 @@
// Class:<class_name>/Stimulus:<stimulus_code>
// Class:<class_name>/Stimulus:<stimulus_code>+
//////////////////////////////////////////////////////////////////////
// Classes in 'bizmodel'
//////////////////////////////////////////////////////////////////////
//
// Class: Change
//
// Dictionnay conventions
// Class:<class_name>
// Class:<class_name>+
// Class:<class_name>/Attribute:<attribute_code>
// Class:<class_name>/Attribute:<attribute_code>+
// Class:<class_name>/Attribute:<attribute_code>/Value:<value>
// Class:<class_name>/Attribute:<attribute_code>/Value:<value>+
// Class:<class_name>/Stimulus:<stimulus_code>
// Class:<class_name>/Stimulus:<stimulus_code>+
Dict::Add('EN US', 'English', 'English', array(
'Class:Change' => 'Change',
'Class:Change+' => '',
'Class:Change/Attribute:start_date' => 'Planned startup',
'Class:Change/Attribute:start_date+' => '',
'Class:Change/Attribute:status' => 'Status',
'Class:Change/Attribute:status+' => '',
'Class:Change/Attribute:status/Value:new' => 'New',
'Class:Change/Attribute:status/Value:new+' => '',
'Class:Change/Attribute:status/Value:validated' => 'Validated',
'Class:Change/Attribute:status/Value:validated+' => '',
'Class:Change/Attribute:status/Value:rejected' => 'Rejected',
'Class:Change/Attribute:status/Value:rejected+' => '',
'Class:Change/Attribute:status/Value:assigned' => 'Assigned',
'Class:Change/Attribute:status/Value:assigned+' => '',
'Class:Change/Attribute:status/Value:plannedscheduled' => 'Planned and scheduled',
'Class:Change/Attribute:status/Value:plannedscheduled+' => '',
'Class:Change/Attribute:status/Value:approved' => 'Approved',
'Class:Change/Attribute:status/Value:approved+' => '',
'Class:Change/Attribute:status/Value:notapproved' => 'Rejected',
'Class:Change/Attribute:status/Value:notapproved+' => '',
'Class:Change/Attribute:status/Value:implemented' => 'Implemented',
'Class:Change/Attribute:status/Value:implemented+' => '',
'Class:Change/Attribute:status/Value:monitored' => 'Monitored',
'Class:Change/Attribute:status/Value:monitored+' => '',
'Class:Change/Attribute:status/Value:closed' => 'Closed',
'Class:Change/Attribute:status/Value:closed+' => '',
'Class:Change/Attribute:reason' => 'Reason',
'Class:Change/Attribute:reason+' => '',
'Class:Change/Attribute:requestor_id' => 'Requestor',
'Class:Change/Attribute:requestor_id+' => '',
'Class:Change/Attribute:requestor_email' => 'Requestor',
'Class:Change/Attribute:requestor_email+' => '',
'Class:Change/Attribute:customer_id' => 'Customer',
'Class:Change/Attribute:customer_id+' => '',
'Class:Change/Attribute:customer_name' => 'Customer',
'Class:Change/Attribute:customer_name+' => '',
'Class:Change/Attribute:workgroup_id' => 'Workgroup',
'Class:Change/Attribute:workgroup_id+' => '',
'Class:Change/Attribute:workgroup_name' => 'Workgroup',
'Class:Change/Attribute:workgroup_name+' => '',
'Class:Change/Attribute:creation_date' => 'Created',
'Class:Change/Attribute:creation_date+' => '',
'Class:Change/Attribute:last_update' => 'Last update',
'Class:Change/Attribute:last_update+' => '',
'Class:Change/Attribute:end_date' => 'End date',
'Class:Change/Attribute:end_date+' => '',
'Class:Change/Attribute:close_date' => 'Closed',
'Class:Change/Attribute:close_date+' => '',
'Class:Change/Attribute:impact' => 'Impact',
'Class:Change/Attribute:impact+' => '',
'Class:Change/Attribute:agent_id' => 'Agent',
'Class:Change/Attribute:agent_id+' => '',
'Class:Change/Attribute:agent_name' => 'Agent',
'Class:Change/Attribute:agent_name+' => '',
'Class:Change/Attribute:agent_email' => 'Agent',
'Class:Change/Attribute:agent_email+' => '',
'Class:Change/Attribute:supervisor_group_id' => 'Supervisor team',
'Class:Change/Attribute:supervisor_group_id+' => '',
'Class:Change/Attribute:supervisor_group_name' => 'Supervisor team',
'Class:Change/Attribute:supervisor_group_name+' => '',
'Class:Change/Attribute:supervisor_id' => 'Supervisor',
'Class:Change/Attribute:supervisor_id+' => '',
'Class:Change/Attribute:supervisor_email' => 'Supervisor',
'Class:Change/Attribute:supervisor_email+' => '',
'Class:Change/Attribute:manager_group_id' => 'Manager team',
'Class:Change/Attribute:manager_group_id+' => '',
'Class:Change/Attribute:manager_group_name' => 'Manager team',
'Class:Change/Attribute:manager_group_name+' => '',
'Class:Change/Attribute:manager_id' => 'Manager',
'Class:Change/Attribute:manager_id+' => '',
'Class:Change/Attribute:manager_email' => 'Manager',
'Class:Change/Attribute:manager_email+' => '',
'Class:Change/Attribute:outage' => 'Outage',
'Class:Change/Attribute:outage+' => '',
'Class:Change/Attribute:change_request' => 'Request',
'Class:Change/Attribute:change_request+' => '',
'Class:Change/Attribute:change_log' => 'Log',
'Class:Change/Attribute:change_log+' => '',
'Class:Change/Attribute:fallback' => 'Fallback plan',
'Class:Change/Attribute:fallback+' => '',
'Class:Change/Stimulus:ev_validate' => 'Validate',
'Class:Change/Stimulus:ev_validate+' => '',
'Class:Change/Stimulus:ev_reject' => 'Reject',
'Class:Change/Stimulus:ev_reject+' => '',
'Class:Change/Stimulus:ev_assign' => 'Assign',
'Class:Change/Stimulus:ev_assign+' => '',
'Class:Change/Stimulus:ev_reopen' => 'Reopen',
'Class:Change/Stimulus:ev_reopen+' => '',
'Class:Change/Stimulus:ev_plan' => 'Plan',
'Class:Change/Stimulus:ev_plan+' => '',
'Class:Change/Stimulus:ev_approve' => 'Approve',
'Class:Change/Stimulus:ev_approve+' => '',
'Class:Change/Stimulus:ev_replan' => 'Replan',
'Class:Change/Stimulus:ev_replan+' => '',
'Class:Change/Stimulus:ev_notapprove' => 'Reject',
'Class:Change/Stimulus:ev_notapprove+' => '',
'Class:Change/Stimulus:ev_implement' => 'Implement',
'Class:Change/Stimulus:ev_implement+' => '',
'Class:Change/Stimulus:ev_monitor' => 'Monitor',
'Class:Change/Stimulus:ev_monitor+' => '',
'Class:Change/Stimulus:ev_finish' => 'Finish',
'Class:Change/Stimulus:ev_finish+' => '',
));
//
// Class: RoutineChange
//
Dict::Add('EN US', 'English', 'English', array(
'Class:RoutineChange' => 'Routine Change',
'Class:RoutineChange+' => '',
'Class:Change/Attribute:status/Value:new' => 'New',
'Class:Change/Attribute:status/Value:new+' => '',
'Class:Change/Attribute:status/Value:assigned' => 'Assigned',
'Class:Change/Attribute:status/Value:assigned+' => '',
'Class:Change/Attribute:status/Value:plannedscheduled' => 'Planned and scheduled',
'Class:Change/Attribute:status/Value:plannedscheduled+' => '',
'Class:Change/Attribute:status/Value:approved' => 'Approved',
'Class:Change/Attribute:status/Value:approved+' => '',
'Class:Change/Attribute:status/Value:implemented' => 'Implemented',
'Class:Change/Attribute:status/Value:implemented+' => '',
'Class:Change/Attribute:status/Value:monitored' => 'Monitored',
'Class:Change/Attribute:status/Value:monitored+' => '',
'Class:Change/Attribute:status/Value:closed' => 'Closed',
'Class:Change/Attribute:status/Value:closed+' => '',
'Class:RoutineChange/Stimulus:ev_validate' => 'Validate',
'Class:RoutineChange/Stimulus:ev_validate+' => '',
'Class:RoutineChange/Stimulus:ev_assign' => 'Assign',
'Class:RoutineChange/Stimulus:ev_assign+' => '',
'Class:RoutineChange/Stimulus:ev_reopen' => 'Reopen',
'Class:RoutineChange/Stimulus:ev_reopen+' => '',
'Class:RoutineChange/Stimulus:ev_plan' => 'Plan',
'Class:RoutineChange/Stimulus:ev_plan+' => '',
'Class:RoutineChange/Stimulus:ev_replan' => 'Replan',
'Class:RoutineChange/Stimulus:ev_replan+' => '',
'Class:RoutineChange/Stimulus:ev_implement' => 'Implement',
'Class:RoutineChange/Stimulus:ev_implement+' => '',
'Class:RoutineChange/Stimulus:ev_monitor' => 'Monitor',
'Class:RoutineChange/Stimulus:ev_monitor+' => '',
'Class:RoutineChange/Stimulus:ev_finish' => 'Finish',
'Class:RoutineChange/Stimulus:ev_finish+' => '',
));
//
// Class: ApprovedChange
//
Dict::Add('EN US', 'English', 'English', array(
'Class:ApprovedChange' => 'Approved Changes',
'Class:ApprovedChange+' => '',
'Class:ApprovedChange/Attribute:approval_date' => 'approval_date',
'Class:ApprovedChange/Attribute:approval_date+' => '',
'Class:ApprovedChange/Attribute:approval_comment' => 'approval_comment',
'Class:ApprovedChange/Attribute:approval_comment+' => '',
'Class:ApprovedChange/Stimulus:ev_validate' => 'Validate',
'Class:ApprovedChange/Stimulus:ev_validate+' => '',
'Class:ApprovedChange/Stimulus:ev_reject' => 'Reject',
'Class:ApprovedChange/Stimulus:ev_reject+' => '',
'Class:ApprovedChange/Stimulus:ev_assign' => 'Assign',
'Class:ApprovedChange/Stimulus:ev_assign+' => '',
'Class:ApprovedChange/Stimulus:ev_reopen' => 'Reopen',
'Class:ApprovedChange/Stimulus:ev_reopen+' => '',
'Class:ApprovedChange/Stimulus:ev_plan' => 'Plan',
'Class:ApprovedChange/Stimulus:ev_plan+' => '',
'Class:ApprovedChange/Stimulus:ev_approve' => 'Approve',
'Class:ApprovedChange/Stimulus:ev_approve+' => '',
'Class:ApprovedChange/Stimulus:ev_replan' => 'Replan',
'Class:ApprovedChange/Stimulus:ev_replan+' => '',
'Class:ApprovedChange/Stimulus:ev_notapprove' => 'Reject approval',
'Class:ApprovedChange/Stimulus:ev_notapprove+' => '',
'Class:ApprovedChange/Stimulus:ev_implement' => 'Implement',
'Class:ApprovedChange/Stimulus:ev_implement+' => '',
'Class:ApprovedChange/Stimulus:ev_monitor' => 'Monitor',
'Class:ApprovedChange/Stimulus:ev_monitor+' => '',
'Class:ApprovedChange/Stimulus:ev_finish' => 'Finish',
'Class:ApprovedChange/Stimulus:ev_finish+' => '',
));
//
// Class: NormalChange
//
Dict::Add('EN US', 'English', 'English', array(
'Class:NormalChange' => 'Normal Change',
'Class:NormalChange+' => '',
'Class:Change/Attribute:status/Value:new' => 'New',
'Class:Change/Attribute:status/Value:new+' => '',
'Class:Change/Attribute:status/Value:validated' => 'Validated',
'Class:Change/Attribute:status/Value:validated+' => '',
'Class:Change/Attribute:status/Value:rejected' => 'Rejected',
'Class:Change/Attribute:status/Value:rejected+' => '',
'Class:Change/Attribute:status/Value:assigned' => 'Assigned',
'Class:Change/Attribute:status/Value:assigned+' => '',
'Class:Change/Attribute:status/Value:plannedscheduled' => 'Planned and scheduled',
'Class:Change/Attribute:status/Value:plannedscheduled+' => '',
'Class:Change/Attribute:status/Value:approved' => 'Approved',
'Class:Change/Attribute:status/Value:approved+' => '',
'Class:Change/Attribute:status/Value:notapproved' => 'Rejected',
'Class:Change/Attribute:status/Value:notapproved+' => '',
'Class:Change/Attribute:status/Value:implemented' => 'Implemented',
'Class:Change/Attribute:status/Value:implemented+' => '',
'Class:Change/Attribute:status/Value:monitored' => 'Monitored',
'Class:Change/Attribute:status/Value:monitored+' => '',
'Class:Change/Attribute:status/Value:closed' => 'Closed',
'Class:Change/Attribute:status/Value:closed+' => '',
'Class:NormalChange/Attribute:acceptance_date' => 'Acceptance date',
'Class:NormalChange/Attribute:acceptance_date+' => '',
'Class:NormalChange/Attribute:acceptance_comment' => 'Acceptance comment',
'Class:NormalChange/Attribute:acceptance_comment+' => '',
'Class:NormalChange/Stimulus:ev_validate' => 'Validate',
'Class:NormalChange/Stimulus:ev_validate+' => '',
'Class:NormalChange/Stimulus:ev_reject' => 'Reject',
'Class:NormalChange/Stimulus:ev_reject+' => '',
'Class:NormalChange/Stimulus:ev_assign' => 'Assign',
'Class:NormalChange/Stimulus:ev_assign+' => '',
'Class:NormalChange/Stimulus:ev_reopen' => 'Reopen',
'Class:NormalChange/Stimulus:ev_reopen+' => '',
'Class:NormalChange/Stimulus:ev_plan' => 'Plan',
'Class:NormalChange/Stimulus:ev_plan+' => '',
'Class:NormalChange/Stimulus:ev_approve' => 'Approve',
'Class:NormalChange/Stimulus:ev_approve+' => '',
'Class:NormalChange/Stimulus:ev_replan' => 'Replan',
'Class:NormalChange/Stimulus:ev_replan+' => '',
'Class:NormalChange/Stimulus:ev_notapprove' => 'Reject approval',
'Class:NormalChange/Stimulus:ev_notapprove+' => '',
'Class:NormalChange/Stimulus:ev_implement' => 'Implement',
'Class:NormalChange/Stimulus:ev_implement+' => '',
'Class:NormalChange/Stimulus:ev_monitor' => 'Monitor',
'Class:NormalChange/Stimulus:ev_monitor+' => '',
'Class:NormalChange/Stimulus:ev_finish' => 'Finish',
'Class:NormalChange/Stimulus:ev_finish+' => '',
));
//
// Class: EmergencyChange
//
Dict::Add('EN US', 'English', 'English', array(
'Class:EmergencyChange' => 'Emergency Change',
'Class:EmergencyChange+' => '',
'Class:Change/Attribute:status/Value:new' => 'New',
'Class:Change/Attribute:status/Value:new+' => '',
'Class:Change/Attribute:status/Value:validated' => 'Validated',
'Class:Change/Attribute:status/Value:validated+' => '',
'Class:Change/Attribute:status/Value:rejected' => 'Rejected',
'Class:Change/Attribute:status/Value:rejected+' => '',
'Class:Change/Attribute:status/Value:assigned' => 'Assigned',
'Class:Change/Attribute:status/Value:assigned+' => '',
'Class:Change/Attribute:status/Value:plannedscheduled' => 'Planned and scheduled',
'Class:Change/Attribute:status/Value:plannedscheduled+' => '',
'Class:Change/Attribute:status/Value:approved' => 'Approved',
'Class:Change/Attribute:status/Value:approved+' => '',
'Class:Change/Attribute:status/Value:notapproved' => 'Rejected',
'Class:Change/Attribute:status/Value:notapproved+' => '',
'Class:Change/Attribute:status/Value:implemented' => 'Implemented',
'Class:Change/Attribute:status/Value:implemented+' => '',
'Class:Change/Attribute:status/Value:monitored' => 'Monitored',
'Class:Change/Attribute:status/Value:monitored+' => '',
'Class:Change/Attribute:status/Value:closed' => 'Closed',
'Class:Change/Attribute:status/Value:closed+' => '',
'Class:EmergencyChange/Stimulus:ev_validate' => 'Validate',
'Class:EmergencyChange/Stimulus:ev_validate+' => '',
'Class:EmergencyChange/Stimulus:ev_reject' => 'Reject',
'Class:EmergencyChange/Stimulus:ev_reject+' => '',
'Class:EmergencyChange/Stimulus:ev_assign' => 'Assign',
'Class:EmergencyChange/Stimulus:ev_assign+' => '',
'Class:EmergencyChange/Stimulus:ev_reopen' => 'Reopen',
'Class:EmergencyChange/Stimulus:ev_reopen+' => '',
'Class:EmergencyChange/Stimulus:ev_plan' => 'Plan',
'Class:EmergencyChange/Stimulus:ev_plan+' => '',
'Class:EmergencyChange/Stimulus:ev_approve' => 'Approve',
'Class:EmergencyChange/Stimulus:ev_approve+' => '',
'Class:EmergencyChange/Stimulus:ev_replan' => 'Replan',
'Class:EmergencyChange/Stimulus:ev_replan+' => '',
'Class:EmergencyChange/Stimulus:ev_notapprove' => 'Reject approval',
'Class:EmergencyChange/Stimulus:ev_notapprove+' => '',
'Class:EmergencyChange/Stimulus:ev_implement' => 'Implement',
'Class:EmergencyChange/Stimulus:ev_implement+' => '',
'Class:EmergencyChange/Stimulus:ev_monitor' => 'Monitor',
'Class:EmergencyChange/Stimulus:ev_monitor+' => '',
'Class:EmergencyChange/Stimulus:ev_finish' => 'Finish',
'Class:EmergencyChange/Stimulus:ev_finish+' => '',
));
?>

View File

@@ -23,4 +23,404 @@
* @license http://www.opensource.org/licenses/gpl-3.0.html LGPL
*/
abstract class Change extends Ticket
{
public static function Init()
{
$aParams = array
(
"category" => "bizmodel,searchable,changemgmt",
"key_type" => "autoincrement",
"name_attcode" => "ref",
"state_attcode" => "status",
"reconc_keys" => array("ref"),
"db_table" => "change",
"db_key_field" => "id",
"db_finalclass_field" => "",
"display_template" => "",
);
MetaModel::Init_Params($aParams);
MetaModel::Init_InheritAttributes();
MetaModel::Init_AddAttribute(new AttributeEnum("status", array("allowed_values"=>new ValueSetEnum('approved,assigned,closed,implemented,monitored,new,notapproved,plannedscheduled,rejected,validated'), "sql"=>"status", "default_value"=>"new", "is_null_allowed"=>true, "depends_on"=>array())));
MetaModel::Init_AddAttribute(new AttributeString("reason", array("allowed_values"=>null, "sql"=>"reason", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array())));
MetaModel::Init_AddAttribute(new AttributeExternalKey("requestor_id", array("targetclass"=>"Person", "jointype"=>null, "allowed_values"=>null, "sql"=>"requestor_id", "is_null_allowed"=>true, "on_target_delete"=>DEL_MANUAL, "depends_on"=>array())));
MetaModel::Init_AddAttribute(new AttributeExternalField("requestor_email", array("allowed_values"=>null, "extkey_attcode"=>"requestor_id", "target_attcode"=>"email", "is_null_allowed"=>true, "depends_on"=>array())));
MetaModel::Init_AddAttribute(new AttributeExternalKey("customer_id", array("targetclass"=>"Organization", "jointype"=>null, "allowed_values"=>null, "sql"=>"customer_id", "is_null_allowed"=>false, "on_target_delete"=>DEL_AUTO, "depends_on"=>array())));
MetaModel::Init_AddAttribute(new AttributeExternalField("customer_name", array("allowed_values"=>null, "extkey_attcode"=>"customer_id", "target_attcode"=>"name", "is_null_allowed"=>true, "depends_on"=>array())));
MetaModel::Init_AddAttribute(new AttributeExternalKey("workgroup_id", array("targetclass"=>"Team", "jointype"=>null, "allowed_values"=>null, "sql"=>"workgroup_id", "is_null_allowed"=>true, "on_target_delete"=>DEL_MANUAL, "depends_on"=>array())));
MetaModel::Init_AddAttribute(new AttributeExternalField("workgroup_name", array("allowed_values"=>null, "extkey_attcode"=>"workgroup_id", "target_attcode"=>"name", "is_null_allowed"=>true, "depends_on"=>array())));
MetaModel::Init_AddAttribute(new AttributeDate("creation_date", array("allowed_values"=>null, "sql"=>"creation_date", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array())));
MetaModel::Init_AddAttribute(new AttributeDate("last_update", array("allowed_values"=>null, "sql"=>"last_update", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array())));
MetaModel::Init_AddAttribute(new AttributeDate("start_date", array("allowed_values"=>null, "sql"=>"start_date", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array())));
MetaModel::Init_AddAttribute(new AttributeDate("end_date", array("allowed_values"=>null, "sql"=>"end_date", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array())));
MetaModel::Init_AddAttribute(new AttributeDate("close_date", array("allowed_values"=>null, "sql"=>"close_date", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array())));
MetaModel::Init_AddAttribute(new AttributeString("impact", array("allowed_values"=>null, "sql"=>"impact", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array())));
MetaModel::Init_AddAttribute(new AttributeExternalKey("agent_id", array("targetclass"=>"Person", "jointype"=>null, "allowed_values"=>null, "sql"=>"agent_id", "is_null_allowed"=>true, "on_target_delete"=>DEL_MANUAL, "depends_on"=>array())));
MetaModel::Init_AddAttribute(new AttributeExternalField("agent_name", array("allowed_values"=>null, "extkey_attcode"=>"agent_id", "target_attcode"=>"name", "is_null_allowed"=>true, "depends_on"=>array())));
MetaModel::Init_AddAttribute(new AttributeExternalField("agent_email", array("allowed_values"=>null, "extkey_attcode"=>"agent_id", "target_attcode"=>"email", "is_null_allowed"=>true, "depends_on"=>array())));
MetaModel::Init_AddAttribute(new AttributeExternalKey("supervisor_group_id", array("targetclass"=>"Team", "jointype"=>null, "allowed_values"=>null, "sql"=>"supervisor_group_id", "is_null_allowed"=>true, "on_target_delete"=>DEL_MANUAL, "depends_on"=>array())));
MetaModel::Init_AddAttribute(new AttributeExternalField("supervisor_group_name", array("allowed_values"=>null, "extkey_attcode"=>"supervisor_group_id", "target_attcode"=>"name", "is_null_allowed"=>true, "depends_on"=>array())));
MetaModel::Init_AddAttribute(new AttributeExternalKey("supervisor_id", array("targetclass"=>"Person", "jointype"=>null, "allowed_values"=>null, "sql"=>"supervisor_id", "is_null_allowed"=>true, "on_target_delete"=>DEL_MANUAL, "depends_on"=>array())));
MetaModel::Init_AddAttribute(new AttributeExternalField("supervisor_email", array("allowed_values"=>null, "extkey_attcode"=>"supervisor_id", "target_attcode"=>"email", "is_null_allowed"=>true, "depends_on"=>array())));
MetaModel::Init_AddAttribute(new AttributeExternalKey("manager_group_id", array("targetclass"=>"Team", "jointype"=>null, "allowed_values"=>null, "sql"=>"manager_group_id", "is_null_allowed"=>true, "on_target_delete"=>DEL_MANUAL, "depends_on"=>array())));
MetaModel::Init_AddAttribute(new AttributeExternalField("manager_group_name", array("allowed_values"=>null, "extkey_attcode"=>"manager_group_id", "target_attcode"=>"name", "is_null_allowed"=>true, "depends_on"=>array())));
MetaModel::Init_AddAttribute(new AttributeExternalKey("manager_id", array("targetclass"=>"Person", "jointype"=>null, "allowed_values"=>null, "sql"=>"manager_id", "is_null_allowed"=>true, "on_target_delete"=>DEL_MANUAL, "depends_on"=>array())));
MetaModel::Init_AddAttribute(new AttributeExternalField("manager_email", array("allowed_values"=>null, "extkey_attcode"=>"manager_id", "target_attcode"=>"email", "is_null_allowed"=>true, "depends_on"=>array())));
MetaModel::Init_AddAttribute(new AttributeBoolean("outage", array("allowed_values"=>null, "sql"=>"outage", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array())));
MetaModel::Init_AddAttribute(new AttributeText("change_request", array("allowed_values"=>null, "sql"=>"change_request", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array())));
MetaModel::Init_AddAttribute(new AttributeText("change_log", array("allowed_values"=>null, "sql"=>"change_log", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array())));
MetaModel::Init_AddAttribute(new AttributeText("fallback", array("allowed_values"=>null, "sql"=>"fallback", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array())));
MetaModel::Init_SetZListItems('details', array('title', 'ticket_log', 'start_date', 'document_list', 'ci_list', 'contact_list', 'status', 'reason', 'requestor_id', 'customer_id', 'workgroup_id', 'creation_date', 'last_update', 'end_date', 'close_date', 'impact', 'agent_id', 'agent_email', 'supervisor_group_id', 'supervisor_id', 'manager_group_id', 'manager_id', 'outage', 'change_request', 'change_log', 'fallback'));
MetaModel::Init_SetZListItems('advanced_search', array('ref', 'title', 'start_date', 'status', 'reason', 'requestor_id', 'customer_id', 'workgroup_id', 'creation_date', 'last_update', 'end_date', 'close_date', 'impact', 'agent_id', 'agent_email', 'supervisor_group_id', 'supervisor_id', 'manager_group_id', 'manager_id', 'outage', 'change_request', 'change_log', 'fallback'));
MetaModel::Init_SetZListItems('standard_search', array('ref', 'title', 'start_date', 'status', 'reason', 'requestor_id', 'customer_id', 'workgroup_id', 'creation_date', 'last_update', 'end_date', 'close_date', 'impact', 'agent_id', 'agent_email', 'supervisor_group_id', 'supervisor_id', 'manager_group_id', 'manager_id', 'outage', 'change_request', 'change_log', 'fallback'));
MetaModel::Init_SetZListItems('list', array('title', 'start_date', 'status'));
MetaModel::Init_DefineState(
"new",
array(
"attribute_inherit" => null,
"attribute_list" => array(
'ref' => OPT_ATT_READONLY,
'title' => OPT_ATT_MANDATORY,
'reason' => OPT_ATT_MANDATORY,
'workgroup_id' => OPT_ATT_HIDDEN,
'creation_date' => OPT_ATT_READONLY,
'last_update' => OPT_ATT_READONLY,
'end_date' => OPT_ATT_HIDDEN,
'close_date' => OPT_ATT_HIDDEN,
'agent_id' => OPT_ATT_HIDDEN,
'supervisor_group_id' => OPT_ATT_HIDDEN,
'supervisor_id' => OPT_ATT_HIDDEN,
'manager_group_id' => OPT_ATT_HIDDEN,
'manager_id' => OPT_ATT_HIDDEN,
),
)
);
MetaModel::Init_DefineState(
"validated",
array(
"attribute_inherit" => 'new',
"attribute_list" => array(
'title' => OPT_ATT_READONLY,
'reason' => OPT_ATT_READONLY,
'workgroup_id' => OPT_ATT_MUSTCHANGE,
'change_request' => OPT_ATT_READONLY,
),
)
);
MetaModel::Init_DefineState(
"rejected",
array(
"attribute_inherit" => 'new',
"attribute_list" => array(
),
)
);
MetaModel::Init_DefineState(
"assigned",
array(
"attribute_inherit" => 'validated',
"attribute_list" => array(
'workgroup_id' => OPT_ATT_MANDATORY,
'agent_id' => OPT_ATT_MUSTCHANGE,
'supervisor_group_id' => OPT_ATT_MUSTCHANGE,
'supervisor_id' => OPT_ATT_MUSTCHANGE,
'manager_group_id' => OPT_ATT_MUSTCHANGE,
'manager_id' => OPT_ATT_MUSTCHANGE,
),
)
);
MetaModel::Init_DefineState(
"plannedscheduled",
array(
"attribute_inherit" => 'assigned',
"attribute_list" => array(
'requestor_id' => OPT_ATT_READONLY,
'customer_id' => OPT_ATT_READONLY,
'workgroup_id' => OPT_ATT_READONLY,
'start_date' => OPT_ATT_MANDATORY,
'end_date' => OPT_ATT_MANDATORY,
'impact' => OPT_ATT_MANDATORY,
'agent_id' => OPT_ATT_MANDATORY,
'supervisor_group_id' => OPT_ATT_MANDATORY,
'supervisor_id' => OPT_ATT_MANDATORY,
'manager_group_id' => OPT_ATT_MANDATORY,
'manager_id' => OPT_ATT_MANDATORY,
'fallback' => OPT_ATT_MANDATORY,
),
)
);
MetaModel::Init_DefineState(
"approved",
array(
"attribute_inherit" => 'plannedscheduled',
"attribute_list" => array(
'start_date' => OPT_ATT_READONLY,
'end_date' => OPT_ATT_MANDATORY,
'impact' => OPT_ATT_READONLY,
'supervisor_group_id' => OPT_ATT_READONLY,
'supervisor_id' => OPT_ATT_READONLY,
'manager_group_id' => OPT_ATT_READONLY,
'manager_id' => OPT_ATT_READONLY,
'outage' => OPT_ATT_READONLY,
),
)
);
MetaModel::Init_DefineState(
"notapproved",
array(
"attribute_inherit" => 'plannedscheduled',
"attribute_list" => array(
'impact' => OPT_ATT_READONLY,
'supervisor_group_id' => OPT_ATT_READONLY,
'supervisor_id' => OPT_ATT_READONLY,
'manager_group_id' => OPT_ATT_READONLY,
'manager_id' => OPT_ATT_READONLY,
),
)
);
MetaModel::Init_DefineState(
"implemented",
array(
"attribute_inherit" => 'approved',
"attribute_list" => array(
),
)
);
MetaModel::Init_DefineState(
"monitored",
array(
"attribute_inherit" => 'implemented',
"attribute_list" => array(
'end_date' => OPT_ATT_READONLY,
'agent_id' => OPT_ATT_READONLY,
'change_request' => OPT_ATT_READONLY,
'fallback' => OPT_ATT_READONLY,
),
)
);
MetaModel::Init_DefineState(
"closed",
array(
"attribute_inherit" => 'implemented',
"attribute_list" => array(
'close_date' => OPT_ATT_READONLY,
),
)
);
MetaModel::Init_DefineStimulus(new StimulusUserAction("ev_validate", array()));
MetaModel::Init_DefineStimulus(new StimulusUserAction("ev_reject", array()));
MetaModel::Init_DefineStimulus(new StimulusUserAction("ev_assign", array()));
MetaModel::Init_DefineStimulus(new StimulusUserAction("ev_reopen", array()));
MetaModel::Init_DefineStimulus(new StimulusUserAction("ev_plan", array()));
MetaModel::Init_DefineStimulus(new StimulusUserAction("ev_approve", array()));
MetaModel::Init_DefineStimulus(new StimulusUserAction("ev_replan", array()));
MetaModel::Init_DefineStimulus(new StimulusUserAction("ev_notapprove", array()));
MetaModel::Init_DefineStimulus(new StimulusUserAction("ev_implement", array()));
MetaModel::Init_DefineStimulus(new StimulusUserAction("ev_monitor", array()));
MetaModel::Init_DefineStimulus(new StimulusUserAction("ev_finish", array()));
}
public function SetClosureDate($sStimulusCode)
{
$this->Set('end_date', time());
return true;
}
public function SetLastUpDate($sStimulusCode)
{
$this->Set('last_update', time());
return true;
}
public function ComputeValues()
{
$iKey = $this->GetKey();
if ($iKey < 0)
{
// Object not yet in the Database
$iKey = MetaModel::GetNextKey(get_class($this));
}
$sName = sprintf('C-%06d', $iKey);
$this->Set('ref', $sName);
}
}
class RoutineChange extends Change
{
public static function Init()
{
$aParams = array
(
"category" => "bizmodel,searchable,changemgmt",
"key_type" => "autoincrement",
"name_attcode" => "ref",
"state_attcode" => "",
"reconc_keys" => array("ref"),
"db_table" => "change_routine",
"db_key_field" => "id",
"db_finalclass_field" => "",
"display_template" => "",
);
MetaModel::Init_Params($aParams);
MetaModel::Init_InheritAttributes();
MetaModel::Init_InheritLifecycle();
MetaModel::Init_SetZListItems('details', array('title', 'ticket_log', 'start_date', 'document_list', 'ci_list', 'contact_list', 'status', 'reason', 'requestor_id', 'customer_id', 'workgroup_id', 'creation_date', 'last_update', 'end_date', 'close_date', 'impact', 'agent_id', 'agent_email', 'supervisor_group_id', 'supervisor_id', 'manager_group_id', 'manager_id', 'outage', 'change_request', 'change_log', 'fallback'));
MetaModel::Init_SetZListItems('advanced_search', array('ref', 'title', 'start_date', 'status', 'reason', 'requestor_id', 'customer_id', 'workgroup_id', 'creation_date', 'last_update', 'end_date', 'close_date', 'impact', 'agent_id', 'agent_email', 'supervisor_group_id', 'supervisor_id', 'manager_group_id', 'manager_id', 'outage', 'change_request', 'change_log', 'fallback'));
MetaModel::Init_SetZListItems('standard_search', array('ref', 'title', 'start_date', 'status', 'reason', 'requestor_id', 'customer_id', 'workgroup_id', 'creation_date', 'last_update', 'end_date', 'close_date', 'impact', 'agent_id', 'agent_email', 'supervisor_group_id', 'supervisor_id', 'manager_group_id', 'manager_id', 'outage', 'change_request', 'change_log', 'fallback'));
MetaModel::Init_SetZListItems('list', array('title', 'start_date', 'status', 'requestor_id', 'customer_id', 'workgroup_id', 'creation_date', 'last_update', 'end_date', 'close_date', 'impact', 'agent_id', 'agent_email', 'supervisor_group_id', 'supervisor_id', 'manager_group_id', 'manager_id', 'outage', 'change_request', 'change_log', 'fallback'));
MetaModel::Init_DefineTransition("new", "ev_assign", array("target_state"=>"assigned", "actions"=>array('SetLastUpDate'), "user_restriction"=>null));
MetaModel::Init_DefineTransition("assigned", "ev_plan", array("target_state"=>"plannedscheduled", "actions"=>array('SetLastUpDate'), "user_restriction"=>null));
MetaModel::Init_DefineTransition("plannedscheduled", "ev_implement", array("target_state"=>"implemented", "actions"=>array('SetLastUpDate'), "user_restriction"=>null));
MetaModel::Init_DefineTransition("implemented", "ev_monitor", array("target_state"=>"monitored", "actions"=>array('SetLastUpDate'), "user_restriction"=>null));
MetaModel::Init_DefineTransition("implemented", "ev_finish", array("target_state"=>"closed", "actions"=>array('SetClosureDate','SetLastUpDate'), "user_restriction"=>null));
MetaModel::Init_DefineTransition("monitored", "ev_finish", array("target_state"=>"closed", "actions"=>array('SetClosureDate','SetLastUpDate'), "user_restriction"=>null));
}
}
abstract class ApprovedChange extends Change
{
public static function Init()
{
$aParams = array
(
"category" => "bizmodel,searchable,changemgmt",
"key_type" => "autoincrement",
"name_attcode" => "ref",
"state_attcode" => "",
"reconc_keys" => array("ref"),
"db_table" => "change_approved",
"db_key_field" => "id",
"db_finalclass_field" => "",
"display_template" => "",
);
MetaModel::Init_Params($aParams);
MetaModel::Init_InheritAttributes();
MetaModel::Init_InheritLifecycle();
MetaModel::Init_AddAttribute(new AttributeDate("approval_date", array("allowed_values"=>null, "sql"=>"approval_date", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array())));
MetaModel::Init_AddAttribute(new AttributeString("approval_comment", array("allowed_values"=>null, "sql"=>"approval_comment", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array())));
MetaModel::Init_SetZListItems('details', array('title', 'ticket_log', 'start_date', 'document_list', 'ci_list', 'contact_list', 'status', 'reason', 'requestor_id', 'customer_id', 'workgroup_id', 'creation_date', 'last_update', 'end_date', 'close_date', 'impact', 'agent_id', 'agent_email', 'supervisor_group_id', 'supervisor_id', 'manager_group_id', 'manager_id', 'outage', 'change_request', 'change_log', 'fallback', 'approval_date', 'approval_comment'));
MetaModel::Init_SetZListItems('advanced_search', array('ref', 'title', 'start_date', 'status', 'reason', 'requestor_id', 'customer_id', 'workgroup_id', 'creation_date', 'last_update', 'end_date', 'close_date', 'impact', 'agent_id', 'agent_email', 'supervisor_group_id', 'supervisor_id', 'manager_group_id', 'manager_id', 'outage', 'change_request', 'change_log', 'fallback', 'approval_date', 'approval_comment'));
MetaModel::Init_SetZListItems('standard_search', array('ref', 'title', 'start_date', 'status', 'reason', 'requestor_id', 'customer_id', 'workgroup_id', 'creation_date', 'last_update', 'end_date', 'close_date', 'impact', 'agent_id', 'agent_email', 'supervisor_group_id', 'supervisor_id', 'manager_group_id', 'manager_id', 'outage', 'change_request', 'change_log', 'fallback', 'approval_date', 'approval_comment'));
MetaModel::Init_SetZListItems('list', array('title', 'start_date', 'status', 'requestor_id', 'customer_id', 'workgroup_id', 'creation_date', 'last_update', 'end_date', 'close_date', 'impact', 'agent_id', 'agent_email', 'supervisor_group_id', 'supervisor_id', 'manager_group_id', 'manager_id', 'outage', 'change_request', 'change_log', 'fallback', 'approval_date', 'approval_comment'));
MetaModel::Init_OverloadStateAttribute('new', 'approval_date', OPT_ATT_HIDDEN);
MetaModel::Init_OverloadStateAttribute('new', 'approval_comment', OPT_ATT_HIDDEN);
MetaModel::Init_OverloadStateAttribute('approved', 'approval_date', OPT_ATT_MUSTCHANGE);
MetaModel::Init_OverloadStateAttribute('approved', 'approval_comment', OPT_ATT_MUSTCHANGE);
MetaModel::Init_OverloadStateAttribute('implemented', 'approval_date', OPT_ATT_READONLY);
MetaModel::Init_OverloadStateAttribute('implemented', 'approval_comment', OPT_ATT_READONLY);
}
}
class NormalChange extends ApprovedChange
{
public static function Init()
{
$aParams = array
(
"category" => "bizmodel,searchable,changemgmt",
"key_type" => "autoincrement",
"name_attcode" => "ref",
"state_attcode" => "",
"reconc_keys" => array("ref"),
"db_table" => "change_normal",
"db_key_field" => "id",
"db_finalclass_field" => "",
"display_template" => "",
);
MetaModel::Init_Params($aParams);
MetaModel::Init_InheritAttributes();
MetaModel::Init_InheritLifecycle();
MetaModel::Init_AddAttribute(new AttributeDate("acceptance_date", array("allowed_values"=>null, "sql"=>"acceptance_date", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array())));
MetaModel::Init_AddAttribute(new AttributeString("acceptance_comment", array("allowed_values"=>null, "sql"=>"acceptance_comment", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array())));
MetaModel::Init_SetZListItems('details', array('title', 'ticket_log', 'start_date', 'document_list', 'ci_list', 'contact_list', 'status', 'reason', 'requestor_id', 'customer_id', 'workgroup_id', 'creation_date', 'last_update', 'end_date', 'close_date', 'impact', 'agent_id', 'agent_email', 'supervisor_group_id', 'supervisor_id', 'manager_group_id', 'manager_id', 'outage', 'change_request', 'change_log', 'fallback', 'approval_date', 'approval_comment', 'acceptance_date', 'acceptance_comment'));
MetaModel::Init_SetZListItems('advanced_search', array('ref', 'title', 'start_date', 'status', 'reason', 'requestor_id', 'customer_id', 'workgroup_id', 'creation_date', 'last_update', 'end_date', 'close_date', 'impact', 'agent_id', 'agent_email', 'supervisor_group_id', 'supervisor_id', 'manager_group_id', 'manager_id', 'outage', 'change_request', 'change_log', 'fallback'));
MetaModel::Init_SetZListItems('standard_search', array('ref', 'title', 'start_date', 'status', 'reason', 'requestor_id', 'customer_id', 'workgroup_id', 'creation_date', 'last_update', 'end_date', 'close_date', 'impact', 'agent_id', 'agent_email', 'supervisor_group_id', 'supervisor_id', 'manager_group_id', 'manager_id', 'outage', 'change_request', 'change_log', 'fallback'));
MetaModel::Init_SetZListItems('list', array('title', 'start_date', 'status', 'requestor_id', 'customer_id', 'workgroup_id', 'creation_date', 'last_update', 'end_date', 'close_date', 'impact', 'agent_id', 'agent_email', 'supervisor_group_id', 'supervisor_id', 'manager_group_id', 'manager_id', 'outage', 'change_request', 'change_log', 'fallback'));
MetaModel::Init_OverloadStateAttribute('new', 'acceptance_date', OPT_ATT_HIDDEN);
MetaModel::Init_OverloadStateAttribute('new', 'acceptance_comment', OPT_ATT_HIDDEN);
MetaModel::Init_OverloadStateAttribute('validated', 'acceptance_date', OPT_ATT_MUSTCHANGE);
MetaModel::Init_OverloadStateAttribute('validated', 'acceptance_comment', OPT_ATT_MUSTCHANGE);
MetaModel::Init_OverloadStateAttribute('plannedschedule', 'acceptance_date', OPT_ATT_READONLY);
MetaModel::Init_OverloadStateAttribute('plannedschedule', 'acceptance_comment', OPT_ATT_READONLY);
MetaModel::Init_DefineTransition("new", "ev_validate", array("target_state"=>"validated", "actions"=>array('SetLastUpDate'), "user_restriction"=>null));
MetaModel::Init_DefineTransition("new", "ev_reject", array("target_state"=>"rejected", "actions"=>array('SetLastUpDate'), "user_restriction"=>null));
MetaModel::Init_DefineTransition("rejected", "ev_reopen", array("target_state"=>"new", "actions"=>array('SetLastUpDate'), "user_restriction"=>null));
MetaModel::Init_DefineTransition("validated", "ev_assign", array("target_state"=>"assigned", "actions"=>array('SetLastUpDate'), "user_restriction"=>null));
MetaModel::Init_DefineTransition("assigned", "ev_plan", array("target_state"=>"plannedscheduled", "actions"=>array('SetLastUpDate'), "user_restriction"=>null));
MetaModel::Init_DefineTransition("plannedscheduled", "ev_approve", array("target_state"=>"approved", "actions"=>array('SetLastUpDate'), "user_restriction"=>null));
MetaModel::Init_DefineTransition("plannedscheduled", "ev_notapprove", array("target_state"=>"notapproved", "actions"=>array('SetLastUpDate'), "user_restriction"=>null));
MetaModel::Init_DefineTransition("notapproved", "ev_replan", array("target_state"=>"plannedscheduled", "actions"=>array('SetLastUpDate'), "user_restriction"=>null));
MetaModel::Init_DefineTransition("approved", "ev_implement", array("target_state"=>"implemented", "actions"=>array('SetLastUpDate'), "user_restriction"=>null));
MetaModel::Init_DefineTransition("implemented", "ev_monitor", array("target_state"=>"monitored", "actions"=>array('SetLastUpDate'), "user_restriction"=>null));
MetaModel::Init_DefineTransition("implemented", "ev_finish", array("target_state"=>"closed", "actions"=>array('SetClosureDate','SetLastUpDate'), "user_restriction"=>null));
MetaModel::Init_DefineTransition("monitored", "ev_finish", array("target_state"=>"closed", "actions"=>array('SetClosureDate','SetLastUpDate'), "user_restriction"=>null));
}
}
class EmergencyChange extends ApprovedChange
{
public static function Init()
{
$aParams = array
(
"category" => "bizmodel,searchable,changemgmt",
"key_type" => "autoincrement",
"name_attcode" => "ref",
"state_attcode" => "",
"reconc_keys" => array("ref"),
"db_table" => "change_emergency",
"db_key_field" => "id",
"db_finalclass_field" => "",
"display_template" => "",
);
MetaModel::Init_Params($aParams);
MetaModel::Init_InheritAttributes();
MetaModel::Init_InheritLifecycle();
MetaModel::Init_SetZListItems('details', array('title', 'ticket_log', 'start_date', 'document_list', 'ci_list', 'contact_list', 'status', 'reason', 'requestor_id', 'customer_id', 'workgroup_id', 'creation_date', 'last_update', 'end_date', 'close_date', 'impact', 'agent_id', 'agent_email', 'supervisor_group_id', 'supervisor_id', 'manager_group_id', 'manager_id', 'outage', 'change_request', 'change_log', 'fallback', 'approval_date', 'approval_comment'));
MetaModel::Init_SetZListItems('advanced_search', array('ref', 'title', 'start_date', 'status', 'reason', 'requestor_id', 'customer_id', 'workgroup_id', 'creation_date', 'last_update', 'end_date', 'close_date', 'impact', 'agent_id', 'agent_email', 'supervisor_group_id', 'supervisor_id', 'manager_group_id', 'manager_id', 'outage', 'change_request', 'change_log', 'fallback', 'approval_date', 'approval_comment'));
MetaModel::Init_SetZListItems('standard_search', array('ref', 'title', 'start_date', 'status', 'reason', 'requestor_id', 'customer_id', 'workgroup_id', 'creation_date', 'last_update', 'end_date', 'close_date', 'impact', 'agent_id', 'agent_email', 'supervisor_group_id', 'supervisor_id', 'manager_group_id', 'manager_id', 'outage', 'change_request', 'change_log', 'fallback', 'approval_date', 'approval_comment'));
MetaModel::Init_SetZListItems('list', array('title', 'start_date', 'status', 'requestor_id', 'customer_id', 'workgroup_id', 'creation_date', 'last_update', 'end_date', 'close_date', 'impact', 'agent_id', 'agent_email', 'supervisor_group_id', 'supervisor_id', 'manager_group_id', 'manager_id', 'outage', 'change_request', 'change_log', 'fallback', 'approval_date', 'approval_comment'));
MetaModel::Init_DefineTransition("new", "ev_assign", array("target_state"=>"assigned", "actions"=>array('SetLastUpDate'), "user_restriction"=>null));
MetaModel::Init_DefineTransition("assigned", "ev_plan", array("target_state"=>"plannedscheduled", "actions"=>array('SetLastUpDate'), "user_restriction"=>null));
MetaModel::Init_DefineTransition("plannedscheduled", "ev_approve", array("target_state"=>"approved", "actions"=>array('SetLastUpDate'), "user_restriction"=>null));
MetaModel::Init_DefineTransition("plannedscheduled", "ev_notapprove", array("target_state"=>"notapproved", "actions"=>array('SetLastUpDate'), "user_restriction"=>null));
MetaModel::Init_DefineTransition("notapproved", "ev_replan", array("target_state"=>"plannedscheduled", "actions"=>array('SetLastUpDate'), "user_restriction"=>null));
MetaModel::Init_DefineTransition("approved", "ev_implement", array("target_state"=>"implemented", "actions"=>array('SetLastUpDate'), "user_restriction"=>null));
MetaModel::Init_DefineTransition("implemented", "ev_monitor", array("target_state"=>"monitored", "actions"=>array('SetLastUpDate'), "user_restriction"=>null));
MetaModel::Init_DefineTransition("implemented", "ev_finish", array("target_state"=>"closed", "actions"=>array('SetClosureDate','SetLastUpDate'), "user_restriction"=>null));
MetaModel::Init_DefineTransition("monitored", "ev_finish", array("target_state"=>"closed", "actions"=>array('SetClosureDate','SetLastUpDate'), "user_restriction"=>null));
}
}
$oMyMenuGroup = new MenuGroup('ChangeManagement', 1 /* fRank */);
new OQLMenuNode('Changes', 'SELECT Change', $oMyMenuGroup->GetIndex(), 0 /* fRank */);
new OQLMenuNode('WaitingApproval', 'SELECT ApprovedChange WHERE status IN ("new")', $oMyMenuGroup->GetIndex(), 0 /* fRank */);
new OQLMenuNode('WaitingAcceptance', 'SELECT NormalChange WHERE status IN ("new")', $oMyMenuGroup->GetIndex(), 0 /* fRank */);
?>

View File

@@ -23,6 +23,16 @@
* @license http://www.opensource.org/licenses/gpl-3.0.html LGPL
*/
Dict::Add('EN US', 'English', 'English', array(
'Menu:IncidentManagement' => 'Incidents',
'Menu:Incidents' => 'Incidents',
'Menu:Incidents+' => 'Incidents',
'Menu:ClosedIncidents' => 'Closed incidents',
'Menu:ClosedIncidents+' => 'Closed incidents',
'Menu:OpenedIncidents' => 'Opened incidents',
'Menu:OpenedIncidents+' => 'Opened incidents',
));
// Dictionnay conventions
// Class:<class_name>
// Class:<class_name>+
@@ -33,19 +43,23 @@
// Class:<class_name>/Stimulus:<stimulus_code>
// Class:<class_name>/Stimulus:<stimulus_code>+
//////////////////////////////////////////////////////////////////////
// Classes in 'bizmodel'
//////////////////////////////////////////////////////////////////////
//
// Class: Incident
//
// Dictionnay conventions
// Class:<class_name>
// Class:<class_name>+
// Class:<class_name>/Attribute:<attribute_code>
// Class:<class_name>/Attribute:<attribute_code>+
// Class:<class_name>/Attribute:<attribute_code>/Value:<value>
// Class:<class_name>/Attribute:<attribute_code>/Value:<value>+
// Class:<class_name>/Stimulus:<stimulus_code>
// Class:<class_name>/Stimulus:<stimulus_code>+
Dict::Add('EN US', 'English', 'English', array(
'Class:Incident' => 'Incident',
'Class:Incident+' => '',
'Class:Incident/Stimulus:ev_assign' => 'Assign',
'Class:Incident/Stimulus:ev_assign+' => '',
'Class:Incident/Stimulus:ev_reassign' => 'Reassign',
'Class:Incident/Stimulus:ev_reassign+' => '',
'Class:Incident/Stimulus:ev_timeout' => 'ev_timeout',
'Class:Incident/Stimulus:ev_timeout+' => '',
'Class:Incident/Stimulus:ev_resolve' => 'Mark as resolved',
'Class:Incident/Stimulus:ev_resolve+' => '',
'Class:Incident/Stimulus:ev_close' => 'Close',
'Class:Incident/Stimulus:ev_close+' => '',
));
?>

View File

@@ -23,6 +23,16 @@
* @license http://www.opensource.org/licenses/gpl-3.0.html LGPL
*/
Dict::Add('EN US', 'English', 'English', array(
'Menu:RequestManagement' => 'Helpdesk',
'Menu:UserRequests' => 'All requests',
'Menu:UserRequests+' => 'All requests, whatever their state',
'Menu:ClosedRequests' => 'Closed requests',
'Menu:ClosedRequests+' => 'Closed requests',
'Menu:OpenedRequests' => 'Opened requests',
'Menu:OpenedRequests+' => 'Opened requests',
));
// Dictionnay conventions
// Class:<class_name>
// Class:<class_name>+
@@ -33,19 +43,23 @@
// Class:<class_name>/Stimulus:<stimulus_code>
// Class:<class_name>/Stimulus:<stimulus_code>+
//////////////////////////////////////////////////////////////////////
// Classes in 'bizmodel'
//////////////////////////////////////////////////////////////////////
//
// Class: UserRequest
//
// Dictionnay conventions
// Class:<class_name>
// Class:<class_name>+
// Class:<class_name>/Attribute:<attribute_code>
// Class:<class_name>/Attribute:<attribute_code>+
// Class:<class_name>/Attribute:<attribute_code>/Value:<value>
// Class:<class_name>/Attribute:<attribute_code>/Value:<value>+
// Class:<class_name>/Stimulus:<stimulus_code>
// Class:<class_name>/Stimulus:<stimulus_code>+
Dict::Add('EN US', 'English', 'English', array(
'Class:UserRequest' => 'User Request',
'Class:UserRequest+' => '',
'Class:UserRequest/Stimulus:ev_assign' => 'Assign',
'Class:UserRequest/Stimulus:ev_assign+' => '',
'Class:UserRequest/Stimulus:ev_reassign' => 'Reassign',
'Class:UserRequest/Stimulus:ev_reassign+' => '',
'Class:UserRequest/Stimulus:ev_timeout' => 'ev_timeout',
'Class:UserRequest/Stimulus:ev_timeout+' => '',
'Class:UserRequest/Stimulus:ev_resolve' => 'Mark as resolved',
'Class:UserRequest/Stimulus:ev_resolve+' => '',
'Class:UserRequest/Stimulus:ev_close' => 'Close',
'Class:UserRequest/Stimulus:ev_close+' => '',
));
?>

View File

@@ -33,19 +33,199 @@
// Class:<class_name>/Stimulus:<stimulus_code>
// Class:<class_name>/Stimulus:<stimulus_code>+
//////////////////////////////////////////////////////////////////////
// Classes in 'bizmodel'
//////////////////////////////////////////////////////////////////////
//
// Class: Ticket
//
// Dictionnay conventions
// Class:<class_name>
// Class:<class_name>+
// Class:<class_name>/Attribute:<attribute_code>
// Class:<class_name>/Attribute:<attribute_code>+
// Class:<class_name>/Attribute:<attribute_code>/Value:<value>
// Class:<class_name>/Attribute:<attribute_code>/Value:<value>+
// Class:<class_name>/Stimulus:<stimulus_code>
// Class:<class_name>/Stimulus:<stimulus_code>+
Dict::Add('EN US', 'English', 'English', array(
'Class:Ticket' => 'Ticket',
'Class:Ticket+' => '',
'Class:Ticket/Attribute:ref' => 'Ref',
'Class:Ticket/Attribute:ref+' => '',
'Class:Ticket/Attribute:title' => 'Title',
'Class:Ticket/Attribute:title+' => '',
'Class:Ticket/Attribute:ticket_log' => 'Log',
'Class:Ticket/Attribute:ticket_log+' => '',
'Class:Ticket/Attribute:start_date' => 'Started',
'Class:Ticket/Attribute:start_date+' => '',
'Class:Ticket/Attribute:document_list' => 'Documents',
'Class:Ticket/Attribute:document_list+' => 'Documents related to the ticket',
'Class:Ticket/Attribute:ci_list' => 'CIs',
'Class:Ticket/Attribute:ci_list+' => 'CIs concerned by the incident',
'Class:Ticket/Attribute:contact_list' => 'Contacts',
'Class:Ticket/Attribute:contact_list+' => 'Team and persons involved',
'Class:Ticket/Attribute:finalclass' => 'finalclass',
'Class:Ticket/Attribute:finalclass+' => '',
));
//
// Class: lnkTicketToDoc
//
Dict::Add('EN US', 'English', 'English', array(
'Class:lnkTicketToDoc' => 'lnkTicketToDoc',
'Class:lnkTicketToDoc+' => '',
'Class:lnkTicketToDoc/Attribute:ticket_id' => 'ticket_id',
'Class:lnkTicketToDoc/Attribute:ticket_id+' => '',
'Class:lnkTicketToDoc/Attribute:ticket_ref' => 'Ticket #',
'Class:lnkTicketToDoc/Attribute:ticket_ref+' => '',
'Class:lnkTicketToDoc/Attribute:document_id' => 'Document',
'Class:lnkTicketToDoc/Attribute:document_id+' => '',
'Class:lnkTicketToDoc/Attribute:document_name' => 'Document',
'Class:lnkTicketToDoc/Attribute:document_name+' => '',
));
//
// Class: lnkTicketToContact
//
Dict::Add('EN US', 'English', 'English', array(
'Class:lnkTicketToContact' => 'lnkTicketToContact',
'Class:lnkTicketToContact+' => '',
'Class:lnkTicketToContact/Attribute:ticket_id' => 'ticket_id',
'Class:lnkTicketToContact/Attribute:ticket_id+' => '',
'Class:lnkTicketToContact/Attribute:ticket_ref' => 'Ticket #',
'Class:lnkTicketToContact/Attribute:ticket_ref+' => '',
'Class:lnkTicketToContact/Attribute:contact_id' => 'Contact',
'Class:lnkTicketToContact/Attribute:contact_id+' => '',
'Class:lnkTicketToContact/Attribute:contact_name' => 'Contact',
'Class:lnkTicketToContact/Attribute:contact_name+' => '',
'Class:lnkTicketToContact/Attribute:contact_email' => 'Email',
'Class:lnkTicketToContact/Attribute:contact_email+' => '',
));
//
// Class: lnkTicketToCI
//
Dict::Add('EN US', 'English', 'English', array(
'Class:lnkTicketToCI' => 'lnkTicketToCI',
'Class:lnkTicketToCI+' => '',
'Class:lnkTicketToCI/Attribute:ticket_id' => 'ticket_id',
'Class:lnkTicketToCI/Attribute:ticket_id+' => '',
'Class:lnkTicketToCI/Attribute:ticket_ref' => 'Ticket #',
'Class:lnkTicketToCI/Attribute:ticket_ref+' => '',
'Class:lnkTicketToCI/Attribute:ci_id' => 'CI',
'Class:lnkTicketToCI/Attribute:ci_id+' => '',
'Class:lnkTicketToCI/Attribute:ci_name' => 'CI',
'Class:lnkTicketToCI/Attribute:ci_name+' => '',
'Class:lnkTicketToCI/Attribute:ci_status' => 'CI status',
'Class:lnkTicketToCI/Attribute:ci_status+' => '',
));
//
// Class: ResponseTicket
//
Dict::Add('EN US', 'English', 'English', array(
'Class:ResponseTicket' => 'ResponseTicket',
'Class:ResponseTicket+' => '',
'Class:ResponseTicket/Attribute:status' => 'Status',
'Class:ResponseTicket/Attribute:status+' => '',
'Class:ResponseTicket/Attribute:status/Value:new' => 'New',
'Class:ResponseTicket/Attribute:status/Value:new+' => 'newly opened',
'Class:ResponseTicket/Attribute:status/Value:escalated_tto' => 'Escalation/TTO',
'Class:ResponseTicket/Attribute:status/Value:escalated_tto+' => '',
'Class:ResponseTicket/Attribute:status/Value:assigned' => 'Assigned',
'Class:ResponseTicket/Attribute:status/Value:assigned+' => '',
'Class:ResponseTicket/Attribute:status/Value:escalated_ttr' => 'Escalation/TTR',
'Class:ResponseTicket/Attribute:status/Value:escalated_ttr+' => '',
'Class:ResponseTicket/Attribute:status/Value:resolved' => 'Resolved',
'Class:ResponseTicket/Attribute:status/Value:resolved+' => '',
'Class:ResponseTicket/Attribute:status/Value:closed' => 'Closed',
'Class:ResponseTicket/Attribute:status/Value:closed+' => '',
'Class:ResponseTicket/Attribute:caller_id' => 'Caller',
'Class:ResponseTicket/Attribute:caller_id+' => '',
'Class:ResponseTicket/Attribute:workgroup_name' => 'Workgroup',
'Class:ResponseTicket/Attribute:workgroup_name+' => '',
'Class:ResponseTicket/Attribute:customer_id' => 'Customer',
'Class:ResponseTicket/Attribute:customer_id+' => '',
'Class:ResponseTicket/Attribute:customer_name' => 'Customer',
'Class:ResponseTicket/Attribute:customer_name+' => '',
'Class:ResponseTicket/Attribute:product' => 'Product',
'Class:ResponseTicket/Attribute:product+' => '',
'Class:ResponseTicket/Attribute:impact' => 'Impact',
'Class:ResponseTicket/Attribute:impact+' => '',
'Class:ResponseTicket/Attribute:impact/Value:1' => 'A person',
'Class:ResponseTicket/Attribute:impact/Value:1+' => '',
'Class:ResponseTicket/Attribute:impact/Value:2' => 'A service',
'Class:ResponseTicket/Attribute:impact/Value:2+' => '',
'Class:ResponseTicket/Attribute:impact/Value:3' => 'A department',
'Class:ResponseTicket/Attribute:impact/Value:3+' => '',
'Class:ResponseTicket/Attribute:urgency' => 'urgency',
'Class:ResponseTicket/Attribute:urgency+' => '',
'Class:ResponseTicket/Attribute:urgency/Value:1' => 'Low',
'Class:ResponseTicket/Attribute:urgency/Value:1+' => '',
'Class:ResponseTicket/Attribute:urgency/Value:2' => 'Medium',
'Class:ResponseTicket/Attribute:urgency/Value:2+' => '',
'Class:ResponseTicket/Attribute:urgency/Value:3' => 'High',
'Class:ResponseTicket/Attribute:urgency/Value:3+' => '',
'Class:ResponseTicket/Attribute:priority' => 'priority',
'Class:ResponseTicket/Attribute:priority+' => '',
'Class:ResponseTicket/Attribute:priority/Value:1' => 'Lowest',
'Class:ResponseTicket/Attribute:priority/Value:1+' => '',
'Class:ResponseTicket/Attribute:priority/Value:2' => 'To be done',
'Class:ResponseTicket/Attribute:priority/Value:2+' => '',
'Class:ResponseTicket/Attribute:priority/Value:3' => 'Top priority',
'Class:ResponseTicket/Attribute:priority/Value:3+' => '',
'Class:ResponseTicket/Attribute:workgroup_id' => 'Workgroup',
'Class:ResponseTicket/Attribute:workgroup_id+' => '',
'Class:ResponseTicket/Attribute:agent_id' => 'Agent',
'Class:ResponseTicket/Attribute:agent_id+' => '',
'Class:ResponseTicket/Attribute:agent_name' => 'Agent',
'Class:ResponseTicket/Attribute:agent_name+' => '',
'Class:ResponseTicket/Attribute:agent_email' => 'Agent email',
'Class:ResponseTicket/Attribute:agent_email+' => '',
'Class:ResponseTicket/Attribute:related_change_id' => 'Related change',
'Class:ResponseTicket/Attribute:related_change_id+' => '',
'Class:ResponseTicket/Attribute:related_change_ref' => 'Related change',
'Class:ResponseTicket/Attribute:related_change_ref+' => '',
'Class:ResponseTicket/Attribute:closure_date' => 'Closed',
'Class:ResponseTicket/Attribute:closure_date+' => '',
'Class:ResponseTicket/Attribute:last_update' => 'Last update',
'Class:ResponseTicket/Attribute:last_update+' => '',
'Class:ResponseTicket/Attribute:assignment_date' => 'Assigned',
'Class:ResponseTicket/Attribute:assignment_date+' => '',
'Class:ResponseTicket/Attribute:escalation_deadline' => 'Escalation deadline',
'Class:ResponseTicket/Attribute:escalation_deadline+' => '',
'Class:ResponseTicket/Attribute:closure_deadline' => 'Closure deadline',
'Class:ResponseTicket/Attribute:closure_deadline+' => '',
'Class:ResponseTicket/Attribute:resolution_code' => 'Resoluion code',
'Class:ResponseTicket/Attribute:resolution_code+' => '',
'Class:ResponseTicket/Attribute:resolution_code/Value:couldnotreproduce' => 'Could not be reproduced',
'Class:ResponseTicket/Attribute:resolution_code/Value:couldnotreproduce+' => '',
'Class:ResponseTicket/Attribute:resolution_code/Value:duplicate' => 'Duplicate ticket',
'Class:ResponseTicket/Attribute:resolution_code/Value:duplicate+' => '',
'Class:ResponseTicket/Attribute:resolution_code/Value:fixed' => 'Fixed',
'Class:ResponseTicket/Attribute:resolution_code/Value:fixed+' => '',
'Class:ResponseTicket/Attribute:resolution_code/Value:irrelevant' => 'Irrelevant',
'Class:ResponseTicket/Attribute:resolution_code/Value:irrelevant+' => '',
'Class:ResponseTicket/Attribute:solution' => 'Solution',
'Class:ResponseTicket/Attribute:solution+' => '',
'Class:ResponseTicket/Attribute:user_satisfaction' => 'User satisfaction',
'Class:ResponseTicket/Attribute:user_satisfaction+' => '',
'Class:ResponseTicket/Attribute:user_satisfaction/Value:1' => '1',
'Class:ResponseTicket/Attribute:user_satisfaction/Value:1+' => '1',
'Class:ResponseTicket/Attribute:user_satisfaction/Value:2' => '2',
'Class:ResponseTicket/Attribute:user_satisfaction/Value:2+' => '2',
'Class:ResponseTicket/Attribute:user_satisfaction/Value:3' => '3',
'Class:ResponseTicket/Attribute:user_satisfaction/Value:3+' => '3',
'Class:ResponseTicket/Attribute:user_satisfaction/Value:4' => '4',
'Class:ResponseTicket/Attribute:user_satisfaction/Value:4+' => '4',
'Class:ResponseTicket/Attribute:user_commment' => 'User comment',
'Class:ResponseTicket/Attribute:user_commment+' => '',
'Class:ResponseTicket/Stimulus:ev_assign' => 'Assign',
'Class:ResponseTicket/Stimulus:ev_assign+' => '',
'Class:ResponseTicket/Stimulus:ev_reassign' => 'Reassign',
'Class:ResponseTicket/Stimulus:ev_reassign+' => '',
'Class:ResponseTicket/Stimulus:ev_timeout' => 'ev_timeout',
'Class:ResponseTicket/Stimulus:ev_timeout+' => '',
'Class:ResponseTicket/Stimulus:ev_resolve' => 'Mark a resolved',
'Class:ResponseTicket/Stimulus:ev_resolve+' => '',
'Class:ResponseTicket/Stimulus:ev_close' => 'Close',
'Class:ResponseTicket/Stimulus:ev_close+' => '',
));
?>

View File

@@ -31,8 +31,8 @@ SetupWebPage::AddModule(
// Documentation
//
'doc.manual_setup' => 'aaa',
'doc.more_information' => 'aaa',
'doc.manual_setup' => '',
'doc.more_information' => '',
)
);