summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorJeremy Kerr <jk@ozlabs.org>2011-03-29 11:58:39 +0800
committerJeremy Kerr <jk@ozlabs.org>2011-04-14 17:24:03 +0800
commit798a73b8bfb41f742e78e481ab9c961556e117b3 (patch)
treec6b89361c98cf6b3d866764eb5b091eee7c8bb71 /lib
parent41f19b6643b44768dc06561c992c04ed6148477d (diff)
downloadpatchwork-798a73b8bfb41f742e78e481ab9c961556e117b3.tar.bz2
patchwork-798a73b8bfb41f742e78e481ab9c961556e117b3.tar.xz
models: Add PatchChangeNotification and record patch state changes
Add a PatchChangeNotification model to keep track of changes to a patch's state. Hook this up to Patch's pre_save signal. Requires a DB schema upgrade. Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
Diffstat (limited to 'lib')
-rw-r--r--lib/sql/grant-all.mysql.sql1
-rw-r--r--lib/sql/grant-all.postgres.sql6
-rw-r--r--lib/sql/migration/011-patch-change-notifications.sql12
3 files changed, 17 insertions, 2 deletions
diff --git a/lib/sql/grant-all.mysql.sql b/lib/sql/grant-all.mysql.sql
index c272e1e..1bff526 100644
--- a/lib/sql/grant-all.mysql.sql
+++ b/lib/sql/grant-all.mysql.sql
@@ -23,6 +23,7 @@ GRANT SELECT, UPDATE, INSERT, DELETE ON patchwork_bundle TO 'www-data'@localhost
GRANT SELECT, UPDATE, INSERT, DELETE ON patchwork_bundle_patches TO 'www-data'@localhost;
GRANT SELECT, UPDATE, INSERT, DELETE ON patchwork_patch TO 'www-data'@localhost;
GRANT SELECT, UPDATE, INSERT, DELETE ON patchwork_emailoptout TO 'www-data'@localhost;
+GRANT SELECT, UPDATE, INSERT, DELETE ON patchwork_patchchangenotification TO 'www-data'@localhost;
-- allow the mail user (in this case, 'nobody') to add patches
GRANT INSERT, SELECT ON patchwork_patch TO 'nobody'@localhost;
diff --git a/lib/sql/grant-all.postgres.sql b/lib/sql/grant-all.postgres.sql
index 9b6c862..72abb57 100644
--- a/lib/sql/grant-all.postgres.sql
+++ b/lib/sql/grant-all.postgres.sql
@@ -23,7 +23,8 @@ GRANT SELECT, UPDATE, INSERT, DELETE ON
patchwork_bundle,
patchwork_bundlepatch,
patchwork_patch,
- patchwork_emailoptout
+ patchwork_emailoptout,
+ patchwork_patchchangenotification
TO "www-data";
GRANT SELECT, UPDATE ON
auth_group_id_seq,
@@ -45,7 +46,8 @@ GRANT SELECT, UPDATE ON
patchwork_state_id_seq,
patchwork_emailconfirmation_id_seq,
patchwork_userprofile_id_seq,
- patchwork_userprofile_maintainer_projects_id_seq
+ patchwork_userprofile_maintainer_projects_id_seq,
+ patchwork_patchchangenotification_id_seq
TO "www-data";
-- allow the mail user (in this case, 'nobody') to add patches
diff --git a/lib/sql/migration/011-patch-change-notifications.sql b/lib/sql/migration/011-patch-change-notifications.sql
new file mode 100644
index 0000000..0a9b9b7
--- /dev/null
+++ b/lib/sql/migration/011-patch-change-notifications.sql
@@ -0,0 +1,12 @@
+BEGIN;
+CREATE TABLE "patchwork_patchchangenotification" (
+ "patch_id" integer NOT NULL PRIMARY KEY REFERENCES "patchwork_patch" ("id") DEFERRABLE INITIALLY DEFERRED,
+ "last_modified" timestamp with time zone NOT NULL,
+ "orig_state_id" integer NOT NULL REFERENCES "patchwork_state" ("id") DEFERRABLE INITIALLY DEFERRED
+)
+;
+ALTER TABLE "patchwork_project" ADD COLUMN
+ "send_notifications" boolean NOT NULL DEFAULT False;
+ALTER TABLE "patchwork_project" ALTER COLUMN
+ "send_notifications" DROP DEFAULT;
+COMMIT;