drop view news_items_approved; create or replace view news_items_approved as select ci.item_id as item_id, cn.package_id, cr.title as publish_title, cn.lead as publish_lead, cr.content as publish_body, cr.mime_type as publish_format, to_char(cr.publish_date, 'Mon dd, yyyy') as pretty_publish_date, cr.publish_date, ao.creation_user, ps.first_names || ' ' || ps.last_name as item_creator, cn.archive_date::date as archive_date from cr_items ci, cr_revisions cr, cr_news cn, acs_objects ao, persons ps where ci.item_id = cr.item_id and ci.live_revision = cr.revision_id and cr.revision_id = cn.news_id and cr.revision_id = ao.object_id and ao.creation_user = ps.person_id; -- View of all news items in the system -- RAL: for now, changed: -- content.blob_to_string(cr.content) as publish_body, -- to -- cr.content as publish_body -- drop view news_items_live_or_submitted; create or replace view news_items_live_or_submitted as select ci.item_id as item_id, cn.news_id, cn.package_id, cr.publish_date, cn.archive_date, cr.title as publish_title, cn.lead as publish_lead, cr.content as publish_body, cr.mime_type as publish_format, ao.creation_user, ps.first_names || ' ' || ps.last_name as item_creator, ao.creation_date::date as creation_date, ci.live_revision, news__status(cr.publish_date, cn.archive_date) as status from cr_items ci, cr_revisions cr, cr_news cn, acs_objects ao, persons ps where (ci.item_id = cr.item_id and ci.live_revision = cr.revision_id and cr.revision_id = cn.news_id and cr.revision_id = ao.object_id and ao.creation_user = ps.person_id) or (ci.live_revision is null and ci.item_id = cr.item_id and cr.revision_id = content_item__get_latest_revision(ci.item_id) and cr.revision_id = cn.news_id and cr.revision_id = ao.object_id and ao.creation_user = ps.person_id); -- View of unapproved items drop view news_items_unapproved; create or replace view news_items_unapproved as select ci.item_id as item_id, cr.title as publish_title, cn.lead as publish_lead, cn.package_id as package_id, ao.creation_date::date as creation_date, ps.first_names || ' ' || ps.last_name as item_creator from cr_items ci, cr_revisions cr, cr_news cn, acs_objects ao, persons ps where cr.revision_id = ao.object_id and ao.creation_user = ps.person_id and cr.revision_id = content_item__get_live_revision(ci.item_id) and cr.revision_id = cn.news_id and cr.item_id = ci.item_id and cr.publish_date is null; -- One News Item Views -- -- View of all revisions of a news item -- RAL: for now, changed: -- content.blob_to_string(cr.content) as publish_body, -- to -- cr.content as publish_body -- drop view news_item_revisions; create or replace view news_item_revisions as select cr.item_id as item_id, cr.revision_id, ci.live_revision, cr.title as publish_title, cn.lead as publish_lead, cr.content as publish_body, cr.publish_date, cn.archive_date, cr.description as log_entry, cr.mime_type as publish_format, cr.mime_type as mime_type, cn.package_id, ao.creation_date::date as creation_date, news__status(cr.publish_date, cn.archive_date) as status, case when exists (select 1 from cr_revisions cr2 where cr2.revision_id = cn.news_id and cr2.publish_date is null ) then 1 else 0 end as approval_needed_p, ps.first_names || ' ' || ps.last_name as item_creator, ao.creation_user, ao.creation_ip, ci.name as item_name from cr_revisions cr, cr_news cn, cr_items ci, acs_objects ao, persons ps where cr.revision_id = ao.object_id and cr.revision_id = cn.news_id and ci.item_id = cr.item_id and ao.creation_user = ps.person_id; -- View of a submitted news item or active revision in unapproved state drop view news_item_unapproved; create or replace view news_item_unapproved as select cr.revision_id, ci.name as item_name, ps.first_names || ' ' || ps.last_name as item_creator, ao.creation_ip as item_creation_ip, ao.creation_date::date as creation_date from cr_revisions cr, cr_items ci, acs_objects ao, persons ps where ci.item_id = cr.item_id and cr.revision_id = ao.object_id and ao.creation_user = ps.person_id; -- View of a news item as of its active revision -- RAL: for now, changed: -- content.blob_to_string(cr.content) as publish_body, -- to -- cr.content as publish_body -- drop view news_item_full_active; create or replace view news_item_full_active as select ci.item_id as item_id, cn.package_id as package_id, revision_id, cr.title as publish_title, cn.lead as publish_lead, cr.content as publish_body, cr.mime_type as publish_format, cr.publish_date, cn.archive_date, news__status(cr.publish_date, cn.archive_date) as status, ci.name as item_name, ps.person_id as creator_id, ps.first_names || ' ' || ps.last_name as item_creator from cr_items ci, cr_revisions cr, cr_news cn, acs_objects ao, persons ps where cr.item_id = ci.item_id and (cr.revision_id = ci.live_revision or (ci.live_revision is null and cr.revision_id = content_item__get_latest_revision(ci.item_id))) and cr.revision_id = cn.news_id and ci.item_id = ao.object_id and ao.creation_user = ps.person_id;