mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2025-10-06 11:57:16 +08:00
Fix assets sorting in report
This commit is contained in:
parent
b5999e27de
commit
fcdad51222
3 changed files with 15 additions and 3 deletions
|
@ -133,7 +133,8 @@ module ReportActions
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
if in_params? :step_assets
|
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_new_el(false)
|
||||||
res << generate_el(
|
res << generate_el(
|
||||||
'reports/elements/step_asset_element.html.erb', asset: asset
|
'reports/elements/step_asset_element.html.erb', asset: asset
|
||||||
|
|
|
@ -12,7 +12,7 @@ class Asset < ApplicationRecord
|
||||||
# Lock duration set to 30 minutes
|
# Lock duration set to 30 minutes
|
||||||
LOCK_DURATION = 60 * 30
|
LOCK_DURATION = 60 * 30
|
||||||
|
|
||||||
enum view_mode: { thumbnail: 0, inline: 1, list: 2 }
|
enum view_mode: { thumbnail: 0, list: 1, inline: 2 }
|
||||||
|
|
||||||
# ActiveStorage configuration
|
# ActiveStorage configuration
|
||||||
has_one_attached :file
|
has_one_attached :file
|
||||||
|
@ -43,6 +43,17 @@ class Asset < ApplicationRecord
|
||||||
has_many :report_elements, inverse_of: :asset, dependent: :destroy
|
has_many :report_elements, inverse_of: :asset, dependent: :destroy
|
||||||
has_one :asset_text_datum, 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
|
attr_accessor :file_content, :file_info, :in_template
|
||||||
|
|
||||||
def self.search(
|
def self.search(
|
||||||
|
|
|
@ -4,7 +4,7 @@ class Step < ApplicationRecord
|
||||||
include TinyMceImages
|
include TinyMceImages
|
||||||
include ViewableModel
|
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
|
auto_strip_attributes :name, :description, nullify: false
|
||||||
validates :name,
|
validates :name,
|
||||||
|
|
Loading…
Add table
Reference in a new issue