motor-admin 0.2.6 → 0.2.10

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: 9b0f19398ae8e7e11b2d3599dc83707c69acce2ef4731b73a1b7a0c9e006c069
4
- data.tar.gz: 6c67d6492965989428dfab23a4b5315790ffb1408f572f2e9c38437385e53f60
3
+ metadata.gz: 5e7ce842fbd5202f73efe93edfea13a5391070ed46a44c4c7d15d9ed3ad68aed
4
+ data.tar.gz: cb7dee7ba4ca6b4542bf6d333eb04f2de1c4409a795d1530ac3c81e76cfb4dce
5
5
  SHA512:
6
- metadata.gz: e38ab5f4be4a8d340f2b2568b1cdfa586243ed895f6abdb39dc3509b14bb8d3556d6b0de22671d87ed3a6f11895eb29add8f10e542038b68975a2b89df6334cb
7
- data.tar.gz: a5800734dc28bd4f1e8e0e559bb5a948756f9270cfd1dc873e8a943021a498dd66dd354361abec776113564e5cc97f7afc9f1447c8e78c17c88da792eb165cf0
6
+ metadata.gz: 468b9e8e9a4adab3e1006796e87894ca73e339e3663e9e2a61337512e305e5e22df787a260f49604c10c14934c1022164efda71fc59619848ee9f655e065e421
7
+ data.tar.gz: c31e7faea409f3e78ea2f6840d2b3cdc8aa6ae82cbc831edee65b7220777503c52d745f7ce78a74b21f2caca147bb6a7f5f38b154b7b4409c8a67be529286fac
@@ -18,6 +18,12 @@ module Motor
18
18
 
19
19
  render json: { errors: [e.message] }, status: :internal_server_error
20
20
  end
21
+
22
+ rescue_from CanCan::AccessDenied do |e|
23
+ Rails.logger.error(e)
24
+
25
+ render json: { errors: [e.message] }, status: :forbidden
26
+ end
21
27
  end
22
28
  end
23
29
  end
@@ -2,13 +2,19 @@
2
2
 
3
3
  module Motor
4
4
  class AlertsMailer < ApplicationMailer
5
+ SenderAddressNotSet = Class.new(StandardError)
6
+ SENDER_NOT_SET_ERROR_MESSAGE =
7
+ 'Please specify your sender address via MOTOR_ALERTS_FROM_ADDRESS environment variable'
8
+
5
9
  def alert_email(alert)
6
10
  @alert = alert
7
11
  @query_result = Queries::RunQuery.call(alert.query)
8
12
 
9
13
  return if @alert.preferences[:send_empty].blank? && @query_result.data.blank?
10
14
 
11
- attachments["#{alert.name.presence || 'data'}.csv"] = generate_csv(@query_result)
15
+ assign_attachment(@alert, @query_result)
16
+
17
+ raise SenderAddressNotSet, SENDER_NOT_SET_ERROR_MESSAGE unless from_address
12
18
 
