Skip to content

Commit

Permalink
#0008466: Configuration Option - Close/Freeze Test case version relat…
Browse files Browse the repository at this point in the history
…ions when creating a new test case version
  • Loading branch information
fmancardi committed Nov 11, 2018
1 parent 2e4bb07 commit 038a95b
Show file tree
Hide file tree
Showing 5 changed files with 54 additions and 20 deletions.
15 changes: 9 additions & 6 deletions config.inc.php
Original file line number Diff line number Diff line change
Expand Up @@ -1233,12 +1233,15 @@
$tlCfg->testcase_cfg->freezeTCVRelationsOnNewTCVersion = TRUE;


$tlCfg->testcase_cfg->frozenNotExecutedTCVDelAttachtments = FALSE;
$tlCfg->testcase_cfg->frozenNotExecutedTCVAddAttachtments = FALSE;
$tlCfg->testcase_cfg->frozenNotExecutedTCVAddTCVRel = FALSE;
$tlCfg->testcase_cfg->frozenNotExecutedTCVDelTCVRel = FALSE;
$tlCfg->testcase_cfg->frozenNotExecutedTCVAddREQVLink = FALSE;
$tlCfg->testcase_cfg->frozenNotExecutedTCVDelREQVLink = FALSE;
// Not Already Implemented
//$tlCfg->testcase_cfg->allowAddTCVRelationsOnOldTCVersion = TRUE;

//$tlCfg->testcase_cfg->frozenNotExecutedTCVDelAttachtments = FALSE;
//$tlCfg->testcase_cfg->frozenNotExecutedTCVAddAttachtments = FALSE;
//$tlCfg->testcase_cfg->frozenNotExecutedTCVAddTCVRel = FALSE;
//$tlCfg->testcase_cfg->frozenNotExecutedTCVDelTCVRel = FALSE;
//$tlCfg->testcase_cfg->frozenNotExecutedTCVAddREQVLink = FALSE;
//$tlCfg->testcase_cfg->frozenNotExecutedTCVDelREQVLink = FALSE;



Expand Down
44 changes: 32 additions & 12 deletions gui/templates/testcases/relations.inc.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ TestLink Open Source Project - http://testlink.sourceforge.net/

