aboutsummaryrefslogtreecommitdiffstats
path: root/app
diff options
context:
space:
mode:
authorjpl2017-03-20 16:14:45 +0100
committerjpl2017-03-20 16:19:26 +0100
commitc5410dbc633cf5e3eaae35c5cc02325fd963bc0c (patch)
tree1a74267ba35e33e84c677db7b8ee5d5e95bdff8a /app
parentb94059f6d7732eacd2d30f0840a2712f42d2e9e9 (diff)
downloadchouette-core-c5410dbc633cf5e3eaae35c5cc02325fd963bc0c.tar.bz2
Refs #2706: Fix lines.count sorting on workbenches#show
Diffstat (limited to 'app')
-rw-r--r--app/controllers/workbenches_controller.rb15
-rw-r--r--app/views/referentials/_form.html.slim2
-rw-r--r--app/views/workbenches/show.html.slim7
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},