2 CREATE VIEW activity_vw AS
4 agl.group_id, 'trackeropen'::text AS section, agl.group_artifact_id AS ref_id,
5 a.artifact_id as subref_id, a.summary as description, a.open_date AS activity_date, u.user_id, u.user_name, u.realname
6 FROM artifact_group_list agl JOIN artifact a using (group_artifact_id),
7 users u WHERE u.user_id=a.submitted_by
10 agl.group_id, 'trackerclose'::text AS section, agl.group_artifact_id AS ref_id,
11 a.artifact_id as subref_id, a.summary as description, a.close_date AS activity_date, u.user_id, u.user_name, u.realname
12 FROM artifact_group_list agl JOIN artifact a using (group_artifact_id), users u WHERE u.user_id=a.assigned_to
13 --actually should join against
17 frsp.group_id, 'frsrelease'::text as section,frsp.package_id as ref_id,
18 frsr.release_id as subref_id, frsr.name AS description, frsr.release_date AS activity_date,
19 u.user_id, u.user_name, u.realname FROM frs_package frsp JOIN frs_release frsr USING (package_id), users u WHERE
20 u.user_id=frsr.released_by
23 fgl.group_id, 'forumpost'::text as section,fgl.group_forum_id as ref_id, forum.msg_id
24 as subref_id, forum.subject AS description, forum.post_date AS activity_date, u.user_id,
25 u.user_name, u.realname FROM forum_group_list fgl JOIN forum USING (group_forum_id), users u WHERE
26 u.user_id=forum.posted_by
29 CREATE TABLE group_activity_monitor (
30 group_id int not null CONSTRAINT group_id REFERENCES groups(group_id) ON DELETE CASCADE,
31 user_id int NOT NULL CONSTRAINT userid_fk REFERENCES users(user_id),
33 PRIMARY KEY (group_id,user_id)
36 CREATE RULE groupactivity_userdelete_rule AS ON UPDATE TO USERS DO
37 DELETE FROM group_activity_monitor WHERE user_id =(CASE WHEN NEW.status='D'
38 THEN NEW.user_id ELSE 0 END);