administrate-field-nested_has_many 1.2.0 → 1.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f1171aa3d1c51333f3bd0812f7d17754e9c1be5b7f3cce5eaef08b5aa50408ab
4
- data.tar.gz: dd9640cd1dfc968c82291bf749414b7637dfebf31991e95ae9684534dfb26dcb
3
+ metadata.gz: 9b4e4495fbe9f39dff627f5b1ddf7d82bc89d5e3a05433cc318f12ab7f02d004
4
+ data.tar.gz: f328a1f6dea3d663ee0d80454bf04a4d55530b1d2a520f1c884c1c6d78b714e5
5
5
  SHA512:
6
- metadata.gz: c2bfe32cd2c831b376ee516ee28faa127449f5e1c96ec3398f7ecc4e65eb1f0d9cd609d31f863c0b4ebced16d10e8afbc2516623e3b954c4c45a3c5f015387cd
7
- data.tar.gz: 1aef89b5241f65cc63580687b37465f686f03736b83b0fe5d5cdf7118b37ddead2c36bd969c2cecfd665ba7d702fdb74df655a6d25d1ff906edaee17212d7921
6
+ metadata.gz: 5c1a6222bc8d033f871610444425f7c90b015f5b05c9ff2c47187d1f96b0a787a75dbf4f4442335c5f24788713c33f0f67e5e1d6d2677952e5970524366578d1
7
+ data.tar.gz: cc1b62f1e2eb55ca307c7ed7e1f41d5e6f172d604a8e8a986c98d05c0fa3115bdd3f2603d2a339af8c726a6c7404689fed09c4a483e56a24d513b91e0f733f18
@@ -4,16 +4,17 @@ jobs:
4
4
  build:
5
5
  working_directory: ~/administrate-field-nested_has_many
6
6
  docker:
7
- - image: circleci/ruby:2.6.3
7
+ - image: circleci/ruby:2.7.0-node-browsers
8
8
  environment:
9
9
  PGHOST: localhost
10
10
  PGUSER: administrate-field-nested_has_many
11
+ PGPASSWORD: administrate-field-nested_has_many
11
12
  RAILS_ENV: test
12
13
  - image: postgres:11
13
14
  environment:
14
15
  POSTGRES_USER: administrate-field-nested_has_many
15
16
  POSTGRES_DB: administrate-field-nested_has_many_test
16
- POSTGRES_PASSWORD: ""
17
+ POSTGRES_PASSWORD: administrate-field-nested_has_many
17
18
  steps:
18
19
  - checkout
19
20
 
@@ -1 +1 @@
1
- ruby-2.6.3
1
+ ruby-2.7.0
data/Appraisals CHANGED
@@ -4,6 +4,10 @@ appraise "administrate-0.10" do
4
4
  gem "administrate", "0.10.0"
5
5
  end
6
6
 
7
+ appraise "administrate-0.13" do
8
+ gem "administrate", "0.13.0"
9
+ end
10
+
7
11
  appraise "administrate-master" do
8
12
  gem "administrate", git: "https://github.com/thoughtbot/administrate", branch: "master"
9
13
  end
