jobshop 0.0.167 → 0.0.179

Sign up to get free protection for your applications and to get access to all the features.
Files changed (120) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -2
  3. data/Rakefile +2 -1
  4. data/app/assets/javascripts/application.js +1 -0
  5. data/app/controllers/jobshop/application_controller.rb +3 -1
  6. data/app/controllers/jobshop/dashboards_controller.rb +11 -0
  7. data/app/controllers/jobshop/departments_controller.rb +52 -0
  8. data/app/controllers/jobshop/employees_controller.rb +77 -0
  9. data/app/controllers/jobshop/organizations_controller.rb +29 -0
  10. data/app/controllers/jobshop/rfqs_controller.rb +49 -0
  11. data/app/controllers/jobshop/roles_controller.rb +52 -0
  12. data/app/helpers/jobshop/application_helper.rb +10 -0
  13. data/app/listeners/jobshop/assignment_listener.rb +13 -0
  14. data/app/mailers/jobshop/rfq_responder_mailer.rb +1 -1
  15. data/app/models/jobshop/auditing.rb +20 -0
  16. data/app/models/jobshop/collection.rb +2 -7
  17. data/app/models/jobshop/customer.rb +6 -17
  18. data/app/models/jobshop/customer/category.rb +2 -8
  19. data/app/models/jobshop/customer/contact.rb +3 -8
  20. data/app/models/jobshop/department.rb +10 -0
  21. data/app/models/jobshop/department/assignment.rb +15 -0
  22. data/app/models/jobshop/employee.rb +13 -6
  23. data/app/models/jobshop/employment.rb +8 -8
  24. data/app/models/jobshop/inspection.rb +1 -1
  25. data/app/models/jobshop/inspection/boolean_criterion.rb +13 -17
  26. data/app/models/jobshop/inspection/criterion.rb +9 -10
  27. data/app/models/jobshop/inspection/deviation_criterion.rb +10 -12
  28. data/app/models/jobshop/inspection/limit_criterion.rb +12 -10
  29. data/app/models/jobshop/inspection/report.rb +22 -34
  30. data/app/models/jobshop/mailman.rb +2 -4
  31. data/app/models/jobshop/order.rb +3 -27
  32. data/app/models/jobshop/order_line.rb +4 -10
  33. data/app/models/jobshop/organization.rb +8 -15
  34. data/app/models/jobshop/organization_state.rb +10 -0
  35. data/app/models/jobshop/place.rb +3 -8
  36. data/app/models/jobshop/product.rb +4 -7
  37. data/app/models/jobshop/rfq.rb +32 -14
  38. data/app/models/jobshop/rfq/line.rb +28 -0
  39. data/app/models/jobshop/rfq/line/assignment.rb +25 -0
  40. data/app/models/jobshop/rfq/line/quantity.rb +23 -0
  41. data/app/models/jobshop/role.rb +3 -9
  42. data/app/models/jobshop/role_assignment.rb +10 -4
  43. data/app/models/jobshop/routing_process.rb +4 -10
  44. data/app/models/jobshop/routing_step.rb +3 -5
  45. data/app/models/jobshop/thing.rb +3 -8
  46. data/app/models/jobshop/user.rb +24 -11
  47. data/app/views/jobshop/dashboards/show.html.haml +35 -0
  48. data/app/views/jobshop/departments/_form.html.haml +12 -0
  49. data/app/views/jobshop/departments/edit.html.haml +7 -0
  50. data/app/views/jobshop/departments/index.html.haml +17 -0
  51. data/app/views/jobshop/departments/new.html.haml +5 -0
  52. data/app/views/jobshop/departments/show.html.haml +15 -0
  53. data/app/views/jobshop/employees/_form.html.haml +46 -0
  54. data/app/views/jobshop/employees/edit.html.haml +1 -0
  55. data/app/views/jobshop/employees/index.html.haml +12 -0
  56. data/app/views/jobshop/employees/new.html.haml +1 -0
  57. data/app/views/jobshop/employees/show.html.haml +16 -0
  58. data/app/views/jobshop/organizations/_form.html.haml +10 -0
  59. data/app/views/jobshop/organizations/edit.html.haml +7 -0
  60. data/app/views/jobshop/organizations/index.html.haml +19 -0
  61. data/app/views/jobshop/organizations/new.html.haml +5 -0
  62. data/app/views/jobshop/organizations/show.html.haml +16 -0
  63. data/app/views/jobshop/rfqs/_form.html.haml +60 -0
  64. data/app/views/jobshop/rfqs/edit.html.haml +4 -0
  65. data/app/views/jobshop/rfqs/index.html.haml +2 -0
  66. data/app/views/jobshop/roles/_form.html.haml +11 -0
  67. data/app/views/jobshop/roles/edit.html.haml +7 -0
  68. data/app/views/jobshop/roles/index.html.haml +21 -0
  69. data/app/views/jobshop/roles/new.html.haml +5 -0
  70. data/app/views/jobshop/roles/show.html.haml +3 -0
  71. data/app/views/layouts/jobshop/application.html.haml +50 -2
  72. data/config/initializers/devise.rb +2 -2
  73. data/config/routes.rb +18 -0
  74. data/db/migrate/20170311194758_initialize_jobshop.rb +4 -39
  75. data/db/migrate/20171216021339_create_organizations.rb +3 -8
  76. data/db/migrate/20171216021350_create_users.rb +28 -0
  77. data/db/migrate/20171216021400_create_employees.rb +27 -9
  78. data/db/migrate/20171216021853_create_customers.rb +29 -14
  79. data/db/migrate/20171216022020_create_places.rb +3 -4
  80. data/db/migrate/20171216022135_create_products.rb +4 -4
  81. data/db/migrate/20171216022605_create_orders.rb +27 -13
  82. data/db/migrate/20171216023018_create_roles.rb +30 -27
  83. data/db/migrate/20171216035357_create_things.rb +26 -23
  84. data/db/migrate/20171219022118_create_routing_processes.rb +28 -33
  85. data/db/migrate/20180107203241_create_inspections.rb +48 -115
  86. data/db/migrate/20181117023949_create_rfqs.rb +74 -15
  87. data/db/migrate/20181118014603_create_mailmen.rb +5 -6
  88. data/db/migrate/20190309163306_create_departments.rb +38 -0
  89. data/db/migrate/support/temporal_tables.sql +210 -0
  90. data/db/seeds.rb +92 -64
  91. data/exe/jobshop +1 -0
  92. data/lib/generators/jobshop/app/app_generator.rb +13 -3
  93. data/lib/generators/jobshop/app/templates/Procfile.tt +1 -1
  94. data/lib/generators/jobshop/app/templates/config/databases/postgresql.yml.tt +24 -0
  95. data/lib/generators/jobshop/app/templates/config/puma.rb.tt +44 -0
  96. data/lib/generators/jobshop/canary/canary_generator.rb +21 -9
  97. data/lib/generators/jobshop/dev_cert/dev_cert_generator.rb +124 -0
  98. data/lib/jobshop.rb +1 -1
  99. data/lib/jobshop/cli.rb +3 -3
  100. data/lib/jobshop/cli/app_generator.rb +15 -10
  101. data/lib/jobshop/cli/application.rb +7 -7
  102. data/lib/jobshop/cli/base.rb +65 -0
  103. data/lib/jobshop/cli/canary.rb +120 -22
  104. data/lib/jobshop/configuration.rb +1 -1
  105. data/lib/jobshop/engine.rb +8 -4
  106. data/lib/jobshop/helpers/migration.rb +27 -66
  107. data/lib/jobshop/mailroom/base_handler.rb +1 -1
  108. data/lib/jobshop/mailroom/null_handler.rb +1 -1
  109. data/lib/jobshop/mailroom/postmaster.rb +1 -1
  110. data/lib/jobshop/mailroom/rfq_handler.rb +1 -1
  111. data/lib/jobshop/version.rb +2 -2
  112. data/lib/tasks/jobshop_tasks.rake +15 -1
  113. metadata +114 -61
  114. data/app/controllers/jobshop/organizations/lookups_controller.rb +0 -18
  115. data/app/models/jobshop/employment_version.rb +0 -10
  116. data/app/models/jobshop/inspection/result.rb +0 -46
  117. data/app/models/jobshop/inspection/tuple.rb +0 -17
  118. data/app/models/jobshop/rfq_line.rb +0 -12
  119. data/db/migrate/20171216021554_create_people.rb +0 -43
  120. data/lib/generators/jobshop/app/templates/config/database.yml.tt +0 -19
