mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2025-04-10 06:11:19 +08:00
Add experiment reports element
This commit is contained in:
parent
aedaf2f30a
commit
964b51f84a
4 changed files with 36 additions and 16 deletions
|
@ -9,6 +9,7 @@ class Experiment < ActiveRecord::Base
|
|||
|
||||
has_many :my_modules, inverse_of: :experiment, dependent: :destroy
|
||||
has_many :my_module_groups, inverse_of: :experiment, dependent: :destroy
|
||||
has_many :report_elements, inverse_of: :experiment, dependent: :destroy
|
||||
|
||||
validates :name,
|
||||
presence: true,
|
||||
|
|
|
@ -14,7 +14,8 @@ class ReportElement < ActiveRecord::Base
|
|||
step_comments: 11,
|
||||
result_comments: 12,
|
||||
project_activity: 13, # TODO
|
||||
project_samples: 14 # TODO
|
||||
project_samples: 14, # TODO
|
||||
experiment: 15
|
||||
}
|
||||
|
||||
# This is only used by certain elements
|
||||
|
@ -36,6 +37,7 @@ class ReportElement < ActiveRecord::Base
|
|||
|
||||
# References to various report entities
|
||||
belongs_to :project, inverse_of: :report_elements
|
||||
belongs_to :experiment, inverse_of: :report_elements
|
||||
belongs_to :my_module, inverse_of: :report_elements
|
||||
belongs_to :step, inverse_of: :report_elements
|
||||
belongs_to :result, inverse_of: :report_elements
|
||||
|
@ -59,6 +61,8 @@ class ReportElement < ActiveRecord::Base
|
|||
def element_reference
|
||||
if project_header? or project_activity? or project_samples?
|
||||
return project
|
||||
elsif experiment?
|
||||
return experiment
|
||||
elsif my_module? or my_module_activity? or my_module_samples?
|
||||
return my_module
|
||||
elsif step? or step_comments?
|
||||
|
@ -79,6 +83,8 @@ class ReportElement < ActiveRecord::Base
|
|||
def set_element_reference(ref_id)
|
||||
if project_header? or project_activity? or project_samples?
|
||||
self.project_id = ref_id
|
||||
elsif experiment?
|
||||
self.experiment_id = ref_id
|
||||
elsif my_module? or my_module_activity? or my_module_samples?
|
||||
self.my_module_id = ref_id
|
||||
elsif step? or step_comments?
|
||||
|
@ -98,6 +104,7 @@ class ReportElement < ActiveRecord::Base
|
|||
def clean_removed_or_archived_elements
|
||||
parent_model = ''
|
||||
[ 'project',
|
||||
'experiment',
|
||||
'my_module',
|
||||
'step',
|
||||
'result',
|
||||
|
@ -119,6 +126,7 @@ class ReportElement < ActiveRecord::Base
|
|||
def has_one_of_referenced_elements
|
||||
num_of_refs = [
|
||||
project,
|
||||
experiment,
|
||||
my_module,
|
||||
step,
|
||||
result,
|
||||
|
|
|
@ -0,0 +1,8 @@
|
|||
class AddExperimentToReportElements < ActiveRecord::Migration
|
||||
def change
|
||||
add_column :report_elements, :experiment_id, :integer
|
||||
|
||||
add_foreign_key :report_elements, :experiments
|
||||
add_index :report_elements, :experiment_id
|
||||
end
|
||||
end
|
|
@ -11,7 +11,7 @@
|
|||
#
|
||||
# It's strongly recommended that you check this file into your version control system.
|
||||
|
||||
ActiveRecord::Schema.define(version: 20160722082700) do
|
||||
ActiveRecord::Schema.define(version: 20160803082801) do
|
||||
|
||||
# These are extensions that must be enabled in order to support this database
|
||||
enable_extension "plpgsql"
|
||||
|
@ -154,10 +154,10 @@ ActiveRecord::Schema.define(version: 20160722082700) do
|
|||
|
||||
add_index "experiments", ["archived_by_id"], name: "index_experiments_on_archived_by_id", using: :btree
|
||||
add_index "experiments", ["created_by_id"], name: "index_experiments_on_created_by_id", using: :btree
|
||||
add_index "experiments", ["last_modified_by_id"], name: "index_experiments_on_last_modified_by_id", using: :btree
|
||||
add_index "experiments", ["name"], name: "index_experiments_on_name", using: :btree
|
||||
add_index "experiments", ["project_id"], name: "index_experiments_on_project_id", using: :btree
|
||||
add_index "experiments", ["restored_by_id"], name: "index_experiments_on_restored_by_id", using: :btree
|
||||
add_index "experiments", ["last_modified_by_id"], name: "index_experiments_on_last_modified_by_id", using: :btree
|
||||
|
||||
create_table "logs", force: :cascade do |t|
|
||||
t.integer "organization_id", null: false
|
||||
|
@ -330,10 +330,12 @@ ActiveRecord::Schema.define(version: 20160722082700) do
|
|||
t.integer "table_id"
|
||||
t.datetime "created_at", null: false
|
||||
t.datetime "updated_at", null: false
|
||||
t.integer "experiment_id"
|
||||
end
|
||||
|
||||
add_index "report_elements", ["asset_id"], name: "index_report_elements_on_asset_id", using: :btree
|
||||
add_index "report_elements", ["checklist_id"], name: "index_report_elements_on_checklist_id", using: :btree
|
||||
add_index "report_elements", ["experiment_id"], name: "index_report_elements_on_experiment_id", using: :btree
|
||||
add_index "report_elements", ["my_module_id"], name: "index_report_elements_on_my_module_id", using: :btree
|
||||
add_index "report_elements", ["parent_id"], name: "index_report_elements_on_parent_id", using: :btree
|
||||
add_index "report_elements", ["project_id"], name: "index_report_elements_on_project_id", using: :btree
|
||||
|
@ -661,8 +663,8 @@ ActiveRecord::Schema.define(version: 20160722082700) do
|
|||
add_foreign_key "custom_fields", "users", column: "last_modified_by_id"
|
||||
add_foreign_key "experiments", "users", column: "archived_by_id"
|
||||
add_foreign_key "experiments", "users", column: "created_by_id"
|
||||
add_foreign_key "experiments", "users", column: "restored_by_id"
|
||||
add_foreign_key "experiments", "users", column: "last_modified_by_id"
|
||||
add_foreign_key "experiments", "users", column: "restored_by_id"
|
||||
add_foreign_key "logs", "organizations"
|
||||
add_foreign_key "my_module_comments", "comments"
|
||||
add_foreign_key "my_module_comments", "my_modules"
|
||||
|
@ -695,6 +697,7 @@ ActiveRecord::Schema.define(version: 20160722082700) do
|
|||
add_foreign_key "protocols", "users", column: "restored_by_id"
|
||||
add_foreign_key "report_elements", "assets"
|
||||
add_foreign_key "report_elements", "checklists"
|
||||
add_foreign_key "report_elements", "experiments"
|
||||
add_foreign_key "report_elements", "my_modules"
|
||||
add_foreign_key "report_elements", "projects"
|
||||
add_foreign_key "report_elements", "reports"
|
||||
|
|
Loading…
Add table
Reference in a new issue