Merge pull request #944 from sgmap/show_new_dossier_first

Show new dossier first
This commit is contained in:
LeSim 2017-11-20 17:34:09 +01:00 committed by GitHub
commit c5b678242a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 50 additions and 12 deletions

View file

@ -33,17 +33,30 @@
} }
.icon.folder { .icon.folder {
margin-right: $default-spacer;
position: relative; position: relative;
.notifications { .notifications {
top: 0px; top: -3px;
right: -10px; right: -6px;
}
}
.notification-col {
width: 30px;
text-align: center;
a {
font-size: 16px;
} }
} }
.number-col { .number-col {
width: 110px; width: 110px;
text-align: center;
}
.folder-col {
text-align: center;
} }
.status-col { .status-col {

View file

@ -240,7 +240,16 @@ module NewGestionnaire
includes = '' includes = ''
where = '' where = ''
sorted_ids = nil
case table case table
when 'notifications'
dossiers_id_with_notification = current_gestionnaire.notifications_for_procedure(procedure)
if order == 'desc'
sorted_ids = dossiers_id_with_notification + (dossiers.order('dossiers.updated_at desc').ids - dossiers_id_with_notification)
else
sorted_ids = (dossiers.order('dossiers.updated_at asc').ids - dossiers_id_with_notification) + dossiers_id_with_notification
end
when 'self' when 'self'
order = "dossiers.#{column} #{order}" order = "dossiers.#{column} #{order}"
when'france_connect_information' when'france_connect_information'
@ -255,7 +264,11 @@ module NewGestionnaire
order = "#{table.pluralize}.#{column} #{order}" order = "#{table.pluralize}.#{column} #{order}"
end end
dossiers.includes(includes).where(where).order(Dossier.sanitize_for_order(order)).pluck(:id) if sorted_ids.nil?
sorted_ids = dossiers.includes(includes).where(where).order(Dossier.sanitize_for_order(order)).pluck(:id)
end
sorted_ids
end end
def current_filters def current_filters

View file

@ -74,6 +74,11 @@
%table.table.dossiers-table.hoverable %table.table.dossiers-table.hoverable
%thead %thead
%tr %tr
- if @statut == 'suivis' || @statut == 'tous'
= render partial: "header_field", locals: { field: { "label" => "●", "table" => "notifications", "column" => "notifications" }, classname: "notification-col" }
- else
%th.notification-col
= render partial: "header_field", locals: { field: { "label" => "Nº dossier", "table" => "self", "column" => "id" }, classname: "number-col" } = render partial: "header_field", locals: { field: { "label" => "Nº dossier", "table" => "self", "column" => "id" }, classname: "number-col" }
- @displayed_fields.each do |field| - @displayed_fields.each do |field|
@ -96,11 +101,13 @@
%tbody %tbody
- @dossiers.each do |dossier| - @dossiers.each do |dossier|
%tr %tr
%td.folder-col
.icon.folder
- if current_gestionnaire.notifications_for_procedure(@procedure).include?(dossier.id)
%span.notifications{ 'aria-label': 'notifications' }
%td.number-col %td.number-col
= link_to(dossier_path(@procedure, dossier), class: 'cell-link') do = link_to(dossier_path(@procedure, dossier), class: 'cell-link') do
.icon.folder
- if current_gestionnaire.notifications_for_procedure(@procedure).include?(dossier.id)
%span.notifications{ 'aria-label': 'notifications' }
= dossier.id = dossier.id
- @displayed_fields.each do |field| - @displayed_fields.each do |field|

View file

@ -0,0 +1,5 @@
class ChangeProcedurePresentationDefault < ActiveRecord::Migration[5.0]
def change
change_column_default :procedure_presentations, :sort, from: { "table" => "self", "column" => "id", "order" => "desc" }.to_json, to: { "table" => "notifications", "column" => "notifications", "order" => "desc" }.to_json
end
end

View file

@ -10,7 +10,7 @@
# #
# It's strongly recommended that you check this file into your version control system. # It's strongly recommended that you check this file into your version control system.
ActiveRecord::Schema.define(version: 20171024135653) do ActiveRecord::Schema.define(version: 20171117165748) do
# These are extensions that must be enabled in order to support this database # These are extensions that must be enabled in order to support this database
enable_extension "plpgsql" enable_extension "plpgsql"
@ -394,9 +394,9 @@ ActiveRecord::Schema.define(version: 20171024135653) do
create_table "procedure_presentations", force: :cascade do |t| create_table "procedure_presentations", force: :cascade do |t|
t.integer "assign_to_id" t.integer "assign_to_id"
t.text "displayed_fields", default: ["{\"label\":\"Demandeur\",\"table\":\"user\",\"column\":\"email\"}"], null: false, array: true t.text "displayed_fields", default: ["{\"label\":\"Demandeur\",\"table\":\"user\",\"column\":\"email\"}"], null: false, array: true
t.json "sort", default: "{\"table\":\"self\",\"column\":\"id\",\"order\":\"desc\"}", null: false t.json "sort", default: "{\"table\":\"notifications\",\"column\":\"notifications\",\"order\":\"desc\"}", null: false
t.json "filters", default: "{\"a-suivre\":[],\"suivis\":[],\"traites\":[],\"tous\":[],\"archives\":[]}", null: false t.json "filters", default: "{\"a-suivre\":[],\"suivis\":[],\"traites\":[],\"tous\":[],\"archives\":[]}", null: false
t.index ["assign_to_id"], name: "index_procedure_presentations_on_assign_to_id", unique: true, using: :btree t.index ["assign_to_id"], name: "index_procedure_presentations_on_assign_to_id", unique: true, using: :btree
end end

View file

@ -295,7 +295,7 @@ describe NewGestionnaire::ProceduresController, type: :controller do
let(:statut) { 'tous' } let(:statut) { 'tous' }
it { expect(assigns(:statut)).to eq('tous') } it { expect(assigns(:statut)).to eq('tous') }
it { expect(assigns(:dossiers)).to match([a_suivre__dossier, new_followed_dossier, termine_dossier].sort_by(&:updated_at)) } it { expect(assigns(:dossiers)).to match_array([a_suivre__dossier, new_followed_dossier, termine_dossier]) }
end end
context 'when statut is archives' do context 'when statut is archives' do