@@ -5,7 +5,7 @@ module Jobshop
5
5
  attr_accessor :aws, :smtp, :mailer_host, :session_store_url
6
6
 
7
7
  def initialize
8
- self.mailer_host = ENV.fetch("JOBSHOP_MAILER_HOST", "localhost:3000")
8
+ self.mailer_host = ENV.fetch("JOBSHOP_MAILER_HOST", "https://jobshop.test:8443")
9
9
  self.session_store_url = ENV.fetch("JOBSHOP_SESSION_STORE_URL", "")
10
10
 
11
11
  self.aws = ActiveSupport::OrderedOptions.new
@@ -1,8 +1,11 @@
1
- # frozen_string_literals: true
1
+ # frozen_string_literal: true
2
2
 
3
3
  require "devise"
4
4
  require "haml-rails"
5
+ require "sass-rails"
6
+ require "statesman"
5
7
  require "unitwise"
8
+ require "wisper"
6
9
 
7
10
  module Jobshop
8
11
  class Engine < ::Rails::Engine
@@ -12,9 +15,11 @@ module Jobshop
12
15
 
13
16
  config.generators do |g|
14
17
  g.orm :active_record, primary_key_type: :uuid
18
+ g.orm :active_record, foreign_key_type: :uuid
15
19
  g.test_framework :rspec, view_specs: false
16
20
  g.helper false
17
21
  g.javascripts false
22
+ g.stylesheets false
18
23
  end
19
24
 
20
25
  ActiveSupport::Inflector.inflections do |inflect|
@@ -32,7 +37,6 @@ module Jobshop
32
37
  initializer "jobshop.active_record_on_load" do
33
38
  ActiveSupport.on_load(:active_record) do
34
39
  require "activerecord_json_validator"
35
- require "composite_primary_keys"
36
40
  require "fast_jsonapi"
37
41
  end
38
42
  end
@@ -61,13 +65,13 @@ module Jobshop
61
65
  initializer "jobshop.redis" do
62
66
  #require "redis-rails"
63
67
 
64
- Rails.application.config.session_store :cookie_store, key: '_your_app_session'
68
+ Rails.application.config.session_store :cookie_store,
69
+ key: "_your_app_session"
65
70
  #(:redis_store, {
66
71
  # servers: Jobshop.configuration.session_store_url
67
72
  #})
68
73
  end
69
74
 
70
-
71
75
  initializer "jobshop.aws.config" do
72
76
  require "aws-sdk-core"
73
77
 
@@ -1,24 +1,10 @@
1
- # frozen_string_literals: true
1
+ # frozen_string_literal: true
2
2
 
3
3
  module Jobshop
4
4
  module Helpers
5
5
  module Migration
6
- def idx_table_name_pkey(table_name)
7
- execute <<~SQL
8
- ALTER TABLE #{table_name}
9
- ADD PRIMARY KEY USING INDEX idx_#{table_name}_pkey;
10
- SQL
11
- end
12
-
13
6
  def fk_organization(table_name)
14
- foreign_key table_name, :jobshop_organizations, :organization_id
15
- end
16
-
17
- def fk_created_by(table_name)
18
- foreign_key table_name, :jobshop_people, {
19
- organization_id: :organization_id,
20
- created_by_id: :person_id
21
- }
7
+ foreign_key table_name, :jobshop_organizations, { organization_id: :id }
22
8
  end
23
9
 
24
10
  def nested_set_attrs(table_name)
@@ -27,8 +13,7 @@ module Jobshop
27
13
  add_column table_name, :lft, :uuid
28
14
  add_column table_name, :rgt, :uuid
29
15
 
30
- foreign_key table_name, table_name, { organization_id: :organization_id,
31
- parent_id: reference_column }
16
+ foreign_key table_name, table_name, { parent_id: reference_column }
32
17
  end
33
18
 
34
19
  def foreign_key(table_name, reference_table, columns, options = "")
@@ -58,6 +43,8 @@ module Jobshop
58
43
  def create_table_with_auditing(table_name, *args) # rubocop: disable Metrics/MethodLength
59
44
  options = args.extract_options!
60
45
  primary_key_columns = options.delete(:primary_key)
46
+ id_column = options.delete(:id)
47
+ id_column = :uuid if id_column == nil
61
48
 
62
49
  if primary_key_columns.is_a?(Hash)
63
50
  primary_key = []
@@ -73,61 +60,35 @@ module Jobshop
73
60
  end
74
61
 
75
62
  primary_key_hash = Hash[primary_key.zip(types)]
76
- auditing_table_name = table_name.to_s.singularize.concat("_auditing")
77
- args << options
78
-
79
- create_table(table_name, id: false) do |t|
80
- # Put version column first because it is an auditing column
81
- t.bigint :version
82
-
83
- primary_key_hash.each { |name, type| t.send(type, name, null: false) }
84
- t.index primary_key, unique: true, name: :"idx_#{table_name}_pkey"
85
-
86
- # Preserve column order from migration
87
- yield t
88
- end
89
-
90
- idx_table_name_pkey table_name
91
-
92
- create_table(auditing_table_name, id: false) do |t|
93
- # Put auditing columns first for the trigger to work properly
94
- # Do not set a default on the primary key because the trigger sets it
95
- # If the trigger fails to set the ID then this should probably blow up
96
- t.uuid :auditing_id, null: false
97
- t.index :auditing_id, unique: true,
98
- name: :"idx_#{auditing_table_name}_pkey"
99
-
100
- # Called audited_at so it does not conflict with created_at on the
101
- # model being audited
102
- t.datetime :audited_at, null: false
103
-
104
- # Version being audited
105
- t.bigint :version
106
-
107
- # Put primary keys after auditing columns
108
- primary_key_hash.each { |name, type| t.send(type, name, null: false) }
63
+ auditing_table_name = table_name.to_s.concat("_history")
64
+ trigger_name = table_name.to_s.concat("_trigger")
65
+
66
+ # Create primary table to hold presently valid data
67
+ create_table table_name, id: id_column do |t|
68
+ if primary_key_columns
69
+ primary_key_hash.each do |name, type|
70
+ next if :id == name
71
+ t.send(type, name, null: false)
72
+ end
73
+
74
+ t.index primary_key, unique: true,
75
+ name: :"index_jobshop_#{table_name}"
76
+ end
109
77
 
110
- # Preserve column order and put everything else last
111
78
  yield t
112
79
  end
113
80
 
114
- idx_table_name_pkey auditing_table_name
115
- foreign_key auditing_table_name, table_name, primary_key
116
-
117
81
  execute <<~SQL
118
- CREATE
119
- TRIGGER before_audit_#{table_name}
120
- BEFORE INSERT OR UPDATE
121
- ON #{table_name}
122
- FOR EACH ROW EXECUTE PROCEDURE
123
- prepare_auditable();
82
+ ALTER TABLE #{table_name}
83
+ ADD COLUMN sys_period tstzrange NOT NULL
84
+ DEFAULT tstzrange(current_timestamp, NULL);
85
+
86
+ CREATE TABLE #{auditing_table_name} (LIKE #{table_name});
124
87
 
125
- CREATE
126
- TRIGGER #{table_name}_process_audit
127
- AFTER INSERT OR UPDATE
128
- ON #{table_name}
88
+ CREATE TRIGGER #{trigger_name}
89
+ BEFORE INSERT OR UPDATE OR DELETE ON #{table_name}
129
90
  FOR EACH ROW EXECUTE PROCEDURE
130
- process_auditable('#{auditing_table_name}');
91
+ versioning('sys_period', '#{auditing_table_name}', true);
131
92
  SQL
132
93
  end
133
94
  end
@@ -1,4 +1,4 @@
1
- # frozen_string_literals: true
1
+ # frozen_string_literal: true
2
2
 
3
3
  module Jobshop
4
4
  module Mailroom
@@ -1,4 +1,4 @@
1
- # frozen_string_literals: true
1
+ # frozen_string_literal: true
2
2
 
3
3
  module Jobshop
4
4
  module Mailroom
@@ -1,4 +1,4 @@
1
- # frozen_string_literals: true
1
+ # frozen_string_literal: true
2
2
 
3
3
  require "aws-sdk-s3"
4
4
  require "mail"
@@ -1,4 +1,4 @@
1
- # frozen_string_literals: true
1
+ # frozen_string_literal: true
2
2
 
3
3
  module Jobshop
4
4
  module Mailroom
@@ -1,4 +1,4 @@
1
- # frozen_string_literals: true
1
+ # frozen_string_literal: true
2
2
 
3
3
  module Jobshop
4
4
  def self.gem_version
@@ -8,7 +8,7 @@ module Jobshop
8
8
  module VERSION
9
9
  MAJOR = 0
10
10
  MINOR = 0
11
- TINY = 167
11
+ TINY = 179
12
12
  PRE = nil
13
13
 
14
14
  CODE_NAME = "prime time to bump the version"
@@ -1,4 +1,4 @@
1
- # frozen_string_literals: true
1
+ # frozen_string_literal: true
2
2
 
3
3
  # This effectively hides `rake jobshop:install:migrations` from `$ rake -T`.
4
4
  Rake::Task["jobshop:install:migrations"].instance_variable_set(:@comments, [])
@@ -34,6 +34,20 @@ namespace :jobshop do
34
34
  shoryuken -R -q #{queue_name} -r #{postmaster_path}
35
35
  SHELL
36
36
  end
37
+
38
+ namespace :webpack do
39
+ desc "Install dependencies"
40
+ task :install do
41
+ Dir.chdir(File.join(__dir__, "../..")) do
42
+ puts Dir.pwd
43
+ system "yarn install --no-progress --production"
44
+ end
45
+ end
46
+
47
+ desc "Compile assets"
48
+ task compile: %i[ yarn environment ] do
49
+ end
50
+ end
37
51
  end
38
52
 
39
53
  %w( db:migrate db:rollback db:migrate:up db:migrate:down ).each do |t|
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jobshop
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.167
4
+ version: 0.0.179
5
5
  platform: ruby
6
6
  authors:
7
7
  - Frank J. Mattia
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-01-11 00:00:00.000000000 Z
11
+ date: 2019-06-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord_json_validator
@@ -30,56 +30,42 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 1.30.0
33
+ version: 1.39.0
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 1.30.0
40
+ version: 1.39.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: aws-sdk-sqs
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 1.10.0
47
+ version: 1.15.0
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 1.10.0
55
- - !ruby/object:Gem::Dependency
56
- name: composite_primary_keys
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - "~>"
60
- - !ruby/object:Gem::Version
61
- version: 11.1.0
62
- type: :runtime
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - "~>"
67
- - !ruby/object:Gem::Version
68
- version: 11.1.0
54
+ version: 1.15.0
69
55
  - !ruby/object:Gem::Dependency
70
56
  name: devise
71
57
  requirement: !ruby/object:Gem::Requirement
72
58
  requirements:
73
59
  - - "~>"
74
60
  - !ruby/object:Gem::Version
75
- version: 4.5.0
61
+ version: 4.6.0
76
62
  type: :runtime
77
63
  prerelease: false
78
64
  version_requirements: !ruby/object:Gem::Requirement
79
65
  requirements:
80
66
  - - "~>"
81
67
  - !ruby/object:Gem::Version
82
- version: 4.5.0
68
+ version: 4.6.0
83
69
  - !ruby/object:Gem::Dependency
84
70
  name: fast_jsonapi
85
71
  requirement: !ruby/object:Gem::Requirement
@@ -100,14 +86,14 @@ dependencies:
100
86
  requirements:
101
87
  - - "~>"
102
88
  - !ruby/object:Gem::Version
103
- version: 1.0.0
89
+ version: 2.0.0
104
90
  type: :runtime
105
91
  prerelease: false
106
92
  version_requirements: !ruby/object:Gem::Requirement
107
93
  requirements:
108
94
  - - "~>"
109
95
  - !ruby/object:Gem::Version
110
- version: 1.0.0
96
+ version: 2.0.0
111
97
  - !ruby/object:Gem::Dependency
112
98
  name: liner
113
99
  requirement: !ruby/object:Gem::Requirement
@@ -150,6 +136,20 @@ dependencies:
150
136
  - - "~>"
151
137
  - !ruby/object:Gem::Version
152
138
  version: 1.0.2
139
+ - !ruby/object:Gem::Dependency
140
+ name: rails
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - '='
144
+ - !ruby/object:Gem::Version
145
+ version: 5.2.3
146
+ type: :runtime
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - '='
151
+ - !ruby/object:Gem::Version
152
+ version: 5.2.3
153
153
  - !ruby/object:Gem::Dependency
154
154
  name: redis-rails
155
155
  requirement: !ruby/object:Gem::Requirement
@@ -164,20 +164,34 @@ dependencies:
164
164
  - - "~>"
165
165
  - !ruby/object:Gem::Version
166
166
  version: 5.0.2
167
+ - !ruby/object:Gem::Dependency
168
+ name: rolify
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - "~>"
172
+ - !ruby/object:Gem::Version
173
+ version: 5.2.0
174
+ type: :runtime
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - "~>"
179
+ - !ruby/object:Gem::Version
180
+ version: 5.2.0
167
181
  - !ruby/object:Gem::Dependency
168
182
  name: sass-rails
169
183
  requirement: !ruby/object:Gem::Requirement
170
184
  requirements:
171
185
  - - "~>"
172
186
  - !ruby/object:Gem::Version
173
- version: 5.0.0
187
+ version: 5.0.7
174
188
  type: :runtime
175
189
  prerelease: false
176
190
  version_requirements: !ruby/object:Gem::Requirement
177
191
  requirements:
178
192
  - - "~>"
179
193
  - !ruby/object:Gem::Version
