ecom_core 1.3.9 → 1.3.14

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.
Files changed (32) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/ecom/core/users_controller.rb +5 -0
  3. data/app/models/ecom/core/crew.rb +1 -1
  4. data/app/models/ecom/core/crew_contract.rb +11 -1
  5. data/app/models/ecom/core/crew_time.rb +6 -6
  6. data/app/models/ecom/core/maintenance_status.rb +5 -0
  7. data/app/models/ecom/core/measurement_unit.rb +1 -1
  8. data/app/models/ecom/core/site_crew.rb +10 -2
  9. data/app/models/ecom/core/task_attachment.rb +1 -2
  10. data/app/models/ecom/core/work_order.rb +1 -0
  11. data/app/models/ecom/core/work_package.rb +1 -0
  12. data/app/serializers/ecom/core/user_lookup_serializer.rb +11 -0
  13. data/app/services/ecom/core/crew_contract_transaction_service.rb +14 -3
  14. data/config/routes.rb +1 -0
  15. data/db/migrate/20191207103731_create_ecom_core_work_orders.rb +4 -0
  16. data/db/migrate/20200813165553_create_ecom_core_measurement_units.rb +1 -1
  17. data/db/migrate/20201013072924_create_ecom_core_crew_contract_transactions.rb +1 -1
  18. data/db/migrate/20210417095657_rename_photo_fields.rb +6 -0
  19. data/db/migrate/20210417120215_create_active_storage_tables.active_storage.rb +36 -0
  20. data/lib/ecom/core/version.rb +1 -1
  21. data/lib/ecom_core.rb +0 -2
  22. data/spec/factories/ecom/core/crews.rb +1 -1
  23. data/spec/factories/ecom/core/measurement_units.rb +1 -1
  24. data/spec/factories/ecom/core/task_attachments.rb +0 -1
  25. data/spec/factories/ecom/core/work_orders.rb +1 -0
  26. metadata +8 -87
  27. data/app/models/ecom/core/unit_of_measure.rb +0 -8
  28. data/app/uploaders/ecom/core/photo_uploader.rb +0 -30
  29. data/app/uploaders/ecom/core/task_attachment_uploader.rb +0 -11
  30. data/config/initializers/carrierwave.rb +0 -8
  31. data/db/migrate/20191118052213_create_ecom_core_unit_of_measures.rb +0 -11
  32. data/spec/factories/ecom/core/unit_of_measures.rb +0 -7
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 93617ca2cba869a455385832706b991a6e206c6bafac294033a4b3809fb9e686
4
- data.tar.gz: a6f5092c66cd10be3f4620cf06dd423acbd84152351e5e99822fb5111f9ba541
3
+ metadata.gz: 6ab0c6a8f72737d10832fea25871db88c0bf73fb77d64ff9cb0daff2b17e1db4
4
+ data.tar.gz: 66794ac216ecde16a14605908bb6aa1d1122f4da9afc2492ff706cf7990f89e9
5
5
  SHA512:
6
- metadata.gz: fdcfcacdc4a155932db91f7e3e334fc1b7b32e66e9855bb326459f9f2dd58898e80d609213fb9064588597f5dc83366cc22e51904061ac2a9cdd408b9f032567
7
- data.tar.gz: e364a949d017317191bb870e53ac40b891970486dbd629fd85684ed949f27f3738f2c0634b5886f574c2d734b65beafcc2880604d01fcf2f8ab950259cab1ad9
6
+ metadata.gz: d105dfc24a2258093e5ad7b69e67c85ce9ba9d7210f39d5b7cd380b9a44450a0f56de7f11879084975ef1049ca4fdb2fc2d6f85fe89c235211cf31fab1636e3b
7
+ data.tar.gz: d6152ee67ea533f0ad926843502d5b25d7f9429cffac6a982db9e126dd09f17c9118ee93167cccf15b84304726c84473a89174a4857c7e5e1b79baa9ac04506e
@@ -7,6 +7,11 @@ module Ecom
7
7
  render json: User.all
8
8
  end
9
9
 
10
+ def lookup
11
+ data = ActiveModelSerializers::SerializableResource.new(User.all, each_serializer: UserLookupSerializer)
12
+ render json: { success: true, data: data }
13
+ end
14
+
10
15
  def active
11
16
  render json: User.active
12
17
  end
