diff options
author | Robert Haas | 2009-12-03 02:58:44 +0000 |
---|---|---|
committer | Robert Haas | 2009-12-03 02:58:44 +0000 |
commit | 0a2f1259fdb07d68020d0eca5a165825ff73f0b5 (patch) | |
tree | 2c94182699e6f411ee0997debd5c7e115edbe5ff | |
parent | c7a94d40a473938a29609ab80484881b5e553935 (diff) |
Add "Committer" field to patch form.
-rw-r--r-- | etc/audit.sql | 24 | ||||
-rw-r--r-- | etc/table.sql | 2 | ||||
-rw-r--r-- | etc/view.sql | 2 | ||||
-rw-r--r-- | perl-lib/PgCommitFest/Patch.pm | 5 | ||||
-rw-r--r-- | template/patch_form.tt2 | 4 | ||||
-rw-r--r-- | template/patch_view.tt2 | 4 |
6 files changed, 31 insertions, 10 deletions
diff --git a/etc/audit.sql b/etc/audit.sql index 381865e..11acbda 100644 --- a/etc/audit.sql +++ b/etc/audit.sql @@ -19,6 +19,8 @@ CREATE TABLE patch_audit ( ); ALTER TABLE patch_audit ADD COLUMN activity_id INTEGER NOT NULL DEFAULT nextval('activity_seq'); +ALTER TABLE patch_audit ADD COLUMN committer VARCHAR NOT NULL + DEFAULT ''; CREATE OR REPLACE FUNCTION patch_audit() RETURNS trigger AS $$ DECLARE @@ -51,6 +53,9 @@ BEGIN || CASE WHEN OLD.reviewers != NEW.reviewers THEN '{reviewers}'::varchar[] ELSE '{}'::varchar[] END + || CASE WHEN OLD.committer != NEW.committer + THEN '{committer}'::varchar[] + ELSE '{}'::varchar[] END || CASE WHEN OLD.date_closed IS DISTINCT FROM NEW.date_closed THEN '{date_closed}'::varchar[] ELSE '{}'::varchar[] END; @@ -78,18 +83,19 @@ BEGIN END IF; IF (TG_OP = 'INSERT') THEN cf := ARRAY['commitfest_id', 'commitfest_topic_id', 'name', - 'patch_status_id', 'author', 'reviewers', 'date_closed']; + 'patch_status_id', 'author', 'reviewers', + 'committer', 'date_closed']; END IF; INSERT INTO patch_audit (patch_id, change_type, changed_fields, commitfest_id, original_name, to_commitfest_id, commitfest_topic_id, name, - patch_status_id, author, reviewers, date_closed, last_updater, - last_updated_time) + patch_status_id, author, reviewers, committer, date_closed, + last_updater, last_updated_time) VALUES (NEW.id, TG_OP, cf, acid, oname, CASE WHEN cid != acid THEN cid ELSE NULL END, NEW.commitfest_topic_id, NEW.name, NEW.patch_status_id, NEW.author, - NEW.reviewers, NEW.date_closed, NEW.last_updater, + NEW.reviewers, NEW.committer, NEW.date_closed, NEW.last_updater, NEW.last_updated_time); -- For an update that changes the CommitFest, we enter two audit records, -- one under each CommitFest. @@ -98,12 +104,12 @@ BEGIN (patch_id, change_type, changed_fields, commitfest_id, original_name, from_commitfest_id, commitfest_topic_id, name, - patch_status_id, author, reviewers, date_closed, last_updater, - last_updated_time) + patch_status_id, author, reviewers, committer, date_closed, + last_updater, last_updated_time) VALUES (NEW.id, TG_OP, cf, cid, oname, acid, NEW.commitfest_topic_id, NEW.name, NEW.patch_status_id, NEW.author, - NEW.reviewers, NEW.date_closed, NEW.last_updater, + NEW.reviewers, NEW.committer, NEW.date_closed, NEW.last_updater, NEW.last_updated_time); END IF; RETURN NULL; @@ -144,6 +150,10 @@ BEGIN v := v || ('Reviewers = ' || CASE WHEN $1.reviewers = '' THEN 'Nobody' ELSE $1.reviewers END)::varchar; END IF; + IF ('committer' = ANY($1.changed_fields)) THEN + v := v || ('Committer = ' || CASE WHEN $1.committer = '' THEN 'Nobody' + ELSE $1.committer END)::varchar; + END IF; IF ('date_closed' = ANY($1.changed_fields)) THEN v := v || ('Date Closed = ' || COALESCE($1.date_closed::varchar, 'NULL'))::varchar; diff --git a/etc/table.sql b/etc/table.sql index 6ec0862..6490628 100644 --- a/etc/table.sql +++ b/etc/table.sql @@ -63,6 +63,8 @@ ALTER TABLE patch ADD COLUMN last_updater varchar, ADD COLUMN last_updated_time timestamp with time zone not null default now(); +ALTER TABLE patch + ADD COLUMN committer varchar not null default ''; CREATE TABLE patch_comment_type ( id integer not null, diff --git a/etc/view.sql b/etc/view.sql index 9dba135..e141dc7 100644 --- a/etc/view.sql +++ b/etc/view.sql @@ -15,7 +15,7 @@ SELECT v.id, v.commitfest_topic_id, s.name AS commitfest_topic, s.sortorder AS commitfest_topic_sortorder, s.commitfest_id, f.name AS commitfest, v.name, v.patch_status_id, ps.name AS patch_status, v.author, v.reviewers, - v.date_closed, v.creation_time + v.committer, v.date_closed, v.creation_time FROM patch v INNER JOIN commitfest_topic s ON v.commitfest_topic_id = s.id diff --git a/perl-lib/PgCommitFest/Patch.pm b/perl-lib/PgCommitFest/Patch.pm index d22633a..f8c311a 100644 --- a/perl-lib/PgCommitFest/Patch.pm +++ b/perl-lib/PgCommitFest/Patch.pm @@ -74,7 +74,7 @@ sub form { $r->set_title('Edit Patch'); $d = $r->db->select_one(<<EOM, $id); SELECT id, commitfest_topic_id AS commitfest_topic, commitfest_id, name, - patch_status_id AS patch_status, author, reviewers, date_closed + patch_status_id AS patch_status, author, reviewers, committer, date_closed FROM patch_view WHERE id = ? EOM $r->error_exit('Patch not found.') if !defined $d; @@ -113,6 +113,7 @@ SELECT id, name FROM patch_status ORDER BY id EOM $r->add_control('author', 'text', 'Author', 'required' => 1); $r->add_control('reviewers', 'text', 'Reviewers'); + $r->add_control('committer', 'text', 'Committer'); $r->add_control('date_closed', 'date', 'Date Closed'); if (!defined $id) { $r->add_control('message_id', 'text', @@ -172,7 +173,7 @@ sub view { my $id = $r->cgi_id(); my $d = $r->db->select_one(<<EOM, $id) if defined $id; SELECT id, name, commitfest_id, commitfest, commitfest_topic_id, - commitfest_topic, patch_status, author, reviewers, date_closed + commitfest_topic, patch_status, author, reviewers, committer, date_closed FROM patch_view WHERE id = ? EOM $r->error_exit('Patch not found.') if !defined $d; diff --git a/template/patch_form.tt2 b/template/patch_form.tt2 index 91ed836..da3f64b 100644 --- a/template/patch_form.tt2 +++ b/template/patch_form.tt2 @@ -40,6 +40,10 @@ Topics</a> page and add one or more topics.</p> <td class='colFirst'>[% control.reviewers.display_name_html %]</td> <td class='colLast'>[% control.reviewers.render %]</td> </tr> +<tr> + <td class='colFirst'>[% control.committer.display_name_html %]</td> + <td class='colLast'>[% control.committer.render %]</td> +</tr> <tr[% IF id %] class='lastrow'[% END %]> <td class='colFirst'>[% control.date_closed.display_name_html %]</td> <td class='colLast'>[% control.date_closed.render %] (YYYY-MM-DD)</td> diff --git a/template/patch_view.tt2 b/template/patch_view.tt2 index 6448011..26e8b65 100644 --- a/template/patch_view.tt2 +++ b/template/patch_view.tt2 @@ -23,6 +23,10 @@ <td class='colLast'>[% IF d.reviewers != '' %][% d.reviewers | htmlsafe %][% ELSE %]<span class='controlerror'>Nobody</span>[% END %]</td> </tr> <tr> + <td class='colFirst'>Committer</td> + <td class='colLast'>[% IF d.committer != '' %][% d.committer | htmlsafe %][% ELSE %]<span class='controlerror'>Nobody</span>[% END %]</td> +</tr> +<tr> <td class='colFirst'>Close Date</td> <td class='colLast'>[% IF d.date_closed != '' %][% d.date_closed | htmlsafe %][% ELSE %](None)[% END %]</td> </tr> |