User name display
If there is a display name, it will be used in all views (task lists, task details, comments). Made a view for task lists, because it was cleaner and because they're all more or less the same anyway.
This commit is contained in:
parent
b37265d0eb
commit
ad4071b4e8
3 changed files with 73 additions and 80 deletions
|
@ -76,3 +76,36 @@ EXCEPTION
|
|||
RETURN 2;
|
||||
END;
|
||||
$update_task$ LANGUAGE plpgsql;
|
||||
|
||||
|
||||
|
||||
--
|
||||
-- Task list view
|
||||
--
|
||||
-- This view contains all fields used to display task lists.
|
||||
--
|
||||
|
||||
DROP VIEW IF EXISTS tasks_list;
|
||||
CREATE VIEW tasks_list
|
||||
AS SELECT t.task_id AS id, t.item_id AS item, t.task_title AS title,
|
||||
t.task_description AS description, t.task_added AS added_at,
|
||||
u1.user_view_name AS added_by,
|
||||
ct.completed_task_time AS completed_at,
|
||||
u2.user_view_name AS completed_by ,
|
||||
t.task_priority AS priority ,
|
||||
bd.bad_deps AS missing_dependencies
|
||||
FROM tasks t
|
||||
INNER JOIN users_view u1 ON u1.user_id = t.user_id
|
||||
LEFT OUTER JOIN completed_tasks ct ON ct.task_id = t.task_id
|
||||
LEFT OUTER JOIN users_view u2 ON u2.user_id = ct.user_id
|
||||
LEFT OUTER JOIN (
|
||||
SELECT td.task_id , COUNT(*) AS bad_deps
|
||||
FROM task_dependencies td
|
||||
LEFT OUTER JOIN completed_tasks dct
|
||||
ON dct.task_id = td.task_id_depends
|
||||
WHERE dct.task_id IS NULL
|
||||
GROUP BY td.task_id
|
||||
) AS bd ON bd.task_id = t.task_id;
|
||||
|
||||
GRANT SELECT ON tasks_list TO :webapp_user;
|
||||
|
||||
|
|
|
@ -23,3 +23,21 @@ $users_add$;
|
|||
|
||||
REVOKE EXECUTE ON FUNCTION users_add( TEXT , TEXT , INT , TEXT , TEXT ) FROM PUBLIC;
|
||||
GRANT EXECUTE ON FUNCTION users_add( TEXT , TEXT , INT , TEXT , TEXT) TO :webapp_user;
|
||||
|
||||
|
||||
|
||||
--
|
||||
-- View that lists users and adds the string to use when displaying
|
||||
--
|
||||
|
||||
DROP VIEW IF EXISTS users_view;
|
||||
CREATE VIEW users_view
|
||||
AS SELECT * , ( CASE
|
||||
WHEN user_display_name IS NULL THEN
|
||||
user_email
|
||||
ELSE
|
||||
user_display_name
|
||||
END ) AS user_view_name
|
||||
FROM users;
|
||||
|
||||
GRANT SELECT ON users_view TO :webapp_user;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue