Index: openacs-4/packages/bug-tracker/tcl/bug-procs-oracle.xql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/bug-tracker/tcl/bug-procs-oracle.xql,v
diff -u -r1.10 -r1.11
--- openacs-4/packages/bug-tracker/tcl/bug-procs-oracle.xql	6 Jul 2016 09:01:02 -0000	1.10
+++ openacs-4/packages/bug-tracker/tcl/bug-procs-oracle.xql	23 Nov 2017 16:41:46 -0000	1.11
@@ -3,29 +3,8 @@
 <queryset>
    <rdbms><type>oracle</type><version>8.1.6</version></rdbms>
 
-  <fullquery name="bug_tracker::bug::get.select_bug_data">
-    <querytext>
-      select b.bug_id,
-             b.project_id,
-             b.bug_number,
-             b.summary,
-             b.component_id,
-             b.creation_date,
-             to_char(b.creation_date, 'YYYY-MM-DD HH24:MI:SS') as creation_date_pretty,
-             b.resolution,
-             b.user_agent,
-             b.found_in_version,
-             b.found_in_version,
-             b.fix_for_version,
-             b.fixed_in_version,
-             to_char(sysdate, 'YYYY-MM-DD HH24:MI:SS') as now_pretty
-      from   bt_bugs b
-      where  b.bug_id = :bug_id
-    </querytext>
-  </fullquery>
-
-  <fullquery name="bug_tracker::bug::update.update_bug">
-    <querytext>
+   <fullquery name="bug_tracker::bug::update.update_bug">
+     <querytext>
         begin
             :1 := bt_bug_revision.new (
                 bug_revision_id =>  null,
@@ -42,210 +21,30 @@
                 creation_ip =>      :creation_ip
             );
         end;
-    </querytext>
-  </fullquery>
+     </querytext>
+   </fullquery>
 
-  <fullquery name="bug_tracker::bug::insert.select_sysdate">
-    <querytext>
-        select sysdate from dual
-    </querytext>
-  </fullquery>
-
-
-<fullquery name="bug_tracker::bug::delete.delete_bug_case">
-    <querytext> 
+   <fullquery name="bug_tracker::bug::delete.delete_bug_case">
+     <querytext> 
         begin
              workflow_case_pkg.delete(:case_id);
         end;
-    </querytext>
-</fullquery>
+     </querytext>
+   </fullquery>
  
-<fullquery name="bug_tracker::bug::delete.delete_notification">
-    <querytext>
-        begin
-             notification.delete(:notification_id);
-        end;
-    </querytext>
-</fullquery>
-
-<fullquery name="bug_tracker::bug::delete.delete_cr_item">
-    <querytext>
-        begin
-             content_item.delete(:bug_id);
-        end;
-    </querytext>
-</fullquery>
-
-  <partialquery name="bug_tracker::bug::get_list.category_where_clause">
-      <querytext>
+   <partialquery name="bug_tracker::bug::get_list.category_where_clause">
+     <querytext>
          content_keyword.is_assigned(b.bug_id, :f_category_$parent_id, 'none') = 't'
-      </querytext>
-  </partialquery>
+     </querytext>
+   </partialquery>
 
