2016-02-12 23:52:43 +08:00
|
|
|
module MyModulesHelper
|
|
|
|
def ordered_step_of(my_module)
|
2016-07-21 19:11:15 +08:00
|
|
|
my_module.protocol.steps.order(:position)
|
2016-02-12 23:52:43 +08:00
|
|
|
end
|
|
|
|
|
|
|
|
def ordered_checklist_items(checklist)
|
|
|
|
checklist.checklist_items.order(:position)
|
|
|
|
end
|
|
|
|
|
|
|
|
def ordered_assets(step)
|
2019-04-27 18:46:45 +08:00
|
|
|
assets=[]
|
|
|
|
assets += step.assets
|
|
|
|
assets += step.marvin_js_assets
|
|
|
|
assets.sort! { |a, b|
|
|
|
|
a[asset_date_sort_field(a)] <=> b[asset_date_sort_field(b)]
|
|
|
|
}
|
2016-02-12 23:52:43 +08:00
|
|
|
end
|
|
|
|
|
2019-04-09 16:00:56 +08:00
|
|
|
def az_ordered_assets_index(step, asset_id)
|
2019-04-27 18:46:45 +08:00
|
|
|
assets=[]
|
|
|
|
assets += step.assets
|
|
|
|
assets += step.marvin_js_assets
|
|
|
|
assets.sort! { |a, b|
|
|
|
|
(a[asset_name_sort_field(a)] || '').downcase <=> (b[asset_name_sort_field(b)] || '').downcase
|
|
|
|
}.pluck(:id).index(asset_id)
|
2019-04-09 16:00:56 +08:00
|
|
|
end
|
|
|
|
|
2016-02-12 23:52:43 +08:00
|
|
|
def number_of_samples(my_module)
|
|
|
|
my_module.samples.count
|
|
|
|
end
|
|
|
|
|
|
|
|
def ordered_result_of(my_module)
|
|
|
|
my_module.results.where(archived: false).order(created_at: :desc)
|
|
|
|
end
|
|
|
|
|
2017-02-16 18:45:07 +08:00
|
|
|
def get_task_alert_color(my_module)
|
|
|
|
alert = ''
|
|
|
|
if !my_module.completed?
|
|
|
|
alert = ' alert-yellow' if my_module.is_one_day_prior?
|
|
|
|
alert = ' alert-red' if my_module.is_overdue?
|
|
|
|
elsif my_module.completed?
|
|
|
|
alert = ' alert-green'
|
|
|
|
end
|
|
|
|
alert
|
|
|
|
end
|
|
|
|
|
2016-02-12 23:52:43 +08:00
|
|
|
def is_steps_page?
|
|
|
|
action_name == "steps"
|
|
|
|
end
|
|
|
|
|
|
|
|
def is_results_page?
|
|
|
|
action_name == "results"
|
|
|
|
end
|
|
|
|
|
2019-04-27 18:46:45 +08:00
|
|
|
private
|
|
|
|
|
|
|
|
def asset_date_sort_field(el)
|
|
|
|
result = {
|
|
|
|
'Asset' => :file_updated_at,
|
|
|
|
'MarvinJsAsset' => :updated_at
|
|
|
|
}
|
|
|
|
result[el.class.name]
|
|
|
|
end
|
|
|
|
|
|
|
|
def asset_name_sort_field(el)
|
|
|
|
result = {
|
|
|
|
'Asset' => :file_file_name,
|
|
|
|
'MarvinJsAsset' => :name
|
|
|
|
}
|
|
|
|
result[el.class.name]
|
|
|
|
end
|
|
|
|
|
2016-02-12 23:52:43 +08:00
|
|
|
end
|