# HG changeset patch # User jbe # Date 1381705118 -7200 # Node ID 5f24058af0b89a2f2951cca25310905d13413749 # Parent f7b4457cf1a6239818a7f468951fb592a0f29881 Secondary sorting key for issues in admission phase diff -r f7b4457cf1a6 -r 5f24058af0b8 core.sql --- a/core.sql Mon Oct 14 00:23:04 2013 +0200 +++ b/core.sql Mon Oct 14 00:58:38 2013 +0200 @@ -608,12 +608,14 @@ CREATE TABLE "issue_order" ( "id" INT8 PRIMARY KEY, --REFERENCES "issue" ("id") ON DELETE CASCADE ON UPDATE CASCADE, - "order_in_admission_state" INT4 ); + "order_in_admission_state" INT4, + "max_supporter_count" INT4 ); 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'; COMMENT ON COLUMN "issue_order"."id" IS 'References "issue" ("id") but has no referential integrity trigger associated, due to performance/locking issues'; COMMENT ON COLUMN "issue_order"."order_in_admission_state" IS 'To be used for sorting issues within an area, when showing issues in admission state; NULL values sort last; updated by "lf_update_issue_order"'; +COMMENT ON COLUMN "issue_order"."max_supporter_count" IS 'Secondary sorting key when displaying issues in admission state from different areas'; CREATE TABLE "issue_setting" ( diff -r f7b4457cf1a6 -r 5f24058af0b8 lf_update_issue_order.c --- a/lf_update_issue_order.c Mon Oct 14 00:23:04 2013 +0200 +++ b/lf_update_issue_order.c Mon Oct 14 00:58:38 2013 +0200 @@ -204,7 +204,7 @@ fprintf(stderr, "Could not escape literal in memory.\n"); abort(); } - if (asprintf(&cmd, "INSERT INTO \"issue_order\" (\"id\", \"order_in_admission_state\") VALUES (%s, %i)", escaped_issue_id, candidates[i].seat) < 0) { + if (asprintf(&cmd, "INSERT INTO \"issue_order\" (\"id\", \"order_in_admission_state\", \"max_supporter_count\") SELECT %s, %i, max(\"supporter_count\") FROM \"initiative\" WHERE \"issue_id\" = %s", escaped_issue_id, candidates[i].seat, escaped_issue_id) < 0) { fprintf(stderr, "Could not prepare query string in memory.\n"); abort(); } diff -r f7b4457cf1a6 -r 5f24058af0b8 update/core-update.v2.2.5-v2.2.6.sql --- a/update/core-update.v2.2.5-v2.2.6.sql Mon Oct 14 00:23:04 2013 +0200 +++ b/update/core-update.v2.2.5-v2.2.6.sql Mon Oct 14 00:58:38 2013 +0200 @@ -6,12 +6,14 @@ CREATE TABLE "issue_order" ( "id" INT8 PRIMARY KEY, --REFERENCES "issue" ("id") ON DELETE CASCADE ON UPDATE CASCADE, - "order_in_admission_state" INT4 ); + "order_in_admission_state" INT4, + "max_supporter_count" INT4 ); 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'; COMMENT ON COLUMN "issue_order"."id" IS 'References "issue" ("id") but has no referential integrity trigger associated, due to performance/locking issues'; COMMENT ON COLUMN "issue_order"."order_in_admission_state" IS 'To be used for sorting issues within an area, when showing issues in admission state; NULL values sort last; updated by "lf_update_issue_order"'; +COMMENT ON COLUMN "issue_order"."max_supporter_count" IS 'Secondary sorting key when displaying issues in admission state from different areas'; CREATE VIEW "issue_supporter_in_admission_state" AS SELECT DISTINCT