Changes to Activity model

This commit is contained in:
Urban Rotnik 2019-02-13 09:31:10 +01:00 committed by Anton Ignatov
parent 0bf7cb4c59
commit 5b5c6c7122
4 changed files with 38 additions and 10 deletions

View file

@ -1,7 +1,7 @@
class Activity < ApplicationRecord
include InputSanitizeHelper
after_create :generate_notification
# after_create :generate_notification
enum type_of: [
:create_project,
@ -66,9 +66,16 @@ class Activity < ApplicationRecord
validates :type_of, presence: true
belongs_to :project, inverse_of: :activities
# Depricated in SCI-3025
belongs_to :experiment, inverse_of: :activities, optional: true
# Depricated in SCI-3025
belongs_to :my_module, inverse_of: :activities, optional: true
belongs_to :user, inverse_of: :activities
belongs_to :owner, inverse_of: :activities, class_name: 'User'
# [MyModule, Experiment, Protoco...? Are we going to list all avaible types?]
belongs_to :subject, polymorphic: true
private

View file

@ -0,0 +1,13 @@
# frozen_string_literal: true
class ChangeTableActivities < ActiveRecord::Migration[5.1]
def change
add_reference :activities, :subject, polymorphic: true, index: true
add_reference :activities, :team, index: true
add_column :activities, :group_type, :integer
rename_column :activities, :user_id, :owner_id
add_column :activities, :values, :json
change_column_null :activities, :type_of, :integer, true
change_column_null :activities, :message, :string, true
end
end

View file

@ -10,7 +10,8 @@
#
# It's strongly recommended that you check this file into your version control system.
ActiveRecord::Schema.define(version: 20190125123107) do
ActiveRecord::Schema.define(version: 20190213064847) do
# These are extensions that must be enabled in order to support this database
enable_extension "plpgsql"
@ -19,19 +20,26 @@ ActiveRecord::Schema.define(version: 20190125123107) do
create_table "activities", force: :cascade do |t|
t.bigint "my_module_id"
t.bigint "user_id"
t.integer "type_of", null: false
t.string "message", null: false
t.bigint "owner_id"
t.integer "type_of"
t.string "message"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.bigint "project_id", null: false
t.bigint "experiment_id"
t.string "subject_type"
t.bigint "subject_id"
t.bigint "team_id"
t.integer "group_type"
t.json "values"
t.index ["created_at"], name: "index_activities_on_created_at"
t.index ["experiment_id"], name: "index_activities_on_experiment_id"
t.index ["my_module_id"], name: "index_activities_on_my_module_id"
t.index ["owner_id"], name: "index_activities_on_owner_id"
t.index ["project_id"], name: "index_activities_on_project_id"
t.index ["subject_type", "subject_id"], name: "index_activities_on_subject_type_and_subject_id"
t.index ["team_id"], name: "index_activities_on_team_id"
t.index ["type_of"], name: "index_activities_on_type_of"
t.index ["user_id"], name: "index_activities_on_user_id"
end
create_table "asset_text_data", force: :cascade do |t|
@ -916,7 +924,7 @@ ActiveRecord::Schema.define(version: 20190125123107) do
add_foreign_key "activities", "experiments"
add_foreign_key "activities", "my_modules"
add_foreign_key "activities", "projects"
add_foreign_key "activities", "users"
add_foreign_key "activities", "users", column: "owner_id"
add_foreign_key "asset_text_data", "assets"
add_foreign_key "assets", "users", column: "created_by_id"
add_foreign_key "assets", "users", column: "last_modified_by_id"

View file

@ -8,7 +8,7 @@ describe Activity, type: :model do
describe 'Database table' do
it { should have_db_column :id }
it { should have_db_column :my_module_id }
it { should have_db_column :user_id }
it { should have_db_column :owner_id }
it { should have_db_column :type_of }
it { should have_db_column :message }
it { should have_db_column :created_at }
@ -21,7 +21,7 @@ describe Activity, type: :model do
it { should belong_to :project }
it { should belong_to :experiment }
it { should belong_to :my_module }
it { should belong_to :user }
it { should belong_to :owner }
end
describe 'Should be a valid object' do