13
19
  mail(
14
20
  from: from_address,
@@ -19,6 +25,10 @@ module Motor
19
25
 
20
26
  private
21
27
 
28
+ def assign_attachment(alert, query_result)
29
+ attachments["#{alert.name.presence || 'data'}.csv"] = generate_csv(query_result)
30
+ end
31
+
22
32
  def generate_csv(_query_result)
23
33
  rows = [@query_result.columns.pluck(:name)] + @query_result.data
24
34
 
@@ -32,7 +42,9 @@ module Motor
32
42
  from ||= mailer_config_from_address
33
43
  from ||= "reports@#{ENV['HOST'].delete_prefix('www.')}" if ENV['HOST'].present?
34
44
 
35
- from || 'reports@example.com'
45
+ from ||= 'reports@example.com' if Rails.env.development?
46
+
47
+ from
36
48
  end
37
49
 
38
50
  def application_mailer_default_from
@@ -264,3 +264,4 @@ en:
264
264
  add_database: Add Database
265
265
  audio: Audio
266
266
  video: Video
267
+ display_column: Display column
@@ -264,6 +264,7 @@ es:
264
264
  add_database: Añadir base de datos
265
265
  audio: Audio
266
266
  video: Video
267
+ display_column: Columna de visualización
267
268
  i:
268
269
  locale: es
269
270
  select:
@@ -260,6 +260,7 @@ pt:
260
260
  write_only: "Somente gravação"
261
261
  audio: Áudio
262
262
  video: Vídeo
263
+ display_column: Coluna de exibição
263
264
  i:
264
265
  locale: pt
265
266
  select:
@@ -16,6 +16,8 @@ if Rails::VERSION::MAJOR == 6
16
16
  end
17
17
 
18
18
  def build_filters(manager, alias_tracker)
19
+ return unless @filters
20
+
19
21
  where_clause = nil
20
22
 
21
23
  @filters.each do |filters|
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ if Rails::VERSION::MAJOR == 7
4
+ module ArLazyPreload
5
+ module Relation
6
+ def preload_associations(records)
7
+ preload = preload_values
8
+ preload += includes_values unless eager_loading?
9
+ scope = strict_loading_value ? ActiveRecord::Relation::StrictLoadingScope : nil
10
+ preload.each do |associations|
11
+ preloader_associations = ActiveRecord::Associations::Preloader.new(records: records,
12
+ associations: associations,
13
+ scope: scope).call
14
+
15
+ preloader_associations.each do |preloader_association|
16
+ handle_preloaded_records(preloader_association.preloaded_records)
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -23,3 +23,4 @@ require_relative './active_record_utils/active_storage_blob_patch'
23
23
  require_relative './active_record_utils/active_record_filter_patch'
24
24
  require_relative './active_record_utils/active_record_connection_column_patch'
25
25
  require_relative './active_record_utils/action_text_attribute_patch'
26
+ require_relative './active_record_utils/ar_lazy_preload_patch'
@@ -45,9 +45,7 @@ module Motor
45
45
 
46
46
  def select_columns(columns)
47
47
  selected_columns =
48
- columns.select do |name|
49
- BuildSchema::FindDisplayColumn::DISPLAY_NAME_REGEXP.match?(name)
50
- end.presence
48
+ columns.grep(BuildSchema::FindDisplayColumn::DISPLAY_NAME_REGEXP).presence
51
49
 
52
50
  selected_columns ||= columns.first(SELECT_COLUMNS_AMOUNT)
53
51
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  module Motor
4
4
  module Resources
5
- RESOURCE_ATTRS = %w[display_name icon custom_sql visible].freeze
5
+ RESOURCE_ATTRS = %w[display_name display_column icon custom_sql visible].freeze
6
6
  COLUMN_ATTRS = %w[name display_name column_type access_type default_value reference virtual format].freeze
7
7
  ASSOCIATION_ATTRS = %w[name display_name model_name icon visible foreign_key primary_key options virtual
8
8
  polymorphic slug].freeze
data/lib/motor/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Motor
4
- VERSION = '0.2.6'
4
+ VERSION = '0.2.10'
5
5
  end
@@ -2601,9 +2601,9 @@
2601
2601
  "icons/zoom-out.svg.gz": "icons/zoom-out.svg.gz",
2602
2602
  "icons/zoom-question.svg": "icons/zoom-question.svg",
2603
2603
  "icons/zoom-question.svg.gz": "icons/zoom-question.svg.gz",
2604
- "main-32da50c51ef9fcddf634.css.gz": "main-32da50c51ef9fcddf634.css.gz",
2605
- "main-32da50c51ef9fcddf634.js.LICENSE.txt": "main-32da50c51ef9fcddf634.js.LICENSE.txt",
2606
- "main-32da50c51ef9fcddf634.js.gz": "main-32da50c51ef9fcddf634.js.gz",
2607
- "main.css": "main-32da50c51ef9fcddf634.css",
2608
- "main.js": "main-32da50c51ef9fcddf634.js"
2604
+ "main-9d527c31af98f3d09fea.css.gz": "main-9d527c31af98f3d09fea.css.gz",
2605
+ "main-9d527c31af98f3d09fea.js.LICENSE.txt": "main-9d527c31af98f3d09fea.js.LICENSE.txt",
2606
+ "main-9d527c31af98f3d09fea.js.gz": "main-9d527c31af98f3d09fea.js.gz",
2607
+ "main.css": "main-9d527c31af98f3d09fea.css",
2608
+ "main.js": "main-9d527c31af98f3d09fea.js"
2609
2609
  }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: motor-admin
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.6
4
+ version: 0.2.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pete Matsyburka
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-10-11 00:00:00.000000000 Z
11
+ date: 2021-10-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord-filter
@@ -165,6 +165,7 @@ files:
165
165
  - lib/motor/active_record_utils/active_record_filter_patch.rb
166
166
  - lib/motor/active_record_utils/active_storage_blob_patch.rb
167
167
  - lib/motor/active_record_utils/active_storage_links_extension.rb
168
+ - lib/motor/active_record_utils/ar_lazy_preload_patch.rb
168
169
  - lib/motor/active_record_utils/defined_scopes_extension.rb
169
170
  - lib/motor/active_record_utils/fetch_methods.rb
170
171
  - lib/motor/active_record_utils/types.rb
@@ -1523,8 +1524,8 @@ files:
1523
1524
  - ui/dist/icons/zoom-money.svg.gz
1524
1525
  - ui/dist/icons/zoom-out.svg.gz
1525
1526
  - ui/dist/icons/zoom-question.svg.gz
1526
- - ui/dist/main-32da50c51ef9fcddf634.css.gz
1527
- - ui/dist/main-32da50c51ef9fcddf634.js.gz
1527
+ - ui/dist/main-9d527c31af98f3d09fea.css.gz
1528
+ - ui/dist/main-9d527c31af98f3d09fea.js.gz
1528
1529
  - ui/dist/manifest.json
1529
1530
  homepage:
1530
1531
  licenses: