rev |
line source |
jbe@396
|
1 BEGIN;
|
jbe@396
|
2
|
jbe@396
|
3 CREATE OR REPLACE VIEW "liquid_feedback_version" AS
|
jbe@396
|
4 SELECT * FROM (VALUES ('2.2.6', 2, 2, 6))
|
jbe@396
|
5 AS "subquery"("string", "major", "minor", "revision");
|
jbe@396
|
6
|
jbe@398
|
7 CREATE TABLE "issue_order" (
|
jbe@400
|
8 "id" INT8 PRIMARY KEY, --REFERENCES "issue" ("id") ON DELETE CASCADE ON UPDATE CASCADE,
|
jbe@398
|
9 "order_in_admission_state" INT4,
|
jbe@398
|
10 "order_in_open_states" INT4 );
|
jbe@396
|
11
|
jbe@398
|
12 COMMENT ON TABLE "issue_order" IS 'Ordering information for issues that are not stored in the "issue" table to avoid locking of multiple issues at once';
|
jbe@398
|
13
|
jbe@400
|
14 COMMENT ON COLUMN "issue_order"."id" IS 'References "issue" ("id") but has no referential integrity trigger associated, due to performance/locking issues';
|
jbe@398
|
15 COMMENT ON COLUMN "issue_order"."order_in_admission_state" IS 'To be used for sorting issues within an area, when showing only issues in admission state; NULL values sort last; updated by "lf_update_issue_order"';
|
jbe@398
|
16 COMMENT ON COLUMN "issue_order"."order_in_open_states" IS 'To be used for sorting issues within an area, when showing all open issues; NULL values sort last; updated by "lf_update_issue_order"';
|
jbe@396
|
17
|
jbe@396
|
18 CREATE VIEW "issue_supporter_in_admission_state" AS
|
jbe@396
|
19 SELECT DISTINCT
|
jbe@396
|
20 "issue"."area_id",
|
jbe@396
|
21 "issue"."id" AS "issue_id",
|
jbe@396
|
22 "supporter"."member_id",
|
jbe@396
|
23 "direct_interest_snapshot"."weight"
|
jbe@396
|
24 FROM "issue"
|
jbe@396
|
25 JOIN "supporter" ON "supporter"."issue_id" = "issue"."id"
|
jbe@396
|
26 JOIN "direct_interest_snapshot"
|
jbe@396
|
27 ON "direct_interest_snapshot"."issue_id" = "issue"."id"
|
jbe@396
|
28 AND "direct_interest_snapshot"."event" = "issue"."latest_snapshot_event"
|
jbe@396
|
29 AND "direct_interest_snapshot"."member_id" = "supporter"."member_id"
|
jbe@396
|
30 WHERE "issue"."state" = 'admission'::"issue_state";
|
jbe@396
|
31
|
jbe@396
|
32 COMMENT ON VIEW "issue_supporter_in_admission_state" IS 'Helper view for "lf_update_issue_order" to allow a (proportional) ordering of issues within an area';
|
jbe@396
|
33
|
jbe@397
|
34 CREATE VIEW "open_issues_ordered_with_minimum_position" AS
|
jbe@397
|
35 SELECT
|
jbe@397
|
36 "area_id",
|
jbe@397
|
37 "id" AS "issue_id",
|
jbe@397
|
38 "order_in_admission_state" * 2 - 1 AS "minimum_position"
|
jbe@398
|
39 FROM "issue" NATURAL LEFT JOIN "issue_order"
|
jbe@397
|
40 WHERE "closed" ISNULL
|
jbe@397
|
41 ORDER BY
|
jbe@397
|
42 coalesce(
|
jbe@397
|
43 "fully_frozen" + "voting_time",
|
jbe@397
|
44 "half_frozen" + "verification_time",
|
jbe@397
|
45 "accepted" + "discussion_time",
|
jbe@397
|
46 "created" + "admission_time"
|
jbe@397
|
47 ) - now();
|
jbe@397
|
48
|
jbe@397
|
49 COMMENT ON VIEW "open_issues_ordered_with_minimum_position" IS 'Helper view for "lf_update_issue_order" to allow a (mixed) ordering of issues within an area';
|
jbe@397
|
50
|
jbe@396
|
51 COMMIT;
|