# HG changeset patch # User jbe # Date 1345461753 -7200 # Node ID 3de42ea02dc2e49f28562d40bdd499caf5390a06 # Parent 86f231bd69061f84299253deeabb03c58550d9d5 No "issue_quorum" for polling policies diff -r 86f231bd6906 -r 3de42ea02dc2 core.sql --- a/core.sql Mon Aug 20 03:28:45 2012 +0200 +++ b/core.sql Mon Aug 20 13:22:33 2012 +0200 @@ -337,8 +337,8 @@ "discussion_time" INTERVAL, "verification_time" INTERVAL, "voting_time" INTERVAL, - "issue_quorum_num" INT4 NOT NULL, - "issue_quorum_den" INT4 NOT NULL, + "issue_quorum_num" INT4, + "issue_quorum_den" INT4, "initiative_quorum_num" INT4 NOT NULL, "initiative_quorum_den" INT4 NOT NULL, "direct_majority_num" INT4 NOT NULL DEFAULT 1, @@ -362,7 +362,10 @@ "verification_time" NOTNULL AND "voting_time" NOTNULL ) OR ( "polling" = TRUE AND "admission_time" ISNULL AND "discussion_time" ISNULL AND - "verification_time" ISNULL AND "voting_time" ISNULL ) ) ); + "verification_time" ISNULL AND "voting_time" ISNULL ) ), + CONSTRAINT "issue_quorum_if_and_only_if_not_polling" CHECK ( + "polling" = "issue_quorum_num" ISNULL AND + "polling" = "issue_quorum_den" ISNULL ) ); CREATE INDEX "policy_active_idx" ON "policy" ("active"); COMMENT ON TABLE "policy" IS 'Policies for a particular proceeding type (timelimits, quorum)'; diff -r 86f231bd6906 -r 3de42ea02dc2 update/core-update.v2.0.11-v2.1.0.sql --- a/update/core-update.v2.0.11-v2.1.0.sql Mon Aug 20 03:28:45 2012 +0200 +++ b/update/core-update.v2.0.11-v2.1.0.sql Mon Aug 20 13:22:33 2012 +0200 @@ -21,6 +21,8 @@ ALTER TABLE "policy" ALTER COLUMN "discussion_time" DROP NOT NULL; ALTER TABLE "policy" ALTER COLUMN "verification_time" DROP NOT NULL; ALTER TABLE "policy" ALTER COLUMN "voting_time" DROP NOT NULL; +ALTER TABLE "policy" ALTER COLUMN "issue_quorum_num" DROP NOT NULL; +ALTER TABLE "policy" ALTER COLUMN "issue_quorum_den" DROP NOT NULL; ALTER TABLE "policy" ADD CONSTRAINT "timing" CHECK ( ( "polling" = FALSE AND "admission_time" NOTNULL AND "discussion_time" NOTNULL AND @@ -31,6 +33,9 @@ ( "polling" = TRUE AND "admission_time" ISNULL AND "discussion_time" ISNULL AND "verification_time" ISNULL AND "voting_time" ISNULL ) ); +ALTER TABLE "policy" ADD CONSTRAINT "issue_quorum_if_and_only_if_not_polling" CHECK ( + "polling" = "issue_quorum_num" ISNULL AND + "polling" = "issue_quorum_den" ISNULL ); COMMENT ON COLUMN "policy"."polling" IS 'TRUE = special policy for non-user-generated issues without issue quorum, where certain initiatives (those having the "polling" flag set) do not need to pass the initiative quorum; "admission_time" MUST be set to NULL, the other timings may be set to NULL altogether, allowing individual timing for those issues'; ALTER TABLE "issue" ALTER COLUMN "admission_time" DROP NOT NULL;