{lang_get var='rel_labels'
s='relation_id, relation_type, relation_status, relation_project,
relation_set_by, relation_delete, relations, new_relation, by, title_created,
relation_set_by, relation_delete, relations, new_relation, by, title_created,can_not_delete_a_frozen_relation,
in, btn_add, img_title_delete_relation,no_records_found,other_versions,version,
title_test_case,match_count,warning,can_not_edit_frozen_tc,can_not_delete_relation_frozen_tc,
commit_title,current_direct_link,current_testcase,test_case,relation_set_on,this_tcversion,can_not_delete_relation_tcversion_frozen,can_not_delete_relation_related_tcversion_frozen,
Expand Down Expand Up @@ -110,20 +110,40 @@ var pF_delete_relation = delete_relation;
<th><nobr>&nbsp;</nobr></th>
</tr>


{foreach item=rx from=$args_relations.relations}
{$canDel = $args_edit_enabled && $args_frozen_version &&
{$canDel = $args_edit_enabled && ($args_frozen_version == 'no') &&
$rx.related_tcase.is_open &&
$rx.link_status == $smarty.const.LINK_TC_RELATION_OPEN}

{if $args_edit_enabled == 0 ||
$rx.link_status == $smarty.const.LINK_TC_RELATION_OPEN}
{$cannotDelMsg = ''}
{else if $args_frozen_version == "yes"}
{$cannotDelMsg = $rel_labels.can_not_delete_relation_tcversion_frozen}
{else $rx.related_tcase.is_open == 0}
{$cannotDelMsg = $rel_labels.can_not_delete_relation_related_tcversion_frozen}
{/if}

<tr>
<td>
DEBUG
$args_is_latest_tcv => {$args_is_latest_tcv}<br>
$args_edit_enabled => {$args_edit_enabled} <br>
$args_frozen_version => {$args_frozen_version}<br>
$rx.related_tcase.is_open => {$rx.related_tcase.is_open}<br>
$rx.link_status => {$rx.link_status}<br>
{$smarty.const.LINK_TC_RELATION_OPEN}
<br>
canDel? {$canDel}<br>
</td>
</tr>

{if $canDel == 0}
{* Build User Feedback Message *}
{if $args_edit_enabled == 0 ||
$rx.link_status == $smarty.const.LINK_TC_RELATION_OPEN}
{$cannotDelMsg = ''}
{else if $args_frozen_version == "yes"}
{$cannotDelMsg = $rel_labels.can_not_delete_relation_tcversion_frozen}
{else if $rx.related_tcase.is_open == 0}
{$cannotDelMsg = $rel_labels.can_not_delete_relation_related_tcversion_frozen}

{else}
{$cannotDelMsg = $rel_labels.can_not_delete_a_frozen_relation}

{/if}
{/if}
<tr>
<td class="bold"><nobr>{$rx.id} / {$rx.type_localized|escape}</nobr></td>
<td>
Expand Down
1 change: 1 addition & 0 deletions gui/templates/testcases/tcView_viewer.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -511,6 +511,7 @@ function launchInsertStep(step_id)
{if $show_relations}
<br />
{include file="testcases/relations.inc.tpl"
args_is_latest_tcv = $args_testcase.isTheLatest
args_relations = $args_relations
args_frozen_version = $args_frozen_version
args_edit_enabled = $edit_enabled}
Expand Down
13 changes: 11 additions & 2 deletions lib/functions/testcase.class.php
Original file line number Diff line number Diff line change
Expand Up @@ -935,6 +935,7 @@ function show(&$smarty,$guiObj,$identity,$grants,$opt=null) {

// Logic on Current/Latest Test Case Version
$tc_current = $tcvSet[0];
$tc_current['isTheLatest'] = 1;
$currentVersionID = $tc_current['id'];

$io = $idCard;
Expand Down Expand Up @@ -999,13 +1000,16 @@ function show(&$smarty,$guiObj,$identity,$grants,$opt=null) {
// Other versions (if exists)
if(count($tcvSet) > 1) {
$gui->testcase_other_versions[] = array_slice($tcvSet,1);

$target_idx = count($gui->testcase_other_versions) - 1;
$loop2do = count($gui->testcase_other_versions[$target_idx]);

$cfCtx = array('scope' => 'design','tproject_id' => $gui->tproject_id);

$ref = &$gui->testcase_other_versions[$target_idx];
for($qdx=0; $qdx < $loop2do; $qdx++) {

$gui->testcase_other_versions[$target_idx][$qdx]['isTheLatest'] = 0;

$ref[$qdx]['ghost'] =
sprintf(self::GHOSTMASK,$tcvSet[0]['tc_external_id'],
Expand Down Expand Up @@ -1971,11 +1975,15 @@ function create_new_version($id,$user_id,$source_version_id=null, $options=null)
$freezeLinkedRequirements = $freezeLinkOnNewTCVersion &&
$reqTCLinksCfg->freezeBothEndsOnNewTCVersion;

$freezeTCVRelationsOnNewTCVersion =
$this->cfg->testcase->freezeTCVRelationsOnNewTCVersion;

$now = $this->db->db_now();
$opt = array('is_open' => 1,
'freezeLinkedRequirements' => $freezeLinkedRequirements,
'freezeLinkOnNewTCVersion' => $freezeLinkOnNewTCVersion);
'freezeLinkOnNewTCVersion' => $freezeLinkOnNewTCVersion,
'freezeTCVRelationsOnNewTCVersion' =>
$freezeTCVRelationsOnNewTCVersion);

$opt = array_merge($opt,(array)$options);

Expand Down Expand Up @@ -2005,7 +2013,8 @@ function create_new_version($id,$user_id,$source_version_id=null, $options=null)
$this->copy_attachments($source['version_id'],$dest['version_id']);
$this->copyTCVRelations($source['version_id'],$dest['version_id']);

if( $this->cfg->testcase->relations->enable ) {
if( $this->cfg->testcase->relations->enable &&
$freezeTCVRelationsOnNewTCVersion ) {
$oldVerRel = $this->getTCVRelationsRaw($source['version_id']);
if( null != $oldVerRel && count($oldVerRel) > 0 ) {
$i2c = array_keys($oldVerRel);
Expand Down
1 change: 1 addition & 0 deletions locale/en_GB/strings.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3912,4 +3912,5 @@ $TLS_API_TESTPLAN_ID_DOES_NOT_EXIST = 'Test Plan with ID: %s does not exist';
$TLS_API_TESTPLAN_APIKEY_DOES_NOT_EXIST = 'Test Plan with API KEY: %s does not exist';

$TLS_tcvqty_with_kw = 'Quantity of Test Case Versions using this keyword';
$TLS_can_not_delete_a_frozen_relation = 'A Frozen relation can not be deleted';
// ----- END ------------------------------------------------------------------

0 comments on commit 038a95b

Please sign in to comment.