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.
- checksums.yaml +4 -4
- data/app/controllers/ecom/core/users_controller.rb +5 -0
- data/app/models/ecom/core/crew.rb +1 -1
- data/app/models/ecom/core/crew_contract.rb +11 -1
- data/app/models/ecom/core/crew_time.rb +6 -6
- data/app/models/ecom/core/maintenance_status.rb +5 -0
- data/app/models/ecom/core/measurement_unit.rb +1 -1
- data/app/models/ecom/core/site_crew.rb +10 -2
- data/app/models/ecom/core/task_attachment.rb +1 -2
- data/app/models/ecom/core/work_order.rb +1 -0
- data/app/models/ecom/core/work_package.rb +1 -0
- data/app/serializers/ecom/core/user_lookup_serializer.rb +11 -0
- data/app/services/ecom/core/crew_contract_transaction_service.rb +14 -3
- data/config/routes.rb +1 -0
- data/db/migrate/20191207103731_create_ecom_core_work_orders.rb +4 -0
- data/db/migrate/20200813165553_create_ecom_core_measurement_units.rb +1 -1
- data/db/migrate/20201013072924_create_ecom_core_crew_contract_transactions.rb +1 -1
- data/db/migrate/20210417095657_rename_photo_fields.rb +6 -0
- data/db/migrate/20210417120215_create_active_storage_tables.active_storage.rb +36 -0
- data/lib/ecom/core/version.rb +1 -1
- data/lib/ecom_core.rb +0 -2
- data/spec/factories/ecom/core/crews.rb +1 -1
- data/spec/factories/ecom/core/measurement_units.rb +1 -1
- data/spec/factories/ecom/core/task_attachments.rb +0 -1
- data/spec/factories/ecom/core/work_orders.rb +1 -0
- metadata +8 -87
- data/app/models/ecom/core/unit_of_measure.rb +0 -8
- data/app/uploaders/ecom/core/photo_uploader.rb +0 -30
- data/app/uploaders/ecom/core/task_attachment_uploader.rb +0 -11
- data/config/initializers/carrierwave.rb +0 -8
- data/db/migrate/20191118052213_create_ecom_core_unit_of_measures.rb +0 -11
- 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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6ab0c6a8f72737d10832fea25871db88c0bf73fb77d64ff9cb0daff2b17e1db4
|
4
|
+
data.tar.gz: 66794ac216ecde16a14605908bb6aa1d1122f4da9afc2492ff706cf7990f89e9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
-
|
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,
|
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
|
-
|
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, :
|
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:
|
17
|
-
if:
|
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,25 +1,28 @@
|
|
1
1
|
module Ecom
|
2
2
|
module Core
|
3
3
|
class CrewContractTransactionService
|
4
|
-
def execute(
|
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 :
|
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.
|
6
|
+
t.date :effective_date, null: false
|
7
7
|
|
8
8
|
t.references :crew_contract,
|
9
9
|
null: false,
|
@@ -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
|
data/lib/ecom/core/version.rb
CHANGED
data/lib/ecom_core.rb
CHANGED
@@ -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
|
-
|
13
|
+
photo_url { FFaker::Name.name }
|
14
14
|
guarantor_name { FFaker::Name.name }
|
15
15
|
guarantor_phone { FFaker::Name.name }
|
16
16
|
active { true }
|
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.
|
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-
|
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.
|
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.
|
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.
|
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,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,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
|