@@ -1,5 +1,19 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## 1.3.0
4
+
5
+ * Cover more test cases ([#43][])
6
+ * Update form constructor to avoid undefined method ([#34][])
7
+ * Upgrade Ruby to 2.7.0 ([#27][])
8
+ * We need to use a node-browsers to run features ([#30][])
9
+ * Fix CI by explicitly setting a Postgres password ([#29][])
10
+
11
+ [#43]: https://github.com/nickcharlton/administrate-field-nested_has_many/pull/43
12
+ [#34]: https://github.com/nickcharlton/administrate-field-nested_has_many/pull/34
13
+ [#27]: https://github.com/nickcharlton/administrate-field-nested_has_many/pull/27
14
+ [#30]: https://github.com/nickcharlton/administrate-field-nested_has_many/pull/30
15
+ [#29]: https://github.com/nickcharlton/administrate-field-nested_has_many/pull/29
16
+
3
17
  ## 1.2.0
4
18
 
5
19
  * Add support for namespaced models ([#24][])
@@ -2,7 +2,7 @@ $:.push File.expand_path("../lib", __FILE__)
2
2
 
3
3
  Gem::Specification.new do |gem|
4
4
  gem.name = "administrate-field-nested_has_many"
5
- gem.version = "1.2.0"
5
+ gem.version = "1.3.0"
6
6
  gem.authors = ["Nick Charlton", "Grayson Wright"]
7
7
  gem.email = ["nick@nickcharlton.net", "wright.grayson@gmail.com"]
8
8
  gem.homepage = "https://github.com/nickcharlton/" \
@@ -0,0 +1,8 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "pg"
6
+ gem "administrate", "0.13.0"
7
+
8
+ gemspec path: "../"
@@ -0,0 +1,207 @@
1
+ PATH
2
+ remote: ..
3
+ specs:
4
+ administrate-field-nested_has_many (1.2.0)
5
+ administrate (> 0.8, < 1)
6
+ cocoon (~> 1.2, >= 1.2.11)
7
+
8
+ GEM
9
+ remote: https://rubygems.org/
10
+ specs:
11
+ actionpack (6.0.2.1)
12
+ actionview (= 6.0.2.1)
13
+ activesupport (= 6.0.2.1)
14
+ rack (~> 2.0, >= 2.0.8)
15
+ rack-test (>= 0.6.3)
16
+ rails-dom-testing (~> 2.0)
17
+ rails-html-sanitizer (~> 1.0, >= 1.2.0)
18
+ actionview (6.0.2.1)
19
+ activesupport (= 6.0.2.1)
20
+ builder (~> 3.1)
21
+ erubi (~> 1.4)
22
+ rails-dom-testing (~> 2.0)
23
+ rails-html-sanitizer (~> 1.1, >= 1.2.0)
24
+ activemodel (6.0.2.1)
25
+ activesupport (= 6.0.2.1)
26
+ activerecord (6.0.2.1)
27
+ activemodel (= 6.0.2.1)
28
+ activesupport (= 6.0.2.1)
29
+ activesupport (6.0.2.1)
30
+ concurrent-ruby (~> 1.0, >= 1.0.2)
31
+ i18n (>= 0.7, < 2)
32
+ minitest (~> 5.1)
33
+ tzinfo (~> 1.1)
34
+ zeitwerk (~> 2.2)
35
+ addressable (2.7.0)
36
+ public_suffix (>= 2.0.2, < 5.0)
37
+ administrate (0.13.0)
38
+ actionpack (>= 4.2)
39
+ actionview (>= 4.2)
40
+ activerecord (>= 4.2)
41
+ autoprefixer-rails (>= 6.0)
42
+ datetime_picker_rails (~> 0.0.7)
43
+ jquery-rails (>= 4.0)
44
+ kaminari (>= 1.0)
45
+ momentjs-rails (~> 2.8)
46
+ sassc-rails (~> 2.1)
47
+ selectize-rails (~> 0.6)
48
+ appraisal (2.2.0)
49
+ bundler
50
+ rake
51
+ thor (>= 0.14.0)
52
+ ast (2.4.0)
53
+ autoprefixer-rails (9.7.4)
54
+ execjs
55
+ builder (3.2.4)
56
+ capybara (3.31.0)
57
+ addressable
58
+ mini_mime (>= 0.1.3)
59
+ nokogiri (~> 1.8)
60
+ rack (>= 1.6.0)
61
+ rack-test (>= 0.6.3)
62
+ regexp_parser (~> 1.5)
63
+ xpath (~> 3.2)
64
+ childprocess (3.0.0)
65
+ cocoon (1.2.14)
66
+ concurrent-ruby (1.1.6)
67
+ crass (1.0.6)
68
+ datetime_picker_rails (0.0.7)
69
+ momentjs-rails (>= 2.8.1)
70
+ diff-lcs (1.3)
71
+ erubi (1.9.0)
72
+ execjs (2.7.0)
73
+ factory_bot (5.1.1)
74
+ activesupport (>= 4.2.0)
75
+ ffi (1.12.2)
76
+ highline (2.0.3)
77
+ i18n (1.8.2)
78
+ concurrent-ruby (~> 1.0)
79
+ i18n-tasks (0.9.31)
80
+ activesupport (>= 4.0.2)
81
+ ast (>= 2.1.0)
82
+ erubi
83
+ highline (>= 2.0.0)
84
+ i18n
85
+ parser (>= 2.2.3.0)
86
+ rails-i18n
87
+ rainbow (>= 2.2.2, < 4.0)
88
+ terminal-table (>= 1.5.1)
89
+ jquery-rails (4.3.5)
90
+ rails-dom-testing (>= 1, < 3)
91
+ railties (>= 4.2.0)
92
+ thor (>= 0.14, < 2.0)
93
+ kaminari (1.2.0)
94
+ activesupport (>= 4.1.0)
95
+ kaminari-actionview (= 1.2.0)
96
+ kaminari-activerecord (= 1.2.0)
97
+ kaminari-core (= 1.2.0)
98
+ kaminari-actionview (1.2.0)
99
+ actionview
100
+ kaminari-core (= 1.2.0)
101
+ kaminari-activerecord (1.2.0)
102
+ activerecord
103
+ kaminari-core (= 1.2.0)
104
+ kaminari-core (1.2.0)
105
+ loofah (2.4.0)
106
+ crass (~> 1.0.2)
107
+ nokogiri (>= 1.5.9)
108
+ method_source (0.9.2)
109
+ mini_mime (1.0.2)
110
+ mini_portile2 (2.4.0)
111
+ minitest (5.14.0)
112
+ momentjs-rails (2.20.1)
113
+ railties (>= 3.1)
114
+ nokogiri (1.10.9)
115
+ mini_portile2 (~> 2.4.0)
116
+ parser (2.7.0.4)
117
+ ast (~> 2.4.0)
118
+ pg (1.2.2)
119
+ public_suffix (4.0.3)
120
+ rack (2.2.2)
121
+ rack-test (1.1.0)
122
+ rack (>= 1.0, < 3)
123
+ rails-dom-testing (2.0.3)
124
+ activesupport (>= 4.2.0)
125
+ nokogiri (>= 1.6)
126
+ rails-html-sanitizer (1.3.0)
127
+ loofah (~> 2.3)
128
+ rails-i18n (6.0.0)
129
+ i18n (>= 0.7, < 2)
130
+ railties (>= 6.0.0, < 7)
131
+ railties (6.0.2.1)
132
+ actionpack (= 6.0.2.1)
133
+ activesupport (= 6.0.2.1)
134
+ method_source
135
+ rake (>= 0.8.7)
136
+ thor (>= 0.20.3, < 2.0)
137
+ rainbow (3.0.0)
138
+ rake (13.0.1)
139
+ regexp_parser (1.7.0)
140
+ rspec-core (3.9.1)
141
+ rspec-support (~> 3.9.1)
142
+ rspec-expectations (3.9.1)
143
+ diff-lcs (>= 1.2.0, < 2.0)
144
+ rspec-support (~> 3.9.0)
145
+ rspec-mocks (3.9.1)
146
+ diff-lcs (>= 1.2.0, < 2.0)
147
+ rspec-support (~> 3.9.0)
148
+ rspec-rails (3.9.1)
149
+ actionpack (>= 3.0)
150
+ activesupport (>= 3.0)
151
+ railties (>= 3.0)
152
+ rspec-core (~> 3.9.0)
153
+ rspec-expectations (~> 3.9.0)
154
+ rspec-mocks (~> 3.9.0)
155
+ rspec-support (~> 3.9.0)
156
+ rspec-support (3.9.2)
157
+ rubyzip (2.3.0)
158
+ sassc (2.2.1)
159
+ ffi (~> 1.9)
160
+ sassc-rails (2.1.2)
161
+ railties (>= 4.0.0)
162
+ sassc (>= 2.0)
163
+ sprockets (> 3.0)
164
+ sprockets-rails
165
+ tilt
166
+ selectize-rails (0.12.6)
167
+ selenium-webdriver (3.142.7)
168
+ childprocess (>= 0.5, < 4.0)
169
+ rubyzip (>= 1.2.2)
170
+ sprockets (4.0.0)
171
+ concurrent-ruby (~> 1.0)
172
+ rack (> 1, < 3)
173
+ sprockets-rails (3.2.1)
174
+ actionpack (>= 4.0)
175
+ activesupport (>= 4.0)
176
+ sprockets (>= 3.0.0)
177
+ sqlite3 (1.4.2)
178
+ terminal-table (1.8.0)
179
+ unicode-display_width (~> 1.1, >= 1.1.1)
180
+ thor (1.0.1)
181
+ thread_safe (0.3.6)
182
+ tilt (2.0.10)
183
+ tzinfo (1.2.6)
184
+ thread_safe (~> 0.1)
185
+ unicode-display_width (1.7.0)
186
+ xpath (3.2.0)
187
+ nokogiri (~> 1.8)
188
+ zeitwerk (2.3.0)
189
+
190
+ PLATFORMS
191
+ ruby
192
+
193
+ DEPENDENCIES
194
+ administrate (= 0.13.0)
195
+ administrate-field-nested_has_many!
196
+ appraisal
197
+ capybara
198
+ factory_bot
199
+ i18n-tasks
200
+ pg
201
+ rake
202
+ rspec-rails
203
+ selenium-webdriver
204
+ sqlite3
205
+
206
+ BUNDLED WITH
207
+ 1.17.2
@@ -32,7 +32,7 @@ module Administrate
32
32
  next if nested_field.resource.blank?
33
33
 
34
34
  # inject current data into field
35
- resource = nested_field.resource[form_builder.index]
35
+ resource = data[form_builder.index]
36
36
  nested_field.instance_variable_set(
37
37
  "@data",
38
38
  resource.send(nested_field.attribute),
@@ -73,11 +73,15 @@ module Administrate
73
73
  end
74
74
 
75
75
  def associated_form
76
- Administrate::Page::Form.new(associated_dashboard, data)
76
+ Administrate::Page::Form.new(associated_dashboard, new_resource)
77
77
  end
78
78
 
79
79
  private
80
80
 
81
+ def new_resource
82
+ @new_resource ||= associated_class_name.constantize.new
83
+ end
84
+
81
85
  def skipped_fields
82
86
  Array(options[:skip])
83
87
  end
@@ -1,4 +1,4 @@
1
1
  class School < ApplicationRecord
2
2
  has_many :students, class_name: "Foo::Student"
3
- accepts_nested_attributes_for :students
3
+ accepts_nested_attributes_for :students, allow_destroy: true
4
4
  end
@@ -1,4 +1,5 @@
1
1
  Rails.application.routes.draw do
2
+ root to: redirect("/admin/schools")
2
3
  namespace :admin do
3
4
  root to: redirect("/admin/schools")
4
5
  resources :schools
@@ -38,4 +38,31 @@ feature "Has many" do
38
38
  expect(page).to have_text("La Ferme du Bec Hellouin")
39
39
  expect(page).to have_text("Sébastien")
40
40
  end
41
+
42
+ scenario "edit" do
43
+ school = FactoryBot.create(:school)
44
+ FactoryBot.create_list(:student, 2, school: school)
45
+ visit edit_admin_school_path(school)
46
+ expect(page).to have_content("Edit #{school.name}")
47
+ end
48
+
49
+ scenario "update", js: true do
50
+ school = FactoryBot.create(:school)
51
+ student = FactoryBot.create(:student, school: school)
52
+ visit edit_admin_school_path(school)
53
+ click_link "Add Foo/Student"
54
+
55
+ within(all(".nested-fields").last) do
56
+ fill_in "Name", with: "Sébastien"
57
+ end
58
+
59
+ within(all(".nested-fields").first) do
60
+ click_link "Remove Foo/Student"
61
+ end
62
+
63
+ click_button "Update School"
64
+
65
+ expect(page).to have_text("Sébastien")
66
+ expect(page).not_to have_text(student.name)
67
+ end
41
68
  end
metadata CHANGED
@@ -1,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: administrate-field-nested_has_many
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nick Charlton
8
8
  - Grayson Wright
9
- autorequire:
9
+ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2020-02-18 00:00:00.000000000 Z
12
+ date: 2020-07-02 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: administrate
@@ -197,6 +197,8 @@ files:
197
197
  - config/locales/administrate-field-nested_has_many.ru.yml
198
198
  - gemfiles/administrate_0.10.gemfile
199
199
  - gemfiles/administrate_0.10.gemfile.lock
200
+ - gemfiles/administrate_0.13.gemfile
201
+ - gemfiles/administrate_0.13.gemfile.lock
200
202
  - gemfiles/administrate_master.gemfile
201
203
  - gemfiles/administrate_master.gemfile.lock
202
204
  - lib/administrate/field/nested_has_many.rb
@@ -277,7 +279,7 @@ homepage: https://github.com/nickcharlton/administrate-field-nested_has_many
277
279
  licenses:
278
280
  - MIT
279
281
  metadata: {}
280
- post_install_message:
282
+ post_install_message:
281
283
  rdoc_options: []
282
284
  require_paths:
283
285
  - lib
@@ -292,8 +294,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
292
294
  - !ruby/object:Gem::Version
293
295
  version: '0'
294
296
  requirements: []
295
- rubygems_version: 3.0.3
296
- signing_key:
297
+ rubygems_version: 3.1.2
298
+ signing_key:
297
299
  specification_version: 4
298
300
  summary: Plugin for nested has_many forms in Administrate
299
301
  test_files: