ecom_core 1.3.11 → 1.3.12

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: 6a8c5e7bae18d2274c96fb6f16664a21c08bfd604489d4bf5f33a3987431a201
4
- data.tar.gz: 732a9838a943cdd277950a947cb4aa46a0202fa479c2ec9f522d433986540680
3
+ metadata.gz: b5251e2d89a8210a191854b487363709e503d187c20134cf3555db18cddf8b2c
4
+ data.tar.gz: 741d7ced3999e07483ca9e8c8e611158ffde648f29978b6b67b45c6ca702740a
5
5
  SHA512:
6
- metadata.gz: d5fafbcece174dd0fe5137466a5e8187e402f11f6880989c78175c3f11d0f82347f38051b731cb5b2cf8eb3a7f3f2574bdf0063187e42748404735e104319214
7
- data.tar.gz: 0602eade03b0c2e500a1b91b5fa55d13118ad757eb0284cca8073f6c46e69a46016bacf5d9a7850692c2ecef923df092c37ac3ae22b728eac4a251101abbae8d
6
+ metadata.gz: 5c459d2c9ed785a9e37554f5c521af55e2a7d4695da9f8992e851929e495baad031a6f903d183370a76a64c120024a7e9a5db34c54d3714a5ac943af087b202e
7
+ data.tar.gz: '009335d749873a86b77170ca7c263a70c41823675ff72b083c4d896eb5e8a294bd879e4b7699e4afe4102d01dce4d8be2ad876728dc299ea8df605ba9c7edfe8'
@@ -1,7 +1,6 @@
1
1
  module Ecom
2
2
  module Core
3
3
  class Crew < ApplicationRecord
4
- mount_base64_uploader :photo, PhotoUploader
5
4
  PERMANENT = 'Permanent'.freeze
6
5
  SUPERVISOR = 'Supervisor'.freeze
7
6
  TEMPORARY = 'Temporary'.freeze
@@ -13,6 +12,7 @@ module Ecom
13
12
  after_save :set_employee_id
14
13
 
15
14
  belongs_to :crew_type
15
+ has_one_attached :photo
16
16
 
17
17
  validates :name, :address, :qualification, :employment, :wage, :guarantor_name, :guarantor_phone, presence: true
18
18
  validates :employment, inclusion: EMPLOYMENT_TYPES
@@ -13,8 +13,8 @@ module Ecom
13
13
  validates :crew_id, :crew, :site_id, :site, :start_date, :site_crew_type, :status, presence: true
14
14
 
15
15
  validates_uniqueness_of :site_id,
16
- scope: :crew_id,
17
- if: -> { status == 'Active' },
16
+ scope: %i[crew_id status],
17
+ if: :active_site_crew_exists?,
18
18
  message: 'There can only be one record with status `Active` for a given site and crew'
19
19
 
20
20
  validates :site_crew_type, inclusion: SITE_CREW_TYPES
@@ -22,6 +22,14 @@ module Ecom
22
22
 
23
23
  belongs_to :crew
24
24
  belongs_to :site
25
+
26
+ def active_site_crew_exists?
27
+ active_site_crew = Ecom::Core::SiteCrew.where(site_id: site_id, crew_id: crew_id, status: ACTIVE)
28
+
29
+ return true if !active_site_crew.count.zero? && status == ACTIVE
30
+
31
+ false
32
+ end
25
33
  end
26
34
  end
27
35
  end
@@ -1,9 +1,8 @@
1
1
  module Ecom
2
2
  module Core
3
3
  class TaskAttachment < ApplicationRecord
4
- mount_base64_uploader :file, TaskAttachmentUploader
5
-
6
4
  belongs_to :task
5
+ has_one_attached :file
7
6
 
8
7
  validates :title, presence: true
9
8
  end
@@ -14,6 +14,7 @@ module Ecom
14
14
 
15
15
  validates :status, presence: true, inclusion: STATUSES
16
16
 
17
+ belongs_to :work_package
17
18
  belongs_to :assigned_to, class_name: 'Ecom::Core::Crew'
18
19
  belongs_to :generated_by, class_name: 'Ecom::Core::User'
19
20
  has_many :tasks
@@ -10,6 +10,7 @@ module Ecom
10
10
  validates :budget, numericality: true, unless: proc { budget.nil? }
11
11
 
12
12
  has_many :tasks
13
+ has_many :work_orders
13
14
  end
14
15
  end
15
16
  end
@@ -3,6 +3,10 @@ class CreateEcomCoreWorkOrders < ActiveRecord::Migration[6.0]
3
3
  create_table :ecom_core_work_orders do |t|
4
4
  t.string :name
5
5
  t.string :reference_number
