wfl_simple_activity 0.1.12 → 0.1.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d248542cf09f993ae3a70c1e664f3ed17dd3d92c193d27241d916995ebcd9b93
4
- data.tar.gz: a079b97f191c8a8e1f4ef655771e7f1390e2c908766a437b908c4346ccd97526
3
+ metadata.gz: d612ff1a75a2dfb0447f8a13b2dce86cf28207eb95b7e102c20514f23b2afdb6
4
+ data.tar.gz: edf9a5b0e70d5d7c0b08398310a7896197beaf309cc365a3d23e41e58f0503b0
5
5
  SHA512:
6
- metadata.gz: 1e1d16e2e60a85c73655122991b1f004484d11f25364b441b484b2779ca9bffd38a6267bb58b74e0fcc089a6f168214c5b52cfd26e19bcd72cae1791da36e25e
7
- data.tar.gz: e2cfbedc86f6d9d60d8e8f8720b18eabb6f13dc6a9ed24feb825351d5688a9e7df7164e008eb9a81ac7eb7432c5f201d79e39bd78f7210a74583701b73b14ac3
6
+ metadata.gz: 469a64f6a7cd7687e9284237a014ad6297046acf58b24b786ffff28779adc7c5e8f9c65017fad00a1950e4c9a6a8c2922e196c595673f837eb47a98d60d61aa2
7
+ data.tar.gz: e29b1fad8f7bf86c184ccfad85e4fb5f03bcf37d40d3889569d111d697607b12eeb8310b95e1fa13000366beac3f5add875c083d5ad9315dadde460897b3a42d
data/README.md CHANGED
@@ -26,12 +26,24 @@ Or install it yourself as:
26
26
  ## 开发
27
27
 
28
28
  #### 单表记录
29
- * 执行上面两步之后,在需要记录数据变更的Model中 `include CommonActivity` ,这样便会记录该Model的数据变更日志,在
29
+ * 执行上面两步之后,在需要记录数据变更的Model中 `include WflActivity` ,这样便会记录该Model的数据变更日志,在
30
30
  数据发生变化,将会创建 `activity`, 在项目中可以通过 `model_name.activities` 或者 `PublicActivity::Activity.where(condition)`来获取活动日志
31
31
 
32
32
  #### 关联表记录 或者 其余特殊情况
33
+
33
34
  * 如果需要在关联模型数据发生变更时记录当前模型的`activity`,需要自行在关联的模型中通过`model_name.create_activity key: 'article.commented_on', owner: current_user, recipient: recipientm`来创建`activity`,create_activity方法参数可参考 [PublicActivity::Common#create_activity](https://rubydoc.info/gems/public_activity/PublicActivity/Common:create_activity)
34
35
 
36
+ #### 注意事项
37
+
38
+ * 生成的migration文件中需自行migration版本指定对应的版本
39
+
40
+ * 如果需要记录current_user 或者 调用其他在controller中的方法,需要在 `application_controller.rb`中 `include PublicActivity::StoreController`
41
+
42
+ * 自行获取 controller 上下文:
43
+ ```ruby
44
+ PublicActivity.get_controller
45
+ ```
46
+
35
47
  ## Contributing
36
48
 
37
49
  Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/wfl_simple_activity.
@@ -16,11 +16,11 @@ module WflSimpleActivity
16
16
  end
17
17
 
18
18
  def create_migration_file
19
- migration_template "create_activities.rb", "db/migrate/create_activities.rb"
19
+ migration_template "create_wfl_activities.rb", "db/migrate/create_wfl_activities.rb"
20
20
  end
21
21
 
22
22
  def copy_common_activity
23
- copy_file "common_activity.rb", "app/models/concerns/common_activity.rb"
23
+ copy_file "wfl_activity.rb", "app/models/concerns/wfl_activity.rb"
24
24
  end
25
25
 
26
26
  def copy_activity_model
@@ -1,3 +1,5 @@
1
+ require "public_activity/orm/active_record/activity.rb"
2
+ PublicActivity::ORM::ActiveRecord::Activity.table_name = "wfl_activities"
1
3
  module PublicActivity
2
4
  class Activity
3
5
  serialize :parameters, Hash
@@ -1,23 +1,25 @@
1
1
  # Migration responsible for creating a table with activities
2
- class CreateActivities < ActiveRecord::Migration
2
+ class CreateWflActivities < ActiveRecord::Migration
3
3
  # Create table
4
4
  def self.up
5
- create_table :activities do |t|
5
+ create_table :wfl_activities do |t|
6
6
  t.belongs_to :trackable, :polymorphic => true
7
7
  t.belongs_to :owner, :polymorphic => true
8
8
  t.string :key
9
9
  t.text :parameters
10
10
  t.belongs_to :recipient, :polymorphic => true
11
11
  t.text :model_changes
12
+ t.integer :school_id
13
+ t.string :description
12
14
  t.timestamps
13
15
  end
14
16
 
15
- add_index :activities, [:trackable_id, :trackable_type]
16
- add_index :activities, [:owner_id, :owner_type]
17
- add_index :activities, [:recipient_id, :recipient_type]
17
+ add_index :wfl_activities, [:trackable_id, :trackable_type]
18
+ add_index :wfl_activities, [:owner_id, :owner_type]
19
+ add_index :wfl_activities, [:recipient_id, :recipient_type]
18
20
  end
19
21
  # Drop table
20
22
  def self.down
21
- drop_table :activities
23
+ drop_table :wfl_activities
22
24
  end
23
25
  end
@@ -13,9 +13,15 @@ module WflActivity
13
13
 
14
14
  # 如果不需要删除记录
15
15
  # has_many :activities, as: :trackable, class_name: 'PublicActivity::Activity', dependent: :destroy
16
-
16
+
17
17
  after_rollback proc {
18
- self.create_activity key: "#{self.class.name.underscore}.failed", owner: User.find(Thread.current[:user_id]), recipient: self
18
+ # 由于after_rollback是ActiveRecord自带的回调,并不支持获取controller,所以需要借助PublicActivity
19
+ controller = PublicActivity.get_controller
20
+ if self.id.blank?
21
+ PublicActivity::Activity.create key: "#{self.class.name.underscore}.failed", owner: controller&.current_user, parameters: controller&.params&.to_h, model_changes: self.changes
22
+ else
23
+ self.create_activity key: "#{self.class.name.underscore}.failed", owner: User.find(Thread.current[:user_id]), recipient: self
24
+ end
19
25
  }
20
26
  end
21
27
  end
@@ -1,3 +1,3 @@
1
1
  module WflSimpleActivity
2
- VERSION = "0.1.12"
2
+ VERSION = "0.1.18"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wfl_simple_activity
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.12
4
+ version: 0.1.18
5
5
  platform: ruby
6
6
  authors:
7
7
  - longhaoran
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-12-20 00:00:00.000000000 Z
11
+ date: 2019-12-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: public_activity
@@ -67,7 +67,7 @@ files:
67
67
  - bin/setup
68
68
  - lib/generators/wfl_simple_activity/install_generator.rb
69
69
  - lib/generators/wfl_simple_activity/templates/activity.rb
70
- - lib/generators/wfl_simple_activity/templates/create_activities.rb
70
+ - lib/generators/wfl_simple_activity/templates/create_wfl_activities.rb
71
71
  - lib/generators/wfl_simple_activity/templates/wfl_activity.rb
72
72
  - lib/wfl_simple_activity.rb
73
73
  - lib/wfl_simple_activity/common_activity.rb