function createCustomFields($isCreateExtIdField = TRUE) { // Mantis customFields types $mType_string = 0; $mType_numeric = 1; $mType_enum = 3; $mType_list = 6; $mType_date = 8; $access_viewer = 10; $access_reporter = 25; $access_manager = 70; // default values, to be updated for each Field $attributes = array(); $attributes["access_level_r"] = $access_viewer; $attributes["access_level_rw"] = $access_reporter; $attributes["require_report"] = 1; $attributes["display_report"] = 1; $attributes["require_update"] = 0; $attributes["display_update"] = 1; $attributes["require_resolved"] = 0; $attributes["display_resolved"] = 0; $attributes["require_closed"] = 0; $attributes["display_closed"] = 0; $attributes["require_report"] = 1; $attributes["display_report"] = 1; $defaultValue = 1; createCustomField(T_("CodevTT_EffortEstim"), $mType_numeric, "customField_effortEstim", $attributes, $defaultValue); $defaultValue = NULL; $possible_values = 'Bug|Task'; createCustomField(T_("CodevTT_Type"), $mType_list, "customField_type", $attributes, $defaultValue, $possible_values); $attributes["require_report"] = 0; $attributes["display_report"] = 1; $defaultValue = 0; $attributes["access_level_r"] = $access_manager; $attributes["access_level_rw"] = $access_manager; createCustomField(T_("CodevTT_Manager EffortEstim"), $mType_numeric, "customField_MgrEffortEstim", $attributes, $defaultValue); $attributes["access_level_r"] = $access_viewer; $attributes["access_level_rw"] = $access_reporter; if ($isCreateExtIdField) { createCustomField(T_("CodevTT_External ID"), $mType_string, "customField_ExtId", $attributes); } createCustomField(T_("CodevTT_Deadline"), $mType_date, "customField_deadLine", $attributes); $attributes["display_report"] = 0; createCustomField(T_("CodevTT_Additional Effort"), $mType_numeric, "customField_addEffort", $attributes); $attributes["require_report"] = 0; $attributes["display_report"] = 0; $attributes["display_closed"] = 1; $attributes["display_resolved"] = 1; createCustomField(T_("CodevTT_Backlog"), $mType_numeric, "customField_backlog", $attributes); $attributes["require_report"] = 0; $attributes["display_report"] = 0; $attributes["require_resolved"] = 0; $attributes["require_closed"] = 0; #createCustomField(T_("CodevTT_Delivery ticket"), $mType_string, "customField_deliveryId", $attributes); // CoDev FDJ custom createCustomField(T_("CodevTT_Delivery Date"), $mType_date, "customField_deliveryDate", $attributes); }
/** * update 0.99.18 to 0.99.19 (DB v9 to DB v10) */ function update_v9_to_v10() { $sqlScriptFilename = '../install/codevtt_update_v9_v10.sql'; if (!file_exists($sqlScriptFilename)) { echo "ERROR: SQL script not found:{$sqlScriptFilename}<br>"; exit; } // the CodevTT_Type field must be created before the DB update echo "- Create CodevTT_Type customField<br>"; $mType_list = 6; $access_viewer = 10; $access_reporter = 25; $attributes = array(); $attributes["access_level_r"] = $access_viewer; $attributes["access_level_rw"] = $access_reporter; $attributes["require_report"] = 1; $attributes["display_report"] = 1; $attributes["require_update"] = 0; $attributes["display_update"] = 1; $attributes["require_resolved"] = 0; $attributes["display_resolved"] = 0; $attributes["require_closed"] = 0; $attributes["display_closed"] = 0; $defaultValue = NULL; $possible_values = 'Bug|Task'; createCustomField("CodevTT_Type", $mType_list, "customField_type", $attributes, $defaultValue, $possible_values); // execute the SQL script // echo "- Execute SQL script:{$sqlScriptFilename}<br>"; $retCode = Tools::execSQLscript2($sqlScriptFilename); if (0 != $retCode) { echo "<span class='error_font'>Could not execSQLscript: {$sqlScriptFilename}</span><br/>"; exit; } echo "<br>SUCCESS: Update 0.99.18 to 0.99.19 (DB v9 to DB v10)<br>"; return TRUE; }
<?php $testSuite->createGroup('Requests / Project Settings / Custom Fields', function ($g) { $manager = createProjectManager(); $project = $manager->project(); $user = $manager->user(); $customField = createCustomField($project); $g->test('List custom fields', function ($t) use($project, $user) { $resp = $t->visit('project_settings_custom_fields', ['routeTokens' => ['pslug' => $project['slug']], 'cookie' => ['traq' => $user['session_hash']]]); $t->assertEquals(200, $resp->status); $t->assertContains('<h1 class="page-header">Custom Fields</h1>', $resp->body); }); $g->test('New custom field', function ($t) use($project, $user) { $resp = $t->visit('project_settings_new_custom_field', ['routeTokens' => ['pslug' => $project['slug']], 'cookie' => ['traq' => $user['session_hash']]]); $t->assertEquals(200, $resp->status); $t->assertContains('<h1 class="page-header">New Custom Field</h1>', $resp->body); }); $g->test('Create text field', function ($t) use($project, $user) { $resp = $t->visit('project_settings_create_custom_field', ['method' => 'POST', 'routeTokens' => ['pslug' => $project['slug']], 'post' => ['name' => 'Text field', 'slug' => 'text-field', 'type' => 'text'], 'cookie' => ['traq' => $user['session_hash']]]); $t->assertRedirectTo($t->generateUrl('project_settings_custom_fields'), $resp); }); $g->test('Edit custom field', function ($t) use($project, $user, $customField) { $resp = $t->visit('project_settings_edit_custom_field', ['routeTokens' => ['pslug' => $project['slug'], 'id' => $customField['id']], 'cookie' => ['traq' => $user['session_hash']]]); $t->assertEquals(200, $resp->status); $t->assertContains('<h1 class="page-header">Edit Custom Field</h1>', $resp->body); }); $g->test('Save custom field', function ($t) use($project, $user, $customField) { $resp = $t->visit('project_settings_save_custom_field', ['routeTokens' => ['pslug' => $project['slug'], 'id' => $customField['id']], 'method' => 'PUT', 'post' => ['type' => 2], 'cookie' => ['traq' => $user['session_hash']]]); $t->assertRedirectTo($t->generateUrl('project_settings_custom_fields'), $resp); }); });