6
+ t.references :work_package,
7
+ null: false,
8
+ index: { name: 'wo_on_wp_indx' },
9
+ foreign_key: { to_table: :ecom_core_work_packages }
6
10
  t.references :assigned_to,
7
11
  null: false,
8
12
  index: { name: 'wo_on_at_indx' },
@@ -0,0 +1,6 @@
1
+ class RenamePhotoFields < ActiveRecord::Migration[6.1]
2
+ def change
3
+ rename_column :ecom_core_crews, :photo, :photo_url
4
+ rename_column :ecom_core_task_attachments, :file, :file_url
5
+ end
6
+ end
@@ -0,0 +1,36 @@
1
+ # This migration comes from active_storage (originally 20170806125915)
2
+ class CreateActiveStorageTables < ActiveRecord::Migration[5.2]
3
+ def change
4
+ create_table :active_storage_blobs do |t|
5
+ t.string :key, null: false
6
+ t.string :filename, null: false
7
+ t.string :content_type
8
+ t.text :metadata
9
+ t.string :service_name, null: false
10
+ t.bigint :byte_size, null: false
11
+ t.string :checksum, null: false
12
+ t.datetime :created_at, null: false
13
+
14
+ t.index [ :key ], unique: true
15
+ end
16
+
17
+ create_table :active_storage_attachments do |t|
18
+ t.string :name, null: false
19
+ t.references :record, null: false, polymorphic: true, index: false
20
+ t.references :blob, null: false
21
+
22
+ t.datetime :created_at, null: false
23
+
24
+ t.index [ :record_type, :record_id, :name, :blob_id ], name: "index_active_storage_attachments_uniqueness", unique: true
25
+ t.foreign_key :active_storage_blobs, column: :blob_id
26
+ end
27
+
28
+ create_table :active_storage_variant_records do |t|
29
+ t.belongs_to :blob, null: false, index: false
30
+ t.string :variation_digest, null: false
31
+
32
+ t.index %i[ blob_id variation_digest ], name: "index_active_storage_variant_records_uniqueness", unique: true
33
+ t.foreign_key :active_storage_blobs, column: :blob_id
34
+ end
35
+ end
36
+ end
@@ -1,5 +1,5 @@
1
1
  module Ecom
2
2
  module Core
3
- VERSION = '1.3.11'.freeze
3
+ VERSION = '1.3.12'.freeze
4
4
  end
5
5
  end
data/lib/ecom_core.rb CHANGED
@@ -3,5 +3,3 @@ require 'ecom/core/engine'
3
3
  require 'ancestry'
4
4
  require 'aasm'
5
5
  require 'active_model_serializers'
6
- require 'carrierwave'
7
- require 'carrierwave/base64'
@@ -10,7 +10,7 @@ FactoryBot.define do
10
10
  wage_in_words { FFaker::Name.name }
11
11
  employment_date { Date.today - 1 }
12
12
  sub_contracted { false }
13
- photo { FFaker::Name.name }
13
+ photo_url { FFaker::Name.name }
14
14
  guarantor_name { FFaker::Name.name }
15
15
  guarantor_phone { FFaker::Name.name }
16
16
  active { true }
@@ -1,6 +1,7 @@
1
1
  FactoryBot.define do
2
2
  factory :work_order, class: Ecom::Core::WorkOrder do
3
3
  name { FFaker::Name.unique.name }
4
+ association :work_package
4
5
  association :assigned_to, factory: :crew
5
6
  association :generated_by, factory: :user
6
7
  start_date { (Time.now + 1.day).to_s }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ecom_core
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.11
4
+ version: 1.3.12
5
5
  platform: ruby
6
6
  authors:
7
7
  - Henock L.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-02-04 00:00:00.000000000 Z
11
+ date: 2021-04-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aasm
@@ -87,21 +87,7 @@ dependencies:
87
87
  - !ruby/object:Gem::Version
88
88
  version: '0'
89
89
  - !ruby/object:Gem::Dependency
90
- name: carrierwave
91
- requirement: !ruby/object:Gem::Requirement
92
- requirements:
93
- - - ">="
94
- - !ruby/object:Gem::Version
95
- version: '0'
96
- type: :runtime
97
- prerelease: false
98
- version_requirements: !ruby/object:Gem::Requirement
99
- requirements:
100
- - - ">="
101
- - !ruby/object:Gem::Version
102
- version: '0'
103
- - !ruby/object:Gem::Dependency
104
- name: carrierwave-base64
90
+ name: json-schema
105
91
  requirement: !ruby/object:Gem::Requirement
106
92
  requirements:
107
93
  - - ">="
@@ -134,42 +120,14 @@ dependencies:
134
120
  requirements:
135
121
  - - "~>"
136
122
  - !ruby/object:Gem::Version
