diff options
| author | jpl | 2017-03-20 16:14:45 +0100 | 
|---|---|---|
| committer | jpl | 2017-03-20 16:19:26 +0100 | 
| commit | c5410dbc633cf5e3eaae35c5cc02325fd963bc0c (patch) | |
| tree | 1a74267ba35e33e84c677db7b8ee5d5e95bdff8a /app | |
| parent | b94059f6d7732eacd2d30f0840a2712f42d2e9e9 (diff) | |
| download | chouette-core-c5410dbc633cf5e3eaae35c5cc02325fd963bc0c.tar.bz2 | |
Refs #2706: Fix lines.count sorting on workbenches#show
Diffstat (limited to 'app')
| -rw-r--r-- | app/controllers/workbenches_controller.rb | 15 | ||||
| -rw-r--r-- | app/views/referentials/_form.html.slim | 2 | ||||
| -rw-r--r-- | app/views/workbenches/show.html.slim | 7 | 
3 files changed, 17 insertions, 7 deletions
| diff --git a/app/controllers/workbenches_controller.rb b/app/controllers/workbenches_controller.rb index a3370192b..cbbf1b058 100644 --- a/app/controllers/workbenches_controller.rb +++ b/app/controllers/workbenches_controller.rb @@ -10,8 +10,17 @@ class WorkbenchesController < BreadcrumbController      @q      = scope.ransack(params[:q])      @q.organisation_name_eq_any ||= current_organisation.name unless params[:q] -    @collection  = @q.result(distinct: true) -    @wbench_refs = @collection.order(sort_column + ' ' + sort_direction).paginate(page: params[:page], per_page: 30) +    @wbench_refs  = @q.result +    # @wbench_refs = Workbench.find(params[:id]).referentials + +    case sort_column +    when "lines" +      @wbench_refs = @wbench_refs.joins(:metadatas).group("referentials.id").order("sum(array_length(referential_metadata.line_ids,1)) #{sort_direction}") +    else +      @wbench_refs = @wbench_refs.order("#{sort_column} #{sort_direction}") +    end + +    @wbench_refs = @wbench_refs.paginate(page: params[:page], per_page: 30)      show! do        build_breadcrumb :show @@ -30,7 +39,7 @@ class WorkbenchesController < BreadcrumbController    private    def sort_column -    Workbench.find(params[:id]).referentials.include?(params[:sort]) ? params[:sort] : 'name' +    (Workbench.find(params[:id]).referentials.column_names + %w{lines}).include?(params[:sort]) ? params[:sort] : 'name'    end    def sort_direction diff --git a/app/views/referentials/_form.html.slim b/app/views/referentials/_form.html.slim index a33c2fab0..f209b278e 100644 --- a/app/views/referentials/_form.html.slim +++ b/app/views/referentials/_form.html.slim @@ -69,4 +69,4 @@    .hidden = form.input :workbench_id, as: :hidden -  = form.button :submit, class: 'btn btn-default formSubmitr', form: 'referential_form' +  = form.button :submit, t('actions.submit'), class: 'btn btn-default formSubmitr', form: 'referential_form' diff --git a/app/views/workbenches/show.html.slim b/app/views/workbenches/show.html.slim index f6c4c9c10..cbc9f3493 100644 --- a/app/views/workbenches/show.html.slim +++ b/app/views/workbenches/show.html.slim @@ -15,17 +15,18 @@      - if params[:q].present? or @wbench_refs.any?        .row.mb-sm          .col-lg-12.text-right -          = new_pagination @wbench_refs +          / = new_pagination @wbench_refs        .row          .col-lg-12 -          = render 'filters' +          / = render 'filters'      - if @wbench_refs.any?        .row          .col-lg-12            = table_builder @wbench_refs, -            { :name => 'name', :status => Proc.new {|w| w.archived? ? ("<span class='fa fa-archive'></span> Conservé").html_safe : '-'}, +            { :name => 'name', +              :status => Proc.new {|w| w.archived? ? ("<span class='fa fa-archive'></span> Conservé").html_safe : '-'},                :organisation => Proc.new {|w| w.organisation.name},                :validity_period => Proc.new {|w| w.validity_period.nil? ? '-' : t('validity_range', debut: l(w.try(:validity_period).try(:begin), format: :short), end: l(w.try(:validity_period).try(:end), format: :short))},                :lines => Proc.new {|w| w.lines.count}, | 
