liquid_feedback_core
diff core.sql @ 322:fd58f487e1d0
Calculate "harmonc_weight" after all other calculations in an issue (as calculation depends on the "admitted" flag now)
author | jbe |
---|---|
date | Fri Feb 08 19:20:17 2013 +0100 (2013-02-08) |
parents | 48a5036d5eb1 |
children | 4c7a864829b0 |
line diff
1.1 --- a/core.sql Fri Feb 08 18:36:22 2013 +0100 1.2 +++ b/core.sql Fri Feb 08 19:20:17 2013 +0100 1.3 @@ -3773,9 +3773,7 @@ 1.4 ) 1.5 WHERE "suggestion"."id" = "suggestion_id_v"; 1.6 END LOOP; 1.7 - PERFORM "set_harmonic_suggestion_weights"("initiative_id_v"); 1.8 END LOOP; 1.9 - PERFORM "set_harmonic_initiative_weights"("issue_id_p"); 1.10 RETURN; 1.11 END; 1.12 $$; 1.13 @@ -3896,6 +3894,9 @@ 1.14 BEGIN 1.15 PERFORM "create_snapshot"("issue_id_p"); 1.16 PERFORM "freeze_after_snapshot"("issue_id_p"); 1.17 + PERFORM "set_harmonic_initiative_weights"("issue_id_p"); 1.18 + PERFORM "set_harmonic_suggestion_weights"("id") 1.19 + FROM "initiative" WHERE "issue_id" = "issue_id_p"; 1.20 RETURN; 1.21 END; 1.22 $$; 1.23 @@ -4420,8 +4421,9 @@ 1.24 RETURNS VOID 1.25 LANGUAGE 'plpgsql' VOLATILE AS $$ 1.26 DECLARE 1.27 - "issue_row" "issue"%ROWTYPE; 1.28 - "policy_row" "policy"%ROWTYPE; 1.29 + "issue_row" "issue"%ROWTYPE; 1.30 + "policy_row" "policy"%ROWTYPE; 1.31 + "new_snapshot_v" BOOLEAN; 1.32 BEGIN 1.33 PERFORM "lock_issue"("issue_id_p"); 1.34 SELECT * INTO "issue_row" FROM "issue" WHERE "id" = "issue_id_p"; 1.35 @@ -4432,7 +4434,10 @@ 1.36 -- create a snapshot, unless issue is already fully frozen: 1.37 IF "issue_row"."fully_frozen" ISNULL THEN 1.38 PERFORM "create_snapshot"("issue_id_p"); 1.39 + "new_snapshot_v" := TRUE; 1.40 SELECT * INTO "issue_row" FROM "issue" WHERE "id" = "issue_id_p"; 1.41 + ELSE 1.42 + "new_snapshot_v" := FALSE; 1.43 END IF; 1.44 -- eventually close or accept issues, which have not been accepted: 1.45 IF "issue_row"."accepted" ISNULL THEN 1.46 @@ -4540,6 +4545,12 @@ 1.47 -- calculate ranks will not consume much time and can be done now 1.48 PERFORM "calculate_ranks"("issue_id_p"); 1.49 END IF; 1.50 + -- if a new shapshot has been created, then recalculate harmonic weights: 1.51 + IF "new_snapshot_v" THEN 1.52 + PERFORM "set_harmonic_initiative_weights"("issue_id_p"); 1.53 + PERFORM "set_harmonic_suggestion_weights"("id") 1.54 + FROM "initiative" WHERE "issue_id" = "issue_id_p"; 1.55 + END IF; 1.56 END IF; 1.57 RETURN; 1.58 END;