Fix assets sorting in report

This commit is contained in:
aignatov-bio 2020-11-17 15:33:25 +01:00
parent b5999e27de
commit fcdad51222
3 changed files with 15 additions and 3 deletions

View file

@ -133,7 +133,8 @@ module ReportActions
end
end
if in_params? :step_assets
step.assets.each do |asset|
sort_value = step.current_view_state(current_user).state.dig('assets', 'sort')
step.assets.order(view_mode: :desc).sort_assets(sort_value).each do |asset|
res << generate_new_el(false)
res << generate_el(
'reports/elements/step_asset_element.html.erb', asset: asset

View file

@ -12,7 +12,7 @@ class Asset < ApplicationRecord
# Lock duration set to 30 minutes
LOCK_DURATION = 60 * 30
enum view_mode: { thumbnail: 0, inline: 1, list: 2 }
enum view_mode: { thumbnail: 0, list: 1, inline: 2 }
# ActiveStorage configuration
has_one_attached :file
@ -43,6 +43,17 @@ class Asset < ApplicationRecord
has_many :report_elements, inverse_of: :asset, dependent: :destroy
has_one :asset_text_datum, inverse_of: :asset, dependent: :destroy
scope :sort_assets, lambda { |sort_value = 'new'|
sort = case sort_value
when 'old' then { created_at: :asc }
when 'atoz' then { 'active_storage_blobs.filename': :asc }
when 'ztoa' then { 'active_storage_blobs.filename': :desc }
else { created_at: :desc }
end
joins(file_attachment: :blob).order(sort)
}
attr_accessor :file_content, :file_info, :in_template
def self.search(

View file

@ -4,7 +4,7 @@ class Step < ApplicationRecord
include TinyMceImages
include ViewableModel
enum assets_view_mode: { thumbnail: 0, inline: 1, list: 2 }
enum assets_view_mode: { thumbnail: 0, list: 1, inline: 2 }
auto_strip_attributes :name, :description, nullify: false
validates :name,