This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "FusionForge".
The branch, master has been updated
via 1f5534ca30bf70ea66eddfa062c8b788ed6051de (commit)
via 62bdc5e05f3907274be20bac949bd172f13b3d34 (commit)
from 670d68828a0eee1931dc5ac50b1aef580e70fd8d (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
https://scm.fusionforge.org/anonscm/gitweb/?p=fusionforge/fusionforge.git;a=commitdiff;h=1f5534ca30bf70ea66eddfa062c8b788ed6051de
commit 1f5534ca30bf70ea66eddfa062c8b788ed6051de
Merge: 670d688 62bdc5e
Author: Franck Villaume <[email protected]>
Date: Fri Jan 20 18:14:31 2017 +0100
Merge remote-tracking branch 'bredt/master'
https://scm.fusionforge.org/anonscm/gitweb/?p=fusionforge/fusionforge.git;a=commitdiff;h=62bdc5e05f3907274be20bac949bd172f13b3d34
commit 62bdc5e05f3907274be20bac949bd172f13b3d34
Author: Stéphane-Eymeric Bredthauer <[email protected]>
Date: Fri Jan 20 14:29:54 2017 +0100
Tracker: fix update efforts after unit definition modification
diff --git a/src/common/tracker/EffortUnit.class.php
b/src/common/tracker/EffortUnit.class.php
index 007d301..3556a4a 100644
--- a/src/common/tracker/EffortUnit.class.php
+++ b/src/common/tracker/EffortUnit.class.php
@@ -319,7 +319,6 @@ class EffortUnit extends FFError {
$this->setError(sprintf(_('Unit name %s already
exist'),$name));
return false;
}
- $old_conversion_factor = $this->getConversionFactor();
db_begin();
if(array_key_exists('user', $importData)){
$user = $importData['user'];
@@ -331,16 +330,24 @@ class EffortUnit extends FFError {
} else {
$time = time();
}
-
+ // get conversion factor for base unit before update
+ $old_factor = $this->getConversionFactorForBaseUnit();
+ // get depenfing units before update
+ $units = array_merge(array($this),
$this->getUnitsDependingOn());
$res = db_query_params('UPDATE effort_unit SET unit_name=$1,
conversion_factor=$2, to_unit=$3, modified_date=$4, modified_by=$5 WHERE
unit_id=$6',
array(htmlspecialchars($name),
$conversion_factor, $to_unit, $time, $user, $this->getID()));
if (!$res || db_affected_rows($res) < 1) {
- $this->setError(_('Error')._(':').' '._('Cannot update
Effort Unit1')._(':').' '.db_error());
+ $this->setError(_('Error')._(':').' '._('Cannot update
Effort Unit')._(':').' '.db_error());
+ db_rollback();
+ return false;
+ }
+ if (!$this->fetchData($this->getID())) {
db_rollback();
return false;
}
- if ($old_conversion_factor != $conversion_factor) {
- $units = array_merge(array($this),
$this->getUnitsDependingOn());
+ // get conversion factor for base unit after update
+ $new_factor = $this->getConversionFactorForBaseUnit();
+ if ($old_factor != $new_factor) {
foreach ($units as $unit) {
$res = db_query_params('WITH t AS (
SELECT data_id
@@ -356,18 +363,36 @@ class EffortUnit extends FFError {
SET
field_data = (CAST(SUBSTRING(field_data FROM \'#"%#"U%\' FOR \'#\') AS
INTEGER)*$4)/$5 || \'U\' || $6
FROM t
WHERE
d.data_id = t.data_id',
-
array(ARTIFACT_EXTRAFIELDTYPE_EFFORT,'%U'.$unit->getID(),
$this->EffortUnitSet->getID(), $conversion_factor, $old_conversion_factor,
$unit->getID()));
+
array(ARTIFACT_EXTRAFIELDTYPE_EFFORT,'%U'.$unit->getID(),
$this->EffortUnitSet->getID(), $new_factor, $old_factor, $unit->getID()));
if (!$res) {
- $this->setError(_('Error')._(':').'
'._('Cannot update Effort Unit2')._(':').' '.db_error());
+ $this->setError(_('Error')._(':').'
'._('Cannot update Effort Unit (artifacts data update)')._(':').' '.db_error());
db_rollback();
+ $this->fetchData($this->getID());
+ return false;
+ }
+ $res = db_query_params('WITH t AS (
+
SELECT default_id
+
FROM artifact_extra_field_default
+
INNER JOIN artifact_extra_field_list USING (extra_field_id)
+
INNER JOIN artifact_group_list USING (group_artifact_id)
+
WHERE
+
field_type = $1 AND
+
default_value like $2 AND
+
unit_set_id = $3
+
)
+ UPDATE
artifact_extra_field_default AS d
+ SET
default_value = (CAST(SUBSTRING(default_value FROM \'#"%#"U%\' FOR \'#\') AS
INTEGER)*$4)/$5 || \'U\' || $6
+ FROM t
+ WHERE
d.default_id = t.default_id',
+
array(ARTIFACT_EXTRAFIELDTYPE_EFFORT,'%U'.$unit->getID(),
$this->EffortUnitSet->getID(), $new_factor, $old_factor, $unit->getID()));
+ if (!$res) {
+ $this->setError(_('Error')._(':').'
'._('Cannot update Effort Unit (default value update)')._(':').' '.db_error());
+ db_rollback();
+ $this->fetchData($this->getID());
return false;
}
}
}
- if (!$this->fetchData($this->getID())) {
- db_rollback();
- return false;
- }
db_commit();
return true;
}
-----------------------------------------------------------------------
Summary of changes:
src/common/tracker/EffortUnit.class.php | 47 +++++++++++++++++++++++++--------
1 file changed, 36 insertions(+), 11 deletions(-)
hooks/post-receive
--
FusionForge
_______________________________________________
Fusionforge-commits mailing list
[email protected]
http://lists.fusionforge.org/cgi-bin/mailman/listinfo/fusionforge-commits