@@ -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
@@ -5,6 +5,7 @@ module Ecom
5
5
 
6
6
  belongs_to :crew
7
7
  belongs_to :crew_type
8
+ has_many :crew_contract_transactions
8
9
 
9
10
  validates :status, :contract_no, :from, :to, :place_of_work, :probation_period,
10
11
  :contract_type, :wage, :wage_in_words, :crew_type_id, :crew_type, presence: true
@@ -14,10 +15,19 @@ module Ecom
14
15
  validates :wage, presence: true, numericality: { greater_than: 0 }
15
16
 
16
17
  validates_uniqueness_of :crew_id,
17
- if: -> { status == 'in_effect' },
18
+ scope: :status,
19
+ if: :contract_in_effect_exists?,
18
20
  message: 'There can only be one contract' \
19
21
  ' with status `In effect` for a given crew at a time'
20
22
 
23
+ def contract_in_effect_exists?
24
+ contracts_in_effect = Ecom::Core::CrewContract.where(crew_id: crew_id, status: 'in_effect')
25
+
26
+ return true unless contracts_in_effect.empty?
27
+
28
+ false
29
+ end
30
+
21
31
  def validate_date_range
22
32
  return unless from && to
23
33
 
@@ -13,7 +13,7 @@ module Ecom
13
13
 
14
14
  validates :checkin_time, presence: true, if: :checkout_time
15
15
  validate :time_range_validation, :total_time_validation
16
- validates :hours, presence: true, numericality: { greater_than_or_equal_to: 0 }
16
+ validates :hours, numericality: { greater_than_or_equal_to: 0 }, allow_nil: true
17
17
 
