liquid_feedback_core

changeset 21:406090b1ed8e

New snapshot event 'half_freeze' and renamed 'start_of_voting' to 'full_freeze'
author jbe
date Sat Feb 06 03:29:05 2010 +0100 (2010-02-06)
parents 3625d841da90
children 063baac35f79
files core.sql
line diff
     1.1 --- a/core.sql	Sat Feb 06 03:27:32 2010 +0100
     1.2 +++ b/core.sql	Sat Feb 06 03:29:05 2010 +0100
     1.3 @@ -302,9 +302,9 @@
     1.4  COMMENT ON COLUMN "allowed_policy"."default_policy" IS 'One policy per area can be set as default.';
     1.5  
     1.6  
     1.7 -CREATE TYPE "snapshot_event" AS ENUM ('periodic', 'end_of_admission', 'start_of_voting');
     1.8 -
     1.9 -COMMENT ON TYPE "snapshot_event" IS 'Reason for snapshots: ''periodic'' = due to periodic recalculation, ''end_of_admission'' = saved state at end of admission period, ''start_of_voting'' = saved state at end of verification period';
    1.10 +CREATE TYPE "snapshot_event" AS ENUM ('periodic', 'end_of_admission', 'half_freeze', 'full_freeze');
    1.11 +
    1.12 +COMMENT ON TYPE "snapshot_event" IS 'Reason for snapshots: ''periodic'' = due to periodic recalculation, ''end_of_admission'' = saved state at end of admission period, ''half_freeze'' = saved state at end of discussion period, ''full_freeze'' = saved state at end of verification period';
    1.13  
    1.14  
    1.15  CREATE TABLE "issue" (
    1.16 @@ -2314,19 +2314,23 @@
    1.17      "event_p" "snapshot_event" )
    1.18    RETURNS VOID
    1.19    LANGUAGE 'plpgsql' VOLATILE AS $$
    1.20 +    DECLARE
    1.21 +      "event_v" "issue"."latest_snapshot_event"%TYPE;
    1.22      BEGIN
    1.23 +      SELECT "latest_snapshot_event" INTO "event_v" FROM "issue"
    1.24 +        WHERE "id" = "issue_id_p" FOR UPDATE;
    1.25        UPDATE "issue" SET "latest_snapshot_event" = "event_p"
    1.26          WHERE "id" = "issue_id_p";
    1.27        UPDATE "direct_population_snapshot" SET "event" = "event_p"
    1.28 -        WHERE "issue_id" = "issue_id_p" AND "event" = 'periodic';
    1.29 +        WHERE "issue_id" = "issue_id_p" AND "event" = "event_v";
    1.30        UPDATE "delegating_population_snapshot" SET "event" = "event_p"
    1.31 -        WHERE "issue_id" = "issue_id_p" AND "event" = 'periodic';
    1.32 +        WHERE "issue_id" = "issue_id_p" AND "event" = "event_v";
    1.33        UPDATE "direct_interest_snapshot" SET "event" = "event_p"
    1.34 -        WHERE "issue_id" = "issue_id_p" AND "event" = 'periodic';
    1.35 +        WHERE "issue_id" = "issue_id_p" AND "event" = "event_v";
    1.36        UPDATE "delegating_interest_snapshot" SET "event" = "event_p"
    1.37 -        WHERE "issue_id" = "issue_id_p" AND "event" = 'periodic';
    1.38 +        WHERE "issue_id" = "issue_id_p" AND "event" = "event_v";
    1.39        UPDATE "direct_supporter_snapshot" SET "event" = "event_p"
    1.40 -        WHERE "issue_id" = "issue_id_p" AND "event" = 'periodic';
    1.41 +        WHERE "issue_id" = "issue_id_p" AND "event" = "event_v";
    1.42        RETURN;
    1.43      END;
    1.44    $$;
    1.45 @@ -2354,7 +2358,7 @@
    1.46        SELECT * INTO "issue_row" FROM "issue" WHERE "id" = "issue_id_p";
    1.47        SELECT * INTO "policy_row"
    1.48          FROM "policy" WHERE "id" = "issue_row"."policy_id";
    1.49 -      PERFORM "set_snapshot_event"("issue_id_p", 'start_of_voting');
    1.50 +      PERFORM "set_snapshot_event"("issue_id_p", 'full_freeze');
    1.51        UPDATE "issue" SET
    1.52          "accepted"     = coalesce("accepted", now()),
    1.53          "half_frozen"  = coalesce("half_frozen", now()),
    1.54 @@ -2936,6 +2940,7 @@
    1.55                now() >= "issue_row"."accepted" + "policy_row"."discussion_time"
    1.56              )
    1.57            THEN
    1.58 +            PERFORM "set_snapshot_event"("issue_id_p", 'half_freeze');
    1.59              "issue_row"."half_frozen" = now();  -- NOTE: "issue_row" used later
    1.60              UPDATE "issue" SET "half_frozen" = "issue_row"."half_frozen"
    1.61                WHERE "id" = "issue_row"."id";

Impressum / About Us