137
- version: 6.1.1
138
- type: :runtime
139
- prerelease: false
140
- version_requirements: !ruby/object:Gem::Requirement
141
- requirements:
142
- - - "~>"
143
- - !ruby/object:Gem::Version
144
- version: 6.1.1
145
- - !ruby/object:Gem::Dependency
146
- name: json-schema
147
- requirement: !ruby/object:Gem::Requirement
148
- requirements:
149
- - - ">="
150
- - !ruby/object:Gem::Version
151
- version: '0'
152
- type: :runtime
153
- prerelease: false
154
- version_requirements: !ruby/object:Gem::Requirement
155
- requirements:
156
- - - ">="
157
- - !ruby/object:Gem::Version
158
- version: '0'
159
- - !ruby/object:Gem::Dependency
160
- name: fog-google
161
- requirement: !ruby/object:Gem::Requirement
162
- requirements:
163
- - - "~>"
164
- - !ruby/object:Gem::Version
165
- version: 1.12.0
123
+ version: 6.1.3
166
124
  type: :runtime
167
125
  prerelease: false
168
126
  version_requirements: !ruby/object:Gem::Requirement
169
127
  requirements:
170
128
  - - "~>"
171
129
  - !ruby/object:Gem::Version
172
- version: 1.12.0
130
+ version: 6.1.3
173
131
  - !ruby/object:Gem::Dependency
174
132
  name: factory_bot_rails
175
133
  requirement: !ruby/object:Gem::Requirement
@@ -380,11 +338,8 @@ files:
380
338
  - app/services/ecom/core/menu_service.rb
381
339
  - app/services/ecom/core/site_crew_service.rb
382
340
  - app/services/ecom/core/token_auth_service.rb
383
- - app/uploaders/ecom/core/photo_uploader.rb
384
- - app/uploaders/ecom/core/task_attachment_uploader.rb
385
341
  - app/validators/ecom/core/date_range_validator.rb
386
342
  - config/database.ci.yml
387
- - config/initializers/carrierwave.rb
388
343
  - config/routes.rb
389
344
  - db/migrate/20190101085530_create_ecom_core_companies.rb
390
345
  - db/migrate/20190101112620_create_ecom_core_lookups.rb
@@ -463,6 +418,8 @@ files:
463
418
  - db/migrate/20201125191158_create_ecom_core_work_item_resource_requirement_templates.rb
464
419
  - db/migrate/20201126191334_create_ecom_core_resource_requisitions.rb
465
420
  - db/migrate/20201126191349_create_ecom_core_resource_requisition_items.rb
421
+ - db/migrate/20210417095657_rename_photo_fields.rb
422
+ - db/migrate/20210417120215_create_active_storage_tables.active_storage.rb
466
423
  - lib/ecom/core.rb
467
424
  - lib/ecom/core/engine.rb
468
425
  - lib/ecom/core/version.rb
@@ -573,7 +530,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
573
530
  - !ruby/object:Gem::Version
574
531
  version: '0'
575
532
  requirements: []
576
- rubygems_version: 3.1.4
533
+ rubygems_version: 3.2.15
577
534
  signing_key:
578
535
  specification_version: 4
579
536
  summary: Core engine for construction management application.
@@ -1,30 +0,0 @@
1
- module Ecom
2
- module Core
3
- class PhotoUploader < CarrierWave::Uploader::Base
4
- if Rails.env.production?
5
- storage :fog
6
- else
7
- storage :file
8
- end
9
-
10
- def store_dir
11
- "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
12
- end
13
-
14
- def extension_whitelist
15
- %w[jpg jpeg gif png]
16
- end
17
-
18
- def filename
19
- "#{secure_token}.#{file.extension}" if original_filename.present?
20
- end
21
-
22
- protected
23
-
24
- def secure_token
25
- var = :"@#{mounted_as}_secure_token"
26
- model.instance_variable_get(var) || model.instance_variable_set(var, SecureRandom.uuid)
27
- end
28
- end
29
- end
30
- end
@@ -1,11 +0,0 @@
1
- module Ecom
2
- module Core
3
- class TaskAttachmentUploader < CarrierWave::Uploader::Base
4
- storage :file
5
-
6
- def store_dir
7
- "#{ENV.fetch('UPLOAD_PREFIX')}uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
8
- end
9
- end
10
- end
11
- end
@@ -1,8 +0,0 @@
1
- CarrierWave.configure do |config|
2
- config.fog_credentials = {
3
- provider: 'Google',
4
- google_storage_access_key_id: ENV["GOOGLE_STORAGE_ACCESS_KEY"],
5
- google_storage_secret_access_key: ENV["GOOGLE_STORAGE_SECRETE_KEY"]
6
- }
7
- config.fog_directory = ENV["GOOGLE_STORAGE_BUCKET_NAME"]
8
- end