180
- version: 5.0.0
194
+ version: 5.0.7
181
195
  - !ruby/object:Gem::Dependency
182
196
  name: shoryuken
183
197
  requirement: !ruby/object:Gem::Requirement
@@ -198,14 +212,14 @@ dependencies:
198
212
  requirements:
199
213
  - - "~>"
200
214
  - !ruby/object:Gem::Version
201
- version: 3.5.0
215
+ version: 4.1.0
202
216
  type: :runtime
203
217
  prerelease: false
204
218
  version_requirements: !ruby/object:Gem::Requirement
205
219
  requirements:
206
220
  - - "~>"
207
221
  - !ruby/object:Gem::Version
208
- version: 3.5.0
222
+ version: 4.1.0
209
223
  - !ruby/object:Gem::Dependency
210
224
  name: unitwise
211
225
  requirement: !ruby/object:Gem::Requirement
@@ -221,33 +235,33 @@ dependencies:
221
235
  - !ruby/object:Gem::Version
222
236
  version: 2.2.0
223
237
  - !ruby/object:Gem::Dependency
224
- name: rails
238
+ name: wisper
225
239
  requirement: !ruby/object:Gem::Requirement
226
240
  requirements:
227
- - - '='
241
+ - - "~>"
228
242
  - !ruby/object:Gem::Version
229
- version: 5.2.2
243
+ version: 2.0.0
230
244
  type: :runtime
231
245
  prerelease: false
232
246
  version_requirements: !ruby/object:Gem::Requirement
233
247
  requirements:
234
- - - '='
248
+ - - "~>"
235
249
  - !ruby/object:Gem::Version
236
- version: 5.2.2
250
+ version: 2.0.0
237
251
  - !ruby/object:Gem::Dependency
238
252
  name: capybara
239
253
  requirement: !ruby/object:Gem::Requirement
240
254
  requirements:
241
255
  - - "~>"
242
256
  - !ruby/object:Gem::Version
243
- version: '3.9'
257
+ version: '3.16'
244
258
  type: :development
245
259
  prerelease: false
246
260
  version_requirements: !ruby/object:Gem::Requirement
247
261
  requirements:
248
262
  - - "~>"
249
263
  - !ruby/object:Gem::Version
250
- version: '3.9'
264
+ version: '3.16'
251
265
  - !ruby/object:Gem::Dependency
252
266
  name: coveralls
253
267
  requirement: !ruby/object:Gem::Requirement
@@ -262,34 +276,20 @@ dependencies:
262
276
  - - "~>"
263
277
  - !ruby/object:Gem::Version
264
278
  version: '0.8'
265
- - !ruby/object:Gem::Dependency
266
- name: database_cleaner
267
- requirement: !ruby/object:Gem::Requirement
268
- requirements:
269
- - - "~>"
270
- - !ruby/object:Gem::Version
271
- version: '1.6'
272
- type: :development
273
- prerelease: false
274
- version_requirements: !ruby/object:Gem::Requirement
275
- requirements:
276
- - - "~>"
277
- - !ruby/object:Gem::Version
278
- version: '1.6'
279
279
  - !ruby/object:Gem::Dependency
280
280
  name: factory_bot_rails
281
281
  requirement: !ruby/object:Gem::Requirement
282
282
  requirements:
283
283
  - - "~>"
284
284
  - !ruby/object:Gem::Version
285
- version: '4.6'
285
+ version: '5.0'
286
286
  type: :development
287
287
  prerelease: false
288
288
  version_requirements: !ruby/object:Gem::Requirement
289
289
  requirements:
290
290
  - - "~>"
291
291
  - !ruby/object:Gem::Version
292
- version: '4.6'
292
+ version: '5.0'
293
293
  - !ruby/object:Gem::Dependency
294
294
  name: faker
295
295
  requirement: !ruby/object:Gem::Requirement
@@ -346,20 +346,34 @@ dependencies:
346
346
  - - "~>"
347
347
  - !ruby/object:Gem::Version
348
348
  version: '3.5'
349
+ - !ruby/object:Gem::Dependency
350
+ name: selenium-webdriver
351
+ requirement: !ruby/object:Gem::Requirement
352
+ requirements:
353
+ - - "~>"
354
+ - !ruby/object:Gem::Version
355
+ version: '3.141'
356
+ type: :development
357
+ prerelease: false
358
+ version_requirements: !ruby/object:Gem::Requirement
359
+ requirements:
360
+ - - "~>"
361
+ - !ruby/object:Gem::Version
362
+ version: '3.141'
349
363
  - !ruby/object:Gem::Dependency
350
364
  name: shoulda-matchers
351
365
  requirement: !ruby/object:Gem::Requirement
352
366
  requirements:
353
367
  - - "~>"
354
368
  - !ruby/object:Gem::Version
355
- version: 4.0.0.rc1
369
+ version: '4.0'
356
370
  type: :development
357
371
  prerelease: false
358
372
  version_requirements: !ruby/object:Gem::Requirement
359
373
  requirements:
360
374
  - - "~>"
361
375
  - !ruby/object:Gem::Version
362
- version: 4.0.0.rc1
376
+ version: '4.0'
363
377
  - !ruby/object:Gem::Dependency
364
378
  name: terminal-table
365
379
  requirement: !ruby/object:Gem::Requirement
@@ -400,42 +414,52 @@ files:
400
414
  - LICENSE
401
415
  - README.md
402
416
  - Rakefile
417
+ - app/assets/javascripts/application.js
403
418
  - app/controllers/jobshop/application_controller.rb
404
419
  - app/controllers/jobshop/dashboards_controller.rb
405
- - app/controllers/jobshop/organizations/lookups_controller.rb
420
+ - app/controllers/jobshop/departments_controller.rb
421
+ - app/controllers/jobshop/employees_controller.rb
422
+ - app/controllers/jobshop/organizations_controller.rb
406
423
  - app/controllers/jobshop/places_controller.rb
407
424
  - app/controllers/jobshop/registrations_controller.rb
425
+ - app/controllers/jobshop/rfqs_controller.rb
426
+ - app/controllers/jobshop/roles_controller.rb
408
427
  - app/controllers/jobshop/users_controller.rb
428
+ - app/helpers/jobshop/application_helper.rb
409
429
  - app/jobs/jobshop/application_job.rb
430
+ - app/listeners/jobshop/assignment_listener.rb
410
431
  - app/mailers/jobshop/application_mailer.rb
411
432
  - app/mailers/jobshop/rfq_responder_mailer.rb
412
433
  - app/models/jobshop/ability.rb
413
434
  - app/models/jobshop/application_record.rb
435
+ - app/models/jobshop/auditing.rb
414
436
  - app/models/jobshop/collection.rb
415
437
  - app/models/jobshop/customer.rb
416
438
  - app/models/jobshop/customer/category.rb
417
439
  - app/models/jobshop/customer/contact.rb
418
440
  - app/models/jobshop/dashboard.rb
441
+ - app/models/jobshop/department.rb
442
+ - app/models/jobshop/department/assignment.rb
419
443
  - app/models/jobshop/employee.rb
420
444
  - app/models/jobshop/employment.rb
421
- - app/models/jobshop/employment_version.rb
422
445
  - app/models/jobshop/inspection.rb
423
446
  - app/models/jobshop/inspection/boolean_criterion.rb
424
447
  - app/models/jobshop/inspection/criterion.rb
425
448
  - app/models/jobshop/inspection/deviation_criterion.rb
426
449
  - app/models/jobshop/inspection/limit_criterion.rb
427
450
  - app/models/jobshop/inspection/report.rb
428
- - app/models/jobshop/inspection/result.rb
429
- - app/models/jobshop/inspection/tuple.rb
430
451
  - app/models/jobshop/mailman.rb
431
452
  - app/models/jobshop/order.rb
432
453
  - app/models/jobshop/order_line.rb
433
454
  - app/models/jobshop/organization.rb
455
+ - app/models/jobshop/organization_state.rb
434
456
  - app/models/jobshop/place.rb
435
457
  - app/models/jobshop/product.rb
436
458
  - app/models/jobshop/registration.rb
437
459
  - app/models/jobshop/rfq.rb
438
- - app/models/jobshop/rfq_line.rb
460
+ - app/models/jobshop/rfq/line.rb
461
+ - app/models/jobshop/rfq/line/assignment.rb
462
+ - app/models/jobshop/rfq/line/quantity.rb
439
463
  - app/models/jobshop/role.rb
440
464
  - app/models/jobshop/role_ability.rb
441
465
  - app/models/jobshop/role_assignment.rb
@@ -444,8 +468,32 @@ files:
444
468
  - app/models/jobshop/thing.rb
445
469
  - app/models/jobshop/user.rb
446
470
  - app/models/jobshop/virtual_record.rb
