rails_admin_import_no_encoding 0.1.0 → 0.1.1
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 +4 -4
- data/README.md +3 -3
- data/app/views/rails_admin/main/import.html.haml +2 -2
- data/lib/rails_admin_import.rb +5 -5
- data/lib/rails_admin_import/action.rb +4 -4
- data/lib/rails_admin_import/config.rb +3 -3
- data/lib/rails_admin_import/config/legacy_model.rb +1 -1
- data/lib/rails_admin_import/engine.rb +1 -1
- data/lib/rails_admin_import/formats.rb +1 -1
- data/lib/rails_admin_import/formats/csv_importer.rb +3 -3
- data/lib/rails_admin_import/formats/dummy_importer.rb +1 -1
- data/lib/rails_admin_import/formats/file_importer.rb +2 -2
- data/lib/rails_admin_import/formats/json_importer.rb +1 -1
- data/lib/rails_admin_import/formats/xlsx_importer.rb +2 -2
- data/lib/rails_admin_import/import_logger.rb +3 -3
- data/lib/rails_admin_import/import_model.rb +1 -1
- data/lib/rails_admin_import/importer.rb +5 -5
- data/lib/rails_admin_import/rails_admin_plugin.rb +3 -3
- data/lib/rails_admin_import/version.rb +2 -2
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d57788fb808f6a209f095d54f91836a5013beb51fe9f473a22d9b0d1e33855f7
|
4
|
+
data.tar.gz: 9bca27eace65c5f9783c72eeb5e07505c6ab4ae1c92313f5fa3d41f651defda9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 28fcadab8bbafb807f235b34ce83bea9dbaf4f8651a9975ba1eb2cdaed5e76afb17742b76bd222d5d501eee43e4ca0e638d8bf0161d79d6955d4e7821d813d31
|
7
|
+
data.tar.gz: 702a8ee1d0f5d95c8fcc7f0f9d7056e81d2f7ecabbb716db0242cbb3b12a456fa82da9839d77cf5d18aa9ea61b229406d448c8734d88dadf557e7460109884c7
|
data/README.md
CHANGED
@@ -25,7 +25,7 @@ RailsAdmin.config do |config|
|
|
25
25
|
end
|
26
26
|
|
27
27
|
# Optional:
|
28
|
-
# Configure global
|
28
|
+
# Configure global RailsAdminImportNoEncoding options
|
29
29
|
config.configure_with(:import) do |config|
|
30
30
|
config.logging = true
|
31
31
|
end
|
@@ -188,7 +188,7 @@ RailsAdmin.config do |config|
|
|
188
188
|
import
|
189
189
|
end
|
190
190
|
|
191
|
-
# Default global
|
191
|
+
# Default global RailsAdminImportNoEncoding options
|
192
192
|
config.configure_with(:import) do |config|
|
193
193
|
config.logging = false
|
194
194
|
config.line_item_limit = 1000
|
@@ -419,7 +419,7 @@ For example:
|
|
419
419
|
|
420
420
|
* Move the field definitions to `config.model 'User' do; import do; // ...` in `config/initializers/rails_admin_import.rb`.
|
421
421
|
|
422
|
-
* No need to mount
|
422
|
+
* No need to mount RailsAdminImportNoEncoding in `config/routes.rb` (RailsAdmin must still be mounted).
|
423
423
|
|
424
424
|
* Update model import hooks to take 1 hash argument instead of 2 arrays with values and headers.
|
425
425
|
|
@@ -19,7 +19,7 @@
|
|
19
19
|
%label.col-sm-2.control-label{for: "file"}= t("admin.import.file")
|
20
20
|
.col-sm-10.controls
|
21
21
|
= file_field_tag :file, :class => "form-control"
|
22
|
-
%p.help-block= t('admin.import.help.file_limit', limit:
|
22
|
+
%p.help-block= t('admin.import.help.file_limit', limit: RailsAdminImportNoEncoding.config.line_item_limit)
|
23
23
|
.form-group.control-group
|
24
24
|
%label.col-sm-2.control-label{for: "encoding"}= t("admin.import.encoding")
|
25
25
|
.col-sm-10.controls
|
@@ -30,7 +30,7 @@
|
|
30
30
|
.form-group.control-group
|
31
31
|
%label.col-sm-2.control-label= t("admin.import.update_if_exists")
|
32
32
|
.col-sm-10.controls
|
33
|
-
= check_box_tag :update_if_exists, '1',
|
33
|
+
= check_box_tag :update_if_exists, '1', RailsAdminImportNoEncoding.config.update_if_exists, :class => "form-control"
|
34
34
|
%p.help-block= t('admin.import.help.update_if_exists')
|
35
35
|
.form-group.control-group
|
36
36
|
%label.col-sm-2.control-label{for: "update_lookup"}= t("admin.import.update_lookup")
|
data/lib/rails_admin_import.rb
CHANGED
@@ -5,19 +5,19 @@ require "rails_admin_import/importer"
|
|
5
5
|
require "rails_admin_import/config"
|
6
6
|
require "rails_admin_import/rails_admin_plugin"
|
7
7
|
|
8
|
-
module
|
8
|
+
module RailsAdminImportNoEncoding
|
9
9
|
def self.config(entity = nil, &block)
|
10
10
|
if entity
|
11
|
-
|
11
|
+
RailsAdminImportNoEncoding::Config.model(entity, &block)
|
12
12
|
elsif block_given? && ENV["SKIP_RAILS_ADMIN_INITIALIZER"] != "true"
|
13
|
-
block.call(
|
13
|
+
block.call(RailsAdminImportNoEncoding::Config)
|
14
14
|
else
|
15
|
-
|
15
|
+
RailsAdminImportNoEncoding::Config
|
16
16
|
end
|
17
17
|
end
|
18
18
|
|
19
19
|
def self.reset
|
20
|
-
|
20
|
+
RailsAdminImportNoEncoding::Config.reset
|
21
21
|
end
|
22
22
|
end
|
23
23
|
|
@@ -16,15 +16,15 @@ module RailsAdmin
|
|
16
16
|
|
17
17
|
register_instance_option :controller do
|
18
18
|
proc do
|
19
|
-
@import_model =
|
19
|
+
@import_model = RailsAdminImportNoEncoding::ImportModel.new(@abstract_model)
|
20
20
|
|
21
21
|
if request.post?
|
22
|
-
format =
|
23
|
-
record_importer =
|
22
|
+
format = RailsAdminImportNoEncoding::Formats.from_file(params[:file])
|
23
|
+
record_importer = RailsAdminImportNoEncoding::Formats.for(
|
24
24
|
format, @import_model, params)
|
25
25
|
|
26
26
|
if record_importer.valid?
|
27
|
-
importer =
|
27
|
+
importer = RailsAdminImportNoEncoding::Importer.new(
|
28
28
|
@import_model, params)
|
29
29
|
|
30
30
|
@results = importer.import(record_importer.each)
|
@@ -1,6 +1,6 @@
|
|
1
1
|
require "rails_admin_import/config/legacy_model"
|
2
2
|
|
3
|
-
module
|
3
|
+
module RailsAdminImportNoEncoding
|
4
4
|
module Config
|
5
5
|
class << self
|
6
6
|
attr_accessor :logging
|
@@ -19,12 +19,12 @@ module RailsAdminImport
|
|
19
19
|
|
20
20
|
def model(model_name, &block)
|
21
21
|
unless @deprecation_shown
|
22
|
-
warn "
|
22
|
+
warn "RailsAdminImportNoEncoding::Config#model is deprecated. " \
|
23
23
|
"Add a import section for your model inside the rails_admin " \
|
24
24
|
"config block. See the Readme.md for more details"
|
25
25
|
@deprecation_shown = true
|
26
26
|
end
|
27
|
-
legacy_config =
|
27
|
+
legacy_config = RailsAdminImportNoEncoding::Config::LegacyModel.new(model_name)
|
28
28
|
legacy_config.instance_eval(&block) if block
|
29
29
|
legacy_config
|
30
30
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
require "csv"
|
2
2
|
|
3
|
-
module
|
3
|
+
module RailsAdminImportNoEncoding
|
4
4
|
module Formats
|
5
5
|
class CSVImporter < FileImporter
|
6
6
|
Formats.register(:csv, self)
|
@@ -11,7 +11,7 @@ module RailsAdminImport
|
|
11
11
|
def initialize(import_model, params)
|
12
12
|
super
|
13
13
|
@encoding = params[:encoding]
|
14
|
-
@header_converter =
|
14
|
+
@header_converter = RailsAdminImportNoEncoding.config.header_converter
|
15
15
|
end
|
16
16
|
|
17
17
|
# A method that yields a hash of attributes for each record to import
|
@@ -25,7 +25,7 @@ module RailsAdminImport
|
|
25
25
|
private
|
26
26
|
|
27
27
|
def csv_options
|
28
|
-
defaults =
|
28
|
+
defaults = RailsAdminImportNoEncoding.config.csv_options
|
29
29
|
options = {
|
30
30
|
headers: true,
|
31
31
|
header_converters: @header_converter,
|
@@ -1,4 +1,4 @@
|
|
1
|
-
module
|
1
|
+
module RailsAdminImportNoEncoding
|
2
2
|
module Formats
|
3
3
|
class FileImporter
|
4
4
|
def initialize(import_model, params)
|
@@ -22,7 +22,7 @@ module RailsAdminImport
|
|
22
22
|
def each(&block)
|
23
23
|
return enum_for(:each) unless block_given?
|
24
24
|
|
25
|
-
if
|
25
|
+
if RailsAdminImportNoEncoding.config.logging && filename
|
26
26
|
copy_uploaded_file_to_log_dir
|
27
27
|
end
|
28
28
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
require "csv"
|
2
2
|
|
3
|
-
module
|
3
|
+
module RailsAdminImportNoEncoding
|
4
4
|
module Formats
|
5
5
|
class XLSXImporter < FileImporter
|
6
6
|
Formats.register(:xlsx, self)
|
@@ -10,7 +10,7 @@ module RailsAdminImport
|
|
10
10
|
|
11
11
|
def initialize(import_model, params)
|
12
12
|
super
|
13
|
-
@header_converter =
|
13
|
+
@header_converter = RailsAdminImportNoEncoding.config.header_converter
|
14
14
|
end
|
15
15
|
|
16
16
|
# A method that yields a hash of attributes for each record to import
|
@@ -1,15 +1,15 @@
|
|
1
|
-
module
|
1
|
+
module RailsAdminImportNoEncoding
|
2
2
|
class ImportLogger
|
3
3
|
attr_reader :logger
|
4
4
|
|
5
5
|
def initialize(log_file_name = "rails_admin_import.log")
|
6
|
-
if
|
6
|
+
if RailsAdminImportNoEncoding.config.logging
|
7
7
|
@logger = Logger.new(File.join(Rails.root, "log", log_file_name))
|
8
8
|
end
|
9
9
|
end
|
10
10
|
|
11
11
|
def info(message)
|
12
|
-
if
|
12
|
+
if RailsAdminImportNoEncoding.config.logging
|
13
13
|
@logger.info message
|
14
14
|
end
|
15
15
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
require "rails_admin_import/import_logger"
|
2
2
|
|
3
|
-
module
|
3
|
+
module RailsAdminImportNoEncoding
|
4
4
|
class Importer
|
5
5
|
def initialize(import_model, params)
|
6
6
|
@import_model = import_model
|
@@ -16,10 +16,10 @@ module RailsAdminImport
|
|
16
16
|
begin
|
17
17
|
init_results
|
18
18
|
|
19
|
-
if records.count >
|
19
|
+
if records.count > RailsAdminImportNoEncoding.config.line_item_limit
|
20
20
|
return results = {
|
21
21
|
success: [],
|
22
|
-
error: [I18n.t('admin.import.import_error.line_item_limit', limit:
|
22
|
+
error: [I18n.t('admin.import.import_error.line_item_limit', limit: RailsAdminImportNoEncoding.config.line_item_limit)]
|
23
23
|
}
|
24
24
|
end
|
25
25
|
|
@@ -50,7 +50,7 @@ module RailsAdminImport
|
|
50
50
|
end
|
51
51
|
|
52
52
|
def with_transaction(&block)
|
53
|
-
if
|
53
|
+
if RailsAdminImportNoEncoding.config.rollback_on_error &&
|
54
54
|
defined?(ActiveRecord)
|
55
55
|
|
56
56
|
ActiveRecord::Base.transaction &block
|
@@ -60,7 +60,7 @@ module RailsAdminImport
|
|
60
60
|
end
|
61
61
|
|
62
62
|
def rollback_if_error
|
63
|
-
if
|
63
|
+
if RailsAdminImportNoEncoding.config.rollback_on_error &&
|
64
64
|
defined?(ActiveRecord) &&
|
65
65
|
!results[:error].empty?
|
66
66
|
|
@@ -9,15 +9,15 @@ require "rails_admin_import/config/sections/import"
|
|
9
9
|
|
10
10
|
# Register the configuration adapter for Rails Admin
|
11
11
|
# to allow configure_with(:import)
|
12
|
-
module
|
12
|
+
module RailsAdminImportNoEncoding
|
13
13
|
module Extension
|
14
14
|
class ConfigurationAdapter < SimpleDelegator
|
15
15
|
def initialize
|
16
|
-
super
|
16
|
+
super RailsAdminImportNoEncoding::Config
|
17
17
|
end
|
18
18
|
end
|
19
19
|
end
|
20
20
|
end
|
21
21
|
|
22
|
-
RailsAdmin.add_extension :import,
|
22
|
+
RailsAdmin.add_extension :import, RailsAdminImportNoEncoding::Extension,
|
23
23
|
configuration: true
|
@@ -1,3 +1,3 @@
|
|
1
|
-
module
|
2
|
-
VERSION = "0.1.
|
1
|
+
module RailsAdminImportNoEncoding
|
2
|
+
VERSION = "0.1.1"
|
3
3
|
end
|