rails_admin_import_no_encoding 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|