471
+ - app/views/jobshop/dashboards/show.html.haml
472
+ - app/views/jobshop/departments/_form.html.haml
473
+ - app/views/jobshop/departments/edit.html.haml
474
+ - app/views/jobshop/departments/index.html.haml
475
+ - app/views/jobshop/departments/new.html.haml
476
+ - app/views/jobshop/departments/show.html.haml
477
+ - app/views/jobshop/employees/_form.html.haml
478
+ - app/views/jobshop/employees/edit.html.haml
479
+ - app/views/jobshop/employees/index.html.haml
480
+ - app/views/jobshop/employees/new.html.haml
481
+ - app/views/jobshop/employees/show.html.haml
482
+ - app/views/jobshop/organizations/_form.html.haml
483
+ - app/views/jobshop/organizations/edit.html.haml
484
+ - app/views/jobshop/organizations/index.html.haml
485
+ - app/views/jobshop/organizations/new.html.haml
486
+ - app/views/jobshop/organizations/show.html.haml
447
487
  - app/views/jobshop/rfq_responder_mailer/verified_contact.html.erb
448
488
  - app/views/jobshop/rfq_responder_mailer/verified_contact.text.erb
489
+ - app/views/jobshop/rfqs/_form.html.haml
490
+ - app/views/jobshop/rfqs/edit.html.haml
491
+ - app/views/jobshop/rfqs/index.html.haml
492
+ - app/views/jobshop/roles/_form.html.haml
493
+ - app/views/jobshop/roles/edit.html.haml
494
+ - app/views/jobshop/roles/index.html.haml
495
+ - app/views/jobshop/roles/new.html.haml
496
+ - app/views/jobshop/roles/show.html.haml
449
497
  - app/views/layouts/jobshop/application.html.haml
450
498
  - app/views/layouts/jobshop/mailer.html.erb
451
499
  - app/views/layouts/jobshop/mailer.text.erb
@@ -454,8 +502,8 @@ files:
454
502
  - config/routes.rb
455
503
  - db/migrate/20170311194758_initialize_jobshop.rb
456
504
  - db/migrate/20171216021339_create_organizations.rb
505
+ - db/migrate/20171216021350_create_users.rb
457
506
  - db/migrate/20171216021400_create_employees.rb
458
- - db/migrate/20171216021554_create_people.rb
459
507
  - db/migrate/20171216021853_create_customers.rb
460
508
  - db/migrate/20171216022020_create_places.rb
461
509
  - db/migrate/20171216022135_create_products.rb
@@ -466,22 +514,27 @@ files:
466
514
  - db/migrate/20180107203241_create_inspections.rb
467
515
  - db/migrate/20181117023949_create_rfqs.rb
468
516
  - db/migrate/20181118014603_create_mailmen.rb
517
+ - db/migrate/20190309163306_create_departments.rb
518
+ - db/migrate/support/temporal_tables.sql
469
519
  - db/seeds.rb
470
520
  - exe/jobshop
471
521
  - lib/generators/jobshop/app/USAGE
472
522
  - lib/generators/jobshop/app/app_generator.rb
473
523
  - lib/generators/jobshop/app/templates/Procfile.tt
474
524
  - lib/generators/jobshop/app/templates/README.md.tt
475
- - lib/generators/jobshop/app/templates/config/database.yml.tt
525
+ - lib/generators/jobshop/app/templates/config/databases/postgresql.yml.tt
526
+ - lib/generators/jobshop/app/templates/config/puma.rb.tt
476
527
  - lib/generators/jobshop/canary/canary_generator.rb
477
528
  - lib/generators/jobshop/canary/templates/config/boot.rb.tt
478
529
  - lib/generators/jobshop/config/config_generator.rb
479
530
  - lib/generators/jobshop/config/templates/config/initializers/jobshop.rb.tt
531
+ - lib/generators/jobshop/dev_cert/dev_cert_generator.rb
480
532
  - lib/generators/jobshop/orm_helpers.rb
481
533
  - lib/jobshop.rb
482
534
  - lib/jobshop/cli.rb
483
535
  - lib/jobshop/cli/app_generator.rb
484
536
  - lib/jobshop/cli/application.rb
537
+ - lib/jobshop/cli/base.rb
485
538
  - lib/jobshop/cli/canary.rb
486
539
  - lib/jobshop/configuration.rb
487
540
  - lib/jobshop/engine.rb
@@ -512,7 +565,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
512
565
  - !ruby/object:Gem::Version
513
566
  version: '0'
514
567
  requirements: []
515
- rubygems_version: 3.0.1
568
+ rubygems_version: 3.0.3
516
569
  signing_key:
517
570
  specification_version: 4
518
571
  summary: An Open Source Manufacturing Execution System