18
18
  scope :by_attendance, lambda { |id|
19
19
  joins(:attendance_sheet_entry).where(ecom_core_attendance_sheet_entries: { attendance_sheet_id: id })
@@ -32,11 +32,8 @@ module Ecom
32
32
  def total_time_validation
33
33
  return if checkout_time.nil? || checkin_time.nil?
34
34
 
35
- if new_record? & !persisted?
36
- if attendance_sheet_entry.total_hours + compute_hours > 8
37
- errors.add(:attendance_sheet_entry, 'has more than 8 hours')
38
- end
39
- elsif attendance_sheet_entry.total_hours + compute_hours - computed_hour > 8
35
+ if new_record? & !persisted? & (attendance_sheet_entry.total_hours + compute_hours > 8) ||
36
+ (attendance_sheet_entry.total_hours + compute_hours - computed_hour > 8)
40
37
  errors.add(:attendance_sheet_entry, 'has more than 8 hours')
41
38
  end
42
39
  end
@@ -119,6 +116,9 @@ module Ecom
119
116
  # the the currently presisted checkin_time and checkout_time
120
117
  def computed_hour
121
118
  # Reparse time to avoid errors caused by date differences
119
+
120
+ return 0 if checkin_time_was.nil? || checkout_time_was.nil?
121
+
122
122
  range = define_range
123
123
  start = Time.zone.parse(checkin_time_was.strftime('%I:%M%p'))
124
124
  finish = Time.zone.parse(checkout_time_was.strftime('%I:%M%p'))
@@ -1,6 +1,11 @@
1
1
  module Ecom
2
2
  module Core
3
3
  class MaintenanceStatus < Lookup
4
+ EQUIPMENT_NOT_RECEIVED = 'Equipment not received'.freeze
5
+ RECEIVED_EQUIPMENT = 'Received equipment'.freeze
6
+ IN_PROGRESS = 'In progress'.freeze
7
+ WAITING_FOR_PARTS = 'Waiting for parts'.freeze
8
+ MAINTENANCE_COMPLETED = 'Maintenance completed'.freeze
4
9
  end
5
10
  end
6
11
  end
@@ -19,7 +19,7 @@ module Ecom
19
19
 
20
20
  PHYSICAL_QUANTITIES = [LENGTH, MASS, TIME, CURRENT, TEMPRATURE, AREA, VOLUME, ENERGY, DENSITY].freeze
21
21
 
22
- validates :name, :abbrivation, :physical_quantity,
22
+ validates :name, :abbreviation, :physical_quantity,
23
23
  :conversion_factor, :system_of_measurement, presence: true
24
24
 
25
25
  validates :is_si_unit, inclusion: { in: [true, false] }
@@ -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
@@ -0,0 +1,11 @@
1
+ module Ecom
2
+ module Core
3
+ class UserLookupSerializer < ActiveModel::Serializer
4
+ attributes :id, :name
5
+
6
+ def name
7
+ "#{object.first_name} #{object.last_name}"
8
+ end
9
+ end
10
+ end
11
+ end
@@ -1,25 +1,28 @@
1
1
  module Ecom
2
2
  module Core
3
3
  class CrewContractTransactionService
4
- def execute(transaction_type, crew_contract)
4
+ def execute(crew_contract_transaction, crew_contract)
5
5
  Ecom::Core::CrewContractTransaction.transaction do
6
- case transaction_type
6
+ case crew_contract_transaction.transaction_type
7
7
  when Ecom::Core::CrewContractTransaction::TXN_UPDATE_CREW_TYPE
8
8
 
9
9
  create_new_id_card(crew_contract.crew, crew_contract.to)
10
10
  # update crew type
11
11
  crew = crew_contract.crew
12
12
  crew.update(crew_type_id: crew_contract.crew_type_id)
13
+ crew_contract_transaction.update(status: Ecom::Core::CrewContractTransaction::EXECUTED)
13
14
 
14
15
  when Ecom::Core::CrewContractTransaction::TXN_UPDATE_PLACE_OF_WORK
15
16
 
16
17
  create_new_id_card(crew_contract.crew, crew_contract.to)
18
+ crew_contract_transaction.update(status: Ecom::Core::CrewContractTransaction::EXECUTED)
17
19
 
18
20
  when Ecom::Core::CrewContractTransaction::TXN_UPDATE_WAGE
19
21
 
20
22
  crew = crew_contract.crew
21
23
  # update wage
22
24
  crew.update(wage: crew_contract.wage, wage_in_words: crew_contract.wage_in_words)
25
+ crew_contract_transaction.update(status: Ecom::Core::CrewContractTransaction::EXECUTED)
23
26
 
24
27
  when Ecom::Core::CrewContractTransaction::TXN_UPDATE_VALIDITY
25
28
 
@@ -27,18 +30,22 @@ module Ecom
27
30
  create_new_id_card(crew_contract.crew, crew_contract.to)
28
31
  make_crew_active(crew_contract.crew)
29
32
  activate_contract(crew_contract)
33
+ crew_contract_transaction.update(status: Ecom::Core::CrewContractTransaction::EXECUTED)
30
34
 
31
35
  when Ecom::Core::CrewContractTransaction::TXN_TERMINATE_CONTRACT
32
36
 
33
37
  # make crew inactive
34
38
  make_crew_inactive(crew_contract.crew)
35
39
 
36
- # make ID card invalid
40
+ # make ID card and gate pass invalid
37
41
  invalidate_id_card(crew_contract.crew)
42
+ invalidate_gate_pass(crew_contract.crew)
38
43
 
39
44
  # make the contract void
40
45
  deactivate_contract(crew_contract)
41
46
 
47
+ crew_contract_transaction.update(status: Ecom::Core::CrewContractTransaction::EXECUTED)
48
+
42
49
  end
43
50
  end
44
51
  end
@@ -84,6 +91,10 @@ module Ecom
84
91
  current_id_card = Ecom::Core::CrewIdCard.where(crew_id: crew.id).last
85
92
  current_id_card.update(status: 'Invalid')
86
93
  end
94
+
95
+ def invalidate_gate_pass(crew)
96
+ Ecom::Core::SiteCrew.where(crew_id: crew.id).update(status: Ecom::Core::SiteCrew::INACTIVE)
97
+ end
87
98
  end
88
99
  end
89
100
  end
data/config/routes.rb CHANGED
@@ -6,6 +6,7 @@ Ecom::Core::Engine.routes.draw do
6
6
  resources :menus, only: %i[index]
7
7
  resources :users, only: %i[index create update]
8
8
  get '/users/active', controller: :users, action: :active
9
+ get '/users/lookup', controller: :users, action: :lookup
9
10
 
10
11
 
11
12
  resources :crew_types
@@ -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' },
@@ -2,7 +2,7 @@ class CreateEcomCoreMeasurementUnits < ActiveRecord::Migration[6.0]
2
2
  def change
3
3
  create_table :ecom_core_measurement_units do |t|
4
4
  t.string :name, null: false
5
- t.string :abbrivation, null: false
5
+ t.string :abbreviation, null: false
6
6
  t.string :physical_quantity, null: false
7
7
  t.boolean :is_si_unit, null: false, default: false
8
8
  t.float :conversion_factor, null: false
@@ -3,7 +3,7 @@ class CreateEcomCoreCrewContractTransactions < ActiveRecord::Migration[6.0]
3
3
  create_table :ecom_core_crew_contract_transactions do |t|
4
4
  t.string :transaction_type, null: false
5
5
  t.string :status, null: false, default: 'Pending'
6
- t.datetime :effective_date, null: false
6
+ t.date :effective_date, null: false
7
7
 
8
8
  t.references :crew_contract,
9
9
  null: false,
@@ -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.9'.freeze
3
+ VERSION = '1.3.14'.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,7 +1,7 @@
1
1
  FactoryBot.define do
2
2
  factory :measurement_unit, class: Ecom::Core::MeasurementUnit do
3
3
  name { 'Meter' }
4
- abbrivation { 'm' }
4
+ abbreviation { 'm' }
5
5
  physical_quantity { Ecom::Core::MeasurementUnit::LENGTH }
6
6
  is_si_unit { true }
7
7
  conversion_factor { 1 }
@@ -2,7 +2,6 @@ FactoryBot.define do
2
2
  factory :task_attachment, class: Ecom::Core::TaskAttachment do
3
3
  title { FFaker::Name.name }
4
4
  description { FFaker::Name.name }
5
- file { FFaker::Name.name }
6
5
  association :task
7
6
  end
8
7
  end
@@ -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.9
4
+ version: 1.3.14
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-02 00:00:00.000000000 Z
11
+ date: 2021-06-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aasm
@@ -38,26 +38,6 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: 0.10.0
41
- - !ruby/object:Gem::Dependency
42
- name: after_commit_everywhere
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - "~>"
46
- - !ruby/object:Gem::Version
47
- version: '0.1'
48
- - - ">="
49
- - !ruby/object:Gem::Version
50
- version: 0.1.5
51
- type: :runtime
52
- prerelease: false
53
- version_requirements: !ruby/object:Gem::Requirement
54
- requirements:
55
- - - "~>"
56
- - !ruby/object:Gem::Version
57
- version: '0.1'
58
- - - ">="
59
- - !ruby/object:Gem::Version
60
- version: 0.1.5
61
41
  - !ruby/object:Gem::Dependency
62
42
  name: ancestry
63
43
  requirement: !ruby/object:Gem::Requirement
@@ -86,34 +66,6 @@ dependencies:
86
66
  - - ">="
87
67
  - !ruby/object:Gem::Version
88
68
  version: '0'
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
105
- requirement: !ruby/object:Gem::Requirement
106
- requirements:
107
- - - ">="
108
- - !ruby/object:Gem::Version
109
- version: '0'
110
- type: :runtime
111
- prerelease: false
112
- version_requirements: !ruby/object:Gem::Requirement
113
- requirements:
114
- - - ">="
115
- - !ruby/object:Gem::Version
116
- version: '0'
117
69
  - !ruby/object:Gem::Dependency
118
70
  name: jwt
119
71
  requirement: !ruby/object:Gem::Requirement
@@ -134,42 +86,14 @@ dependencies:
134
86
  requirements:
135
87
  - - "~>"
136
88
  - !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
89
+ version: 6.1.3
166
90
  type: :runtime
167
91
  prerelease: false
168
92
  version_requirements: !ruby/object:Gem::Requirement
169
93
  requirements:
170
94
  - - "~>"
171
95
  - !ruby/object:Gem::Version
172
- version: 1.12.0
96
+ version: 6.1.3
173
97
  - !ruby/object:Gem::Dependency
174
98
  name: factory_bot_rails
175
99
  requirement: !ruby/object:Gem::Requirement
@@ -360,7 +284,6 @@ files:
360
284
  - app/models/ecom/core/task_template_inspection_checklist.rb
361
285
  - app/models/ecom/core/task_template_type.rb
362
286
  - app/models/ecom/core/unit_cost.rb
363
- - app/models/ecom/core/unit_of_measure.rb
364
287
  - app/models/ecom/core/user.rb
365
288
  - app/models/ecom/core/user_role.rb
366
289
  - app/models/ecom/core/work_item_resource_requirement_template.rb
@@ -372,6 +295,7 @@ files:
372
295
  - app/serializers/ecom/core/lookup_serializer.rb
373
296
  - app/serializers/ecom/core/resource_type_serializer.rb
374
297
  - app/serializers/ecom/core/unit_cost_serializer.rb
298
+ - app/serializers/ecom/core/user_lookup_serializer.rb
375
299
  - app/serializers/ecom/core/user_role_serializer.rb
376
300
  - app/serializers/ecom/core/user_serializer.rb
377
301
  - app/services/ecom/core/crew_contract_transaction_service.rb
@@ -379,16 +303,12 @@ files:
379
303
  - app/services/ecom/core/menu_service.rb
380
304
  - app/services/ecom/core/site_crew_service.rb
381
305
  - app/services/ecom/core/token_auth_service.rb
382
- - app/uploaders/ecom/core/photo_uploader.rb
383
- - app/uploaders/ecom/core/task_attachment_uploader.rb
384
306
  - app/validators/ecom/core/date_range_validator.rb
385
307
  - config/database.ci.yml
386
- - config/initializers/carrierwave.rb
387
308
  - config/routes.rb
388
309
  - db/migrate/20190101085530_create_ecom_core_companies.rb
389
310
  - db/migrate/20190101112620_create_ecom_core_lookups.rb
390
311
  - db/migrate/20190101112625_create_ecom_core_overtime_types.rb
391
- - db/migrate/20191118052213_create_ecom_core_unit_of_measures.rb
392
312
  - db/migrate/20191119010518_create_ecom_core_task_template_types.rb
393
313
  - db/migrate/20191119012030_create_ecom_core_task_templates.rb
394
314
  - db/migrate/20191119013236_create_ecom_core_work_product_templates.rb
@@ -462,6 +382,8 @@ files:
462
382
  - db/migrate/20201125191158_create_ecom_core_work_item_resource_requirement_templates.rb
463
383
  - db/migrate/20201126191334_create_ecom_core_resource_requisitions.rb
464
384
  - db/migrate/20201126191349_create_ecom_core_resource_requisition_items.rb
385
+ - db/migrate/20210417095657_rename_photo_fields.rb
386
+ - db/migrate/20210417120215_create_active_storage_tables.active_storage.rb
465
387
  - lib/ecom/core.rb
466
388
  - lib/ecom/core/engine.rb
467
389
  - lib/ecom/core/version.rb
@@ -545,7 +467,6 @@ files:
545
467
  - spec/factories/ecom/core/task_templates.rb
546
468
  - spec/factories/ecom/core/tasks.rb
547
469
  - spec/factories/ecom/core/unit_costs.rb
548
- - spec/factories/ecom/core/unit_of_measures.rb
549
470
  - spec/factories/ecom/core/user_roles.rb
550
471
  - spec/factories/ecom/core/users.rb
551
472
  - spec/factories/ecom/core/work_item_resource_requirement_templates.rb
@@ -572,7 +493,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
572
493
  - !ruby/object:Gem::Version
573
494
  version: '0'
574
495
  requirements: []
575
- rubygems_version: 3.1.4
496
+ rubygems_version: 3.2.15
576
497
  signing_key:
577
498
  specification_version: 4
578
499
  summary: Core engine for construction management application.
@@ -1,8 +0,0 @@
1
- module Ecom
2
- module Core
3
- class UnitOfMeasure < ApplicationRecord
4
- validates :code, :name, presence: true
5
- validates :code, uniqueness: true
6
- end
7
- end
8
- end
@@ -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
@@ -1,11 +0,0 @@
1
- class CreateEcomCoreUnitOfMeasures < ActiveRecord::Migration[6.0]
2
- def change
3
- create_table :ecom_core_unit_of_measures do |t|
4
- t.string :code, unique: true
5
- t.string :name, null: false
6
- t.string :description
7
-
8
- t.timestamps
9
- end
10
- end
11
- end
@@ -1,7 +0,0 @@
1
- FactoryBot.define do
2
- factory :unit_of_measure, class: Ecom::Core::UnitOfMeasure do
3
- code { FFaker::Name.name }
4
- name { FFaker::Name.name }
5
- description { FFaker::Name.name }
6
- end
7
- end