-
-  <partialquery name="bug_tracker::bug::get_query.orderby_category_from_bug_clause">
-      <querytext>
-         , cr_item_keyword_map km_order,
-         cr_keywords kw_order
-      </querytext>
-  </partialquery>
- 
-  <partialquery name="bug_tracker::bug::get_query.orderby_category_where_clause">
-      <querytext>
-           and km_order.item_id (+) = b.bug_id
-           and km_order.keyword_id = kw_order.keyword_id 
-           and kw_order.parent_id = '[db_quote $orderby_parent_id]'
-      </querytext>
-  </partialquery>
-
-<!-- bd: the inline view assign_info returns names
-     of assignees as well as pretty_names of assigned actions.
-     I'm left-outer-joining against this view.
-
-     WARNING: In the query below I assume there can be at most one
-     person assigned to a bug.  If more people are assigned you will get
-     multiple rows per bug in the result set.  Current bug tracker
-     doesn't have UI for creating such conditions. If you add UI that
-     allows user to break this assumption you'll also need to deal with
-     this.
--->
-<fullquery name="bug_tracker::bug::get_query.bugs_pagination">
-  <querytext>
-    select b.bug_id,
-         b.project_id,
-         b.bug_number,
-         b.summary,
-         lower(b.summary) as lower_summary,
-         b.comment_content,
-         b.comment_format,
-         b.component_id,
-         b.creation_date,
-         to_char(b.creation_date, 'YYYY-MM-DD HH24:MI:SS') as creation_date_pretty,
-         b.creation_user as submitter_user_id,
-         submitter.first_names as submitter_first_names,
-         submitter.last_name as submitter_last_name,
-         submitter.email as submitter_email,
-         lower(submitter.first_names) as lower_submitter_first_names,
-         lower(submitter.last_name) as lower_submitter_last_name,
-         lower(submitter.email) as lower_submitter_email,
-         st.pretty_name as pretty_state,
-         st.short_name as state_short_name,
-         st.state_id,
-         st.hide_fields,
-         b.resolution,
-         b.found_in_version,
-         b.fix_for_version,
-         b.fixed_in_version,
-         cas.case_id
-         $more_columns
-    from $from_bug_clause,
-         acs_users_all submitter,
-         workflow_cases cas,
-         workflow_case_fsm cfsm,
-         workflow_fsm_states st 
-    where submitter.user_id = b.creation_user
-      and cas.workflow_id = :workflow_id
-      and cas.object_id = b.bug_id
-      and cfsm.case_id = cas.case_id
-      and cfsm.parent_enabled_action_id is null
-      and st.state_id = cfsm.current_state 
-    $orderby_category_where_clause
-    [template::list::filter_where_clauses -and -name "bugs"]
-    [template::list::orderby_clause -orderby -name "bugs"]
-  </querytext>
-</fullquery>
-
-<fullquery name="bug_tracker::bug::get_query.bugs">
-  <querytext>
-select q.*,
-       km.keyword_id,
-       assign_info.*
-from (
-  select b.bug_id,
-         b.project_id,
-         b.bug_number,
-         b.summary,
-         lower(b.summary) as lower_summary,
-         b.comment_content,
-         b.comment_format,
-         b.component_id,
-         b.creation_date,
-         to_char(b.creation_date, 'YYYY-MM-DD HH24:MI:SS') as creation_date_pretty,
-         b.creation_user as submitter_user_id,
-         submitter.first_names as submitter_first_names,
-         submitter.last_name as submitter_last_name,
-         submitter.email as submitter_email,
-         lower(submitter.first_names) as lower_submitter_first_names,
-         lower(submitter.last_name) as lower_submitter_last_name,
-         lower(submitter.email) as lower_submitter_email,
-         st.pretty_name as pretty_state,
-         st.short_name as state_short_name,
-         st.state_id,
-         st.hide_fields,
-         b.resolution,
-         b.found_in_version,
-         b.fix_for_version,
-         b.fixed_in_version,
-         cas.case_id
-         $more_columns
-    from $from_bug_clause,
-         acs_users_all submitter,
-         workflow_cases cas,
-         workflow_case_fsm cfsm,
-         workflow_fsm_states st 
-   where submitter.user_id = b.creation_user
-     and cas.workflow_id = :workflow_id
-     and cas.object_id = b.bug_id
-     and cfsm.case_id = cas.case_id
-     and cfsm.parent_enabled_action_id is null
-     and st.state_id = cfsm.current_state 
-   $orderby_category_where_clause
-   [template::list::page_where_clause -and -name bugs -key bug_id]
-) q,
-  cr_item_keyword_map km,
-  (select cru.user_id as assigned_user_id,
-          aa.action_id,
-          aa.case_id,
-          wa.pretty_name as action_pretty_name,
-          p.first_names as assignee_first_names,
-          p.last_name as assignee_last_name
-     from workflow_case_assigned_actions aa,
-          workflow_case_role_user_map cru,
-          workflow_actions wa,
-          persons p
-    where aa.case_id = cru.case_id
-      and aa.role_id = cru.role_id
-      and cru.user_id = p.person_id
-      and wa.action_id = aa.action_id
-  ) assign_info
-where q.bug_id = km.item_id (+)
-  and q.case_id = assign_info.case_id (+)
-[template::list::orderby_clause -orderby -name "bugs"]
-
-  </querytext>
-</fullquery>
-
-  <partialquery name="bug_tracker::bug::get_list.filter_assignee_null_where_clause">
-      <querytext>
-          exists (select 1
-                  from   workflow_case_assigned_actions aa,
-                         workflow_case_role_party_map wcrpm
-                  where  aa.case_id = cas.case_id
-                  and    aa.action_id = $action_id
-                  and    wcrpm.case_id (+) = aa.case_id
-                  and    wcrpm.role_id (+) = aa.role_id
-                  and    wcrpm.party_id is null
-                 )
-      </querytext>
-  </partialquery>
-
-  <partialquery name="bug_tracker::user_bugs_only_where_clause.user_bugs_only">
-      <querytext>
+   <partialquery name="bug_tracker::user_bugs_only_where_clause.user_bugs_only">
+     <querytext>
        and exists (select 1
                      from acs_object_party_privilege_map
                     where object_id = b.bug_id
                       and party_id = :user_id
                       and privilege = 'read')
-      </querytext>
-  </partialquery>
+     </querytext>
+   </partialquery>
 </queryset>
Index: openacs-4/packages/bug-tracker/tcl/bug-procs-postgresql.xql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/bug-tracker/tcl/bug-procs-postgresql.xql,v
diff -u -r1.14 -r1.15
--- openacs-4/packages/bug-tracker/tcl/bug-procs-postgresql.xql	6 Jul 2016 09:01:02 -0000	1.14
+++ openacs-4/packages/bug-tracker/tcl/bug-procs-postgresql.xql	23 Nov 2017 16:41:46 -0000	1.15
@@ -1,29 +1,8 @@
 <?xml version="1.0"?>
 
 <queryset>
-   <rdbms><type>postgresql</type><version>7.1</version></rdbms>
+  <rdbms><type>postgresql</type><version>7.1</version></rdbms>
 
-  <fullquery name="bug_tracker::bug::get.select_bug_data">
-    <querytext>
-      select b.bug_id,
-             b.project_id,
-             b.bug_number,
-             b.summary,
-             b.component_id,
-             to_char(b.creation_date,'YYYY-MM-DD HH24:MI:SS') as creation_date,
-             to_char(b.creation_date, 'YYYY-MM-DD HH24:MI:SS') as creation_date_pretty,
-             b.resolution,
-             b.user_agent,
-             b.found_in_version,
-             b.found_in_version,
-             b.fix_for_version,
-             b.fixed_in_version,
-             to_char(now(), 'YYYY-MM-DD HH24:MI:SS') as now_pretty
-      from   bt_bugs b
-      where  b.bug_id = :bug_id
-    </querytext>
-  </fullquery>
-
   <fullquery name="bug_tracker::bug::update.update_bug">
     <querytext>
         select bt_bug_revision__new (
@@ -43,197 +22,22 @@
     </querytext>
   </fullquery>
 
-  <fullquery name="bug_tracker::bug::insert.select_sysdate">
-    <querytext>
-        select current_timestamp
-    </querytext>
-  </fullquery>
-
-
-<fullquery name="bug_tracker::bug::delete.delete_bug_case">
+  <fullquery name="bug_tracker::bug::delete.delete_bug_case">
     <querytext> 
-        select workflow_case_pkg__delete(:case_id);
+      select workflow_case_pkg__delete(:case_id);
     </querytext>
-</fullquery>
+  </fullquery>
  
-<fullquery name="bug_tracker::bug::delete.delete_notification">
+  <partialquery name="bug_tracker::bug::get_list.category_where_clause">
     <querytext>
-        select notification__delete(:notification_id);
+      content_keyword__is_assigned(b.bug_id, :f_category_$parent_id, 'none') = 't'
     </querytext>
-</fullquery>
-
-<fullquery name="bug_tracker::bug::delete.delete_cr_item">
-    <querytext>
-        select content_item__delete(:bug_id);
-    </querytext>
-</fullquery>
-
-  <partialquery name="bug_tracker::bug::get_list.category_where_clause">
-      <querytext>
-         content_keyword__is_assigned(b.bug_id, :f_category_$parent_id, 'none') = 't'
-      </querytext>
   </partialquery>
 
-  <partialquery name="bug_tracker::bug::get_query.orderby_category_from_bug_clause">
-      <querytext>
-         left outer join cr_item_keyword_map km_order on (km_order.item_id = b.bug_id) 
-         join cr_keywords kw_order on (km_order.keyword_id = kw_order.keyword_id and kw_order.parent_id = '[db_quote $orderby_parent_id]')
-      </querytext>
-  </partialquery>
- 
-  <partialquery name="bug_tracker::bug::get_query.orderby_category_where_clause">
-      <querytext>
-      </querytext>
-  </partialquery>
-
-<!-- bd: the inline view assign_info returns names
-     of assignees as well as pretty_names of assigned actions.
-     I'm left-outer-joining against this view.
-
-     WARNING: In the query below I assume there can be at most one
-     person assigned to a bug.  If more people are assigned you will get
-     multiple rows per bug in the result set.  Current bug tracker
-     doesn't have UI for creating such conditions. If you add UI that
-     allows user to break this assumption you'll also need to deal with
-     this.
--->
-<fullquery name="bug_tracker::bug::get_query.bugs_pagination">
-  <querytext>
-    select b.bug_id,
-           b.project_id,
-           b.bug_number,
-           b.summary,
-           lower(b.summary) as lower_summary,
-           b.comment_content,
-           b.comment_format,
-           b.component_id,
-           b.creation_date,
-           to_char(b.creation_date, 'YYYY-MM-DD HH24:MI:SS') as creation_date_pretty,
-           b.creation_user as submitter_user_id,
-           submitter.first_names as submitter_first_names,
-           submitter.last_name as submitter_last_name,
-           submitter.email as submitter_email,
-           lower(submitter.first_names) as lower_submitter_first_names,
-           lower(submitter.last_name) as lower_submitter_last_name,
-           lower(submitter.email) as lower_submitter_email,
-           st.pretty_name as pretty_state,
-           st.short_name as state_short_name,
-           st.state_id,
-           st.hide_fields,
-           b.resolution,
-           b.found_in_version,
-           b.fix_for_version,
-           b.fixed_in_version,
-           cas.case_id
-           $more_columns
-    from $from_bug_clause,
-         acs_users_all submitter,
-         workflow_cases cas,
-         workflow_case_fsm cfsm,
-         workflow_fsm_states st 
-    where submitter.user_id = b.creation_user
-      and cas.workflow_id = :workflow_id
-      and cas.object_id = b.bug_id
-      and cfsm.case_id = cas.case_id
-      and cfsm.parent_enabled_action_id is null
-      and st.state_id = cfsm.current_state 
-      $orderby_category_where_clause
-      [bug_tracker::user_bugs_only_where_clause]
-    [template::list::filter_where_clauses -and -name "bugs"]
-    [template::list::orderby_clause -orderby -name "bugs"]
-  </querytext>
-</fullquery>
-
-<fullquery name="bug_tracker::bug::get_query.bugs">
-  <querytext>
-select q.*,
-       km.keyword_id,
-       assign_info.*
-from (
-  select b.bug_id,
-         b.project_id,
-         b.bug_number,
-         b.summary,
-         lower(b.summary) as lower_summary,
-         b.comment_content,
-         b.comment_format,
-         b.component_id,
-         to_char(b.creation_date,'YYYY-MM-DD HH24:MI:SS') as creation_date,
-         to_char(b.creation_date, 'YYYY-MM-DD HH24:MI:SS') as creation_date_pretty,
-         b.creation_user as submitter_user_id,
-         submitter.first_names as submitter_first_names,
-         submitter.last_name as submitter_last_name,
-         submitter.email as submitter_email,
-         lower(submitter.first_names) as lower_submitter_first_names,
-         lower(submitter.last_name) as lower_submitter_last_name,
-         lower(submitter.email) as lower_submitter_email,
-         st.pretty_name as pretty_state,
-         st.short_name as state_short_name,
-         st.state_id,
-         st.hide_fields,
-         b.resolution,
-         b.found_in_version,
-         b.fix_for_version,
-         b.fixed_in_version,
-         cas.case_id
-         $more_columns
-    from $from_bug_clause,
-         acs_users_all submitter,
-         workflow_cases cas,
-         workflow_case_fsm cfsm,
-         workflow_fsm_states st 
-   where submitter.user_id = b.creation_user
-     and cas.workflow_id = :workflow_id
-     and cas.object_id = b.bug_id
-     and cfsm.case_id = cas.case_id
-     and cfsm.parent_enabled_action_id is null
-     and st.state_id = cfsm.current_state
-   [template::list::filter_where_clauses -and -name "bugs"]
-   $orderby_category_where_clause   
-   [bug_tracker::user_bugs_only_where_clause]
-   [template::list::page_where_clause -and -name bugs -key bug_id]
-) q
-left outer join
-  cr_item_keyword_map km
-on (bug_id = km.item_id)
-left outer join
-  (select cru.user_id as assigned_user_id,
-          aa.action_id,
-          aa.case_id,
-          wa.pretty_name as action_pretty_name,
-          p.first_names as assignee_first_names,
-          p.last_name as assignee_last_name
-     from workflow_case_assigned_actions aa,
-          workflow_case_role_user_map cru,
-          workflow_actions wa,
-	  persons p
-    where aa.case_id = cru.case_id
-      and aa.role_id = cru.role_id
-      and cru.user_id = p.person_id
-      and wa.action_id = aa.action_id
-  ) assign_info
-on (q.case_id = assign_info.case_id)
-   [template::list::orderby_clause -orderby -name "bugs"]
-  </querytext>
-</fullquery>
-
-  <partialquery name="bug_tracker::bug::get_list.filter_assignee_null_where_clause">
-      <querytext>
-          exists (select 1
-                  from workflow_case_assigned_actions aa left outer join
-                    workflow_case_role_party_map wcrpm
-                      on (wcrpm.case_id = aa.case_id and wcrpm.role_id = aa.role_id)
-                  where aa.case_id = cas.case_id
-                    and aa.action_id = $action_id
-                    and wcrpm.party_id is null
-                 )
-      </querytext>
-  </partialquery>
-
   <partialquery name="bug_tracker::user_bugs_only_where_clause.user_bugs_only">
     <querytext>
-       and acs_permission__permission_p(b.bug_id, :user_id, 'read')
-      </querytext>
+      and acs_permission__permission_p(b.bug_id, :user_id, 'read')
+    </querytext>
   </partialquery>
   
 </queryset>
Index: openacs-4/packages/bug-tracker/tcl/bug-procs.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/bug-tracker/tcl/bug-procs.tcl,v
diff -u -r1.36 -r1.37
--- openacs-4/packages/bug-tracker/tcl/bug-procs.tcl	17 Aug 2016 11:25:04 -0000	1.36
+++ openacs-4/packages/bug-tracker/tcl/bug-procs.tcl	23 Nov 2017 16:41:46 -0000	1.37
@@ -323,12 +323,8 @@
 
     set case_id [db_string get_case_id {}]
     db_exec_plsql delete_bug_case {}
-    set notifications [db_list get_notifications {}]
-    foreach notification_id $notifications {
-        db_exec_plsql delete_notification {}
-    }
-    db_dml unset_revisions {}
-    db_exec_plsql delete_cr_item {}
+
+    content::item::delete -item_id $bug_id
 }
 
 
@@ -996,14 +992,12 @@
 
     # Needed to handle ordering by categories
     set from_bug_clause "bt_bugs b"
-    set orderby_category_where_clause {}
     
     # Lars: This is a little hack because we actually need to alter the query to sort by category
     # but list builder currently doesn't support that.
 
     if { [info exists orderby] && [regexp {^category_(.*),.*$} $orderby match orderby_parent_id] } {
         append from_bug_clause [db_map orderby_category_from_bug_clause]
-        set orderby_category_where_clause [db_map orderby_category_where_clause]
 
         # Branimir: The ORDER BY clause needs to be at the very end of the
         # query. That also means that we need to have in the select list every
Index: openacs-4/packages/bug-tracker/tcl/bug-procs.xql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/bug-tracker/tcl/bug-procs.xql,v
diff -u -r1.7 -r1.8
--- openacs-4/packages/bug-tracker/tcl/bug-procs.xql	29 Jun 2008 01:05:36 -0000	1.7
+++ openacs-4/packages/bug-tracker/tcl/bug-procs.xql	23 Nov 2017 16:41:46 -0000	1.8
@@ -1,33 +1,193 @@
 <?xml version="1.0"?>
 <queryset>
 
-<fullquery name="bug_tracker::bug::cache_flush.get_project_id">
+<fullquery name="bug_tracker::bug::get.select_bug_data">
     <querytext>
-      select project_id from bt_bugs where bug_id = :bug_id
+      select b.bug_id,
+             b.project_id,
+             b.bug_number,
+             b.summary,
+             b.component_id,
+             to_char(b.creation_date,'YYYY-MM-DD HH24:MI:SS') as creation_date,
+             to_char(b.creation_date, 'YYYY-MM-DD HH24:MI:SS') as creation_date_pretty,
+             b.resolution,
+             b.user_agent,
+             b.found_in_version,
+             b.found_in_version,
+             b.fix_for_version,
+             b.fixed_in_version,
+             to_char(current_timestamp, 'YYYY-MM-DD HH24:MI:SS') as now_pretty
+      from   bt_bugs b
+      where  b.bug_id = :bug_id
     </querytext>
 </fullquery>
 
-<fullquery name="bug_tracker::bug::delete.get_case_id">
+<fullquery name="bug_tracker::bug::insert.select_sysdate">
     <querytext>
-        select case_id
-        from   workflow_cases
-        where  object_id = :bug_id
+        select current_timestamp from dual
     </querytext>
 </fullquery>
 
-<fullquery name="bug_tracker::bug::delete.get_notifications">
+<partialquery name="bug_tracker::bug::get_query.orderby_category_from_bug_clause">
+  <querytext>
+         left outer join cr_item_keyword_map km_order on (km_order.item_id = b.bug_id) 
+         join cr_keywords kw_order on (km_order.keyword_id = kw_order.keyword_id and kw_order.parent_id = '[db_quote $orderby_parent_id]')
+  </querytext>
+</partialquery>
+ 
+<!-- bd: the inline view assign_info returns names
+     of assignees as well as pretty_names of assigned actions.
+     I'm left-outer-joining against this view.
+
+     WARNING: In the query below I assume there can be at most one
+     person assigned to a bug.  If more people are assigned you will get
+     multiple rows per bug in the result set.  Current bug tracker
+     doesn't have UI for creating such conditions. If you add UI that
+     allows user to break this assumption you'll also need to deal with
+     this.
+-->
+<fullquery name="bug_tracker::bug::get_query.bugs_pagination">
+  <querytext>
+    select b.bug_id,
+           b.project_id,
+           b.bug_number,
+           b.summary,
+           lower(b.summary) as lower_summary,
+           b.comment_content,
+           b.comment_format,
+           b.component_id,
+           b.creation_date,
+           to_char(b.creation_date, 'YYYY-MM-DD HH24:MI:SS') as creation_date_pretty,
+           b.creation_user as submitter_user_id,
+           submitter.first_names as submitter_first_names,
+           submitter.last_name as submitter_last_name,
+           submitter.email as submitter_email,
+           lower(submitter.first_names) as lower_submitter_first_names,
+           lower(submitter.last_name) as lower_submitter_last_name,
+           lower(submitter.email) as lower_submitter_email,
+           st.pretty_name as pretty_state,
+           st.short_name as state_short_name,
+           st.state_id,
+           st.hide_fields,
+           b.resolution,
+           b.found_in_version,
+           b.fix_for_version,
+           b.fixed_in_version,
+           cas.case_id
+           $more_columns
+    from $from_bug_clause,
+         acs_users_all submitter,
+         workflow_cases cas,
+         workflow_case_fsm cfsm,
+         workflow_fsm_states st 
+    where submitter.user_id = b.creation_user
+      and cas.workflow_id = :workflow_id
+      and cas.object_id = b.bug_id
+      and cfsm.case_id = cas.case_id
+      and cfsm.parent_enabled_action_id is null
+      and st.state_id = cfsm.current_state 
+      [bug_tracker::user_bugs_only_where_clause]
+    [template::list::filter_where_clauses -and -name "bugs"]
+    [template::list::orderby_clause -orderby -name "bugs"]
+  </querytext>
+</fullquery>
+
+<fullquery name="bug_tracker::bug::get_query.bugs">
+  <querytext>
+select q.*,
+       km.keyword_id,
+       assign_info.*
+from (
+  select b.bug_id,
+         b.project_id,
+         b.bug_number,
+         b.summary,
+         lower(b.summary) as lower_summary,
+         b.comment_content,
+         b.comment_format,
+         b.component_id,
+         to_char(b.creation_date,'YYYY-MM-DD HH24:MI:SS') as creation_date,
+         to_char(b.creation_date, 'YYYY-MM-DD HH24:MI:SS') as creation_date_pretty,
+         b.creation_user as submitter_user_id,
+         submitter.first_names as submitter_first_names,
+         submitter.last_name as submitter_last_name,
+         submitter.email as submitter_email,
+         lower(submitter.first_names) as lower_submitter_first_names,
+         lower(submitter.last_name) as lower_submitter_last_name,
+         lower(submitter.email) as lower_submitter_email,
+         st.pretty_name as pretty_state,
+         st.short_name as state_short_name,
+         st.state_id,
+         st.hide_fields,
+         b.resolution,
+         b.found_in_version,
+         b.fix_for_version,
+         b.fixed_in_version,
+         cas.case_id
+         $more_columns
+    from $from_bug_clause,
+         acs_users_all submitter,
+         workflow_cases cas,
+         workflow_case_fsm cfsm,
+         workflow_fsm_states st 
+   where submitter.user_id = b.creation_user
+     and cas.workflow_id = :workflow_id
+     and cas.object_id = b.bug_id
+     and cfsm.case_id = cas.case_id
+     and cfsm.parent_enabled_action_id is null
+     and st.state_id = cfsm.current_state
+   [template::list::filter_where_clauses -and -name "bugs"]
+   [bug_tracker::user_bugs_only_where_clause]
+   [template::list::page_where_clause -and -name bugs -key bug_id]
+) q
+left outer join
+  cr_item_keyword_map km
+on (bug_id = km.item_id)
+left outer join
+  (select cru.user_id as assigned_user_id,
+          aa.action_id,
+          aa.case_id,
+          wa.pretty_name as action_pretty_name,
+          p.first_names as assignee_first_names,
+          p.last_name as assignee_last_name
+     from workflow_case_assigned_actions aa,
+          workflow_case_role_user_map cru,
+          workflow_actions wa,
+	  persons p
+    where aa.case_id = cru.case_id
+      and aa.role_id = cru.role_id
+      and cru.user_id = p.person_id
+      and wa.action_id = aa.action_id
+  ) assign_info
+on (q.case_id = assign_info.case_id)
+   [template::list::orderby_clause -orderby -name "bugs"]
+  </querytext>
+</fullquery>
+
+<partialquery name="bug_tracker::bug::get_list.filter_assignee_null_where_clause">
+  <querytext>
+          exists (select 1
+                  from workflow_case_assigned_actions aa left outer join
+                    workflow_case_role_party_map wcrpm
+                      on (wcrpm.case_id = aa.case_id and wcrpm.role_id = aa.role_id)
+                  where aa.case_id = cas.case_id
+                    and aa.action_id = $action_id
+                    and wcrpm.party_id is null
+                 )
+  </querytext>
+</partialquery>
+
+<fullquery name="bug_tracker::bug::cache_flush.get_project_id">
     <querytext>
-        select notification_id
-        from   notifications
-        where  response_id = :bug_id
+      select project_id from bt_bugs where bug_id = :bug_id
     </querytext>
 </fullquery>
 
-<fullquery name="bug_tracker::bug::delete.unset_revisions">
+<fullquery name="bug_tracker::bug::delete.get_case_id">
     <querytext>
-        update cr_items
-        set live_revision = null, latest_revision = null
-        where item_id = :bug_id
+        select case_id
+        from   workflow_cases
+        where  object_id = :bug_id
     </querytext>
 </fullquery>