mobilart_models 1.2.14

Sign up to get free protection for your applications and to get access to all the features.
Files changed (98) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.rdoc +3 -0
  4. data/Rakefile +37 -0
  5. data/app/models/bundle.rb +39 -0
  6. data/app/models/chosen_deck.rb +76 -0
  7. data/app/models/chosen_furniture.rb +114 -0
  8. data/app/models/chosen_item.rb +187 -0
  9. data/app/models/chosen_room.rb +114 -0
  10. data/app/models/commission.rb +58 -0
  11. data/app/models/deck.rb +25 -0
  12. data/app/models/furniture.rb +45 -0
  13. data/app/models/furniture_item.rb +20 -0
  14. data/app/models/item.rb +25 -0
  15. data/app/models/room.rb +22 -0
  16. data/app/models/timetable.rb +171 -0
  17. data/app/models/workflow.rb +173 -0
  18. data/config/initializers/mobilart_models_after_initialize.rb +7 -0
  19. data/config/locales/en.activerecord.yml +36 -0
  20. data/config/locales/en.yml +38 -0
  21. data/config/locales/it.activerecord.yml +157 -0
  22. data/config/locales/it.yml +33 -0
  23. data/config/routes.rb +2 -0
  24. data/db/migrate/20150825174853_create_items.rb +13 -0
  25. data/db/migrate/20150825175219_create_commissions.rb +14 -0
  26. data/db/migrate/20150825175836_create_decks.rb +13 -0
  27. data/db/migrate/20150825175853_create_rooms.rb +13 -0
  28. data/db/migrate/20150825175952_create_furnitures.rb +13 -0
  29. data/db/migrate/20150825180027_create_furniture_items.rb +10 -0
  30. data/db/migrate/20150825180510_create_bundles.rb +14 -0
  31. data/db/migrate/20150827084511_create_chosen_decks.rb +12 -0
  32. data/db/migrate/20150827084626_create_chosen_rooms.rb +12 -0
  33. data/db/migrate/20150827084745_create_chosen_furnitures.rb +12 -0
  34. data/db/migrate/20150827184845_create_chosen_items.rb +12 -0
  35. data/db/migrate/20150828180910_create_workflows.rb +13 -0
  36. data/db/migrate/20150903152839_create_timetables.rb +17 -0
  37. data/db/migrate/20151201145832_add_external_to_user.rb +5 -0
  38. data/db/migrate/20151202155259_add_external_to_workflow.rb +6 -0
  39. data/db/migrate/20151218145139_add_closed_to_commission.rb +5 -0
  40. data/db/migrate/20151221083612_add_checked_to_chosen_item.rb +5 -0
  41. data/db/migrate/20151221100829_add_bundle_to_chosen_item.rb +5 -0
  42. data/db/migrate/20151221100914_add_checked_in_bundle_to_chosen_item.rb +5 -0
  43. data/db/migrate/20160212155936_remove_chosen_furniture_from_timetable.rb +5 -0
  44. data/db/migrate/20160212160511_add_chosen_item_to_timetable.rb +5 -0
  45. data/db/migrate/20160331101901_add_code_to_user.rb +6 -0
  46. data/db/migrate/20160519144818_save_items_to_make_name_code_the_same.rb +7 -0
  47. data/db/migrate/20160622132452_add_barcode_to_chosen_item.rb +154 -0
  48. data/db/migrate/20160629135548_edit_index_for_furniture.rb +6 -0
  49. data/db/migrate/20170723195528_remove_barcode_from_chosen_items.rb +5 -0
  50. data/lib/mobilart_models.rb +14 -0
  51. data/lib/mobilart_models/engine.rb +12 -0
  52. data/lib/mobilart_models/version.rb +3 -0
  53. data/lib/mobilart_models_abilities.rb +53 -0
  54. data/lib/mobilart_roles.rb +6 -0
  55. data/lib/rails_admin_print_jobs_concern.rb +13 -0
  56. data/lib/rails_admin_printers_concern.rb +13 -0
  57. data/lib/rails_admin_user_main_concern.rb +11 -0
  58. data/lib/tasks/mobilart_models_tasks.rake +4 -0
  59. data/lib/user_model_concerns.rb +13 -0
  60. data/test/dummy/README.rdoc +28 -0
  61. data/test/dummy/Rakefile +6 -0
  62. data/test/dummy/app/assets/javascripts/application.js +13 -0
  63. data/test/dummy/app/assets/stylesheets/application.css +15 -0
  64. data/test/dummy/app/controllers/application_controller.rb +5 -0
  65. data/test/dummy/app/helpers/application_helper.rb +2 -0
  66. data/test/dummy/app/views/layouts/application.html.erb +14 -0
  67. data/test/dummy/bin/bundle +3 -0
  68. data/test/dummy/bin/rails +4 -0
  69. data/test/dummy/bin/rake +4 -0
  70. data/test/dummy/bin/setup +29 -0
  71. data/test/dummy/config.ru +4 -0
  72. data/test/dummy/config/application.rb +25 -0
  73. data/test/dummy/config/boot.rb +5 -0
  74. data/test/dummy/config/database.yml +25 -0
  75. data/test/dummy/config/environment.rb +5 -0
  76. data/test/dummy/config/environments/development.rb +41 -0
  77. data/test/dummy/config/environments/production.rb +79 -0
  78. data/test/dummy/config/environments/test.rb +42 -0
  79. data/test/dummy/config/initializers/assets.rb +11 -0
  80. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  81. data/test/dummy/config/initializers/cookies_serializer.rb +3 -0
  82. data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  83. data/test/dummy/config/initializers/inflections.rb +16 -0
  84. data/test/dummy/config/initializers/mime_types.rb +4 -0
  85. data/test/dummy/config/initializers/session_store.rb +3 -0
  86. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  87. data/test/dummy/config/locales/en.yml +23 -0
  88. data/test/dummy/config/routes.rb +56 -0
  89. data/test/dummy/config/secrets.yml +22 -0
  90. data/test/dummy/log/development.log +1 -0
  91. data/test/dummy/public/404.html +67 -0
  92. data/test/dummy/public/422.html +67 -0
  93. data/test/dummy/public/500.html +66 -0
  94. data/test/dummy/public/favicon.ico +0 -0
  95. data/test/integration/navigation_test.rb +8 -0
  96. data/test/mobilart_models_test.rb +7 -0
  97. data/test/test_helper.rb +20 -0
  98. metadata +206 -0
@@ -0,0 +1,2 @@
1
+ Rails.application.routes.draw do
2
+ end
@@ -0,0 +1,13 @@
1
+ class CreateItems < ActiveRecord::Migration[4.2]
2
+ def change
3
+ create_table :items do |t|
4
+ t.string :name
5
+ t.text :description
6
+ t.string :code
7
+
8
+ t.timestamps null: false
9
+ end
10
+ add_index :items, :name
11
+ add_index :items, :code
12
+ end
13
+ end
@@ -0,0 +1,14 @@
1
+ class CreateCommissions < ActiveRecord::Migration[4.2]
2
+ def change
3
+ create_table :commissions do |t|
4
+ t.string :name
5
+ t.date :issued_on
6
+ t.text :description
7
+ t.string :code
8
+
9
+ t.timestamps null: false
10
+ end
11
+ add_index :commissions, :name
12
+ add_index :commissions, :code
13
+ end
14
+ end
@@ -0,0 +1,13 @@
1
+ class CreateDecks < ActiveRecord::Migration[4.2]
2
+ def change
3
+ create_table :decks do |t|
4
+ t.string :name
5
+ t.text :description
6
+ t.string :code
7
+
8
+ t.timestamps null: false
9
+ end
10
+ add_index :decks, :name
11
+ add_index :decks, :code
12
+ end
13
+ end
@@ -0,0 +1,13 @@
1
+ class CreateRooms < ActiveRecord::Migration[4.2]
2
+ def change
3
+ create_table :rooms do |t|
4
+ t.string :name
5
+ t.text :description
6
+ t.string :code
7
+
8
+ t.timestamps null: false
9
+ end
10
+ add_index :rooms, :name
11
+ add_index :rooms, :code
12
+ end
13
+ end
@@ -0,0 +1,13 @@
1
+ class CreateFurnitures < ActiveRecord::Migration[4.2]
2
+ def change
3
+ create_table :furnitures do |t|
4
+ t.string :name
5
+ t.text :description
6
+ t.string :code
7
+
8
+ t.timestamps null: false
9
+ end
10
+ add_index :furnitures, :name
11
+ add_index :furnitures, :code
12
+ end
13
+ end
@@ -0,0 +1,10 @@
1
+ class CreateFurnitureItems < ActiveRecord::Migration[4.2]
2
+ def change
3
+ create_table :furniture_items do |t|
4
+ t.references :furniture, index: true, foreign_key: true
5
+ t.references :item, index: true, foreign_key: true
6
+
7
+ t.timestamps null: false
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,14 @@
1
+ class CreateBundles < ActiveRecord::Migration[4.2]
2
+ def change
3
+ create_table :bundles do |t|
4
+ t.string :title
5
+ t.text :description
6
+ t.string :code
7
+ t.references :commission, index: true, foreign_key: true
8
+
9
+ t.timestamps null: false
10
+ end
11
+ add_index :bundles, :title
12
+ add_index :bundles, :code
13
+ end
14
+ end
@@ -0,0 +1,12 @@
1
+ class CreateChosenDecks < ActiveRecord::Migration[4.2]
2
+ def change
3
+ create_table :chosen_decks do |t|
4
+ t.references :deck, index: true, foreign_key: true
5
+ t.references :commission, index: true, foreign_key: true
6
+ t.string :code
7
+
8
+ t.timestamps null: false
9
+ end
10
+ add_index :chosen_decks, :code
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ class CreateChosenRooms < ActiveRecord::Migration[4.2]
2
+ def change
3
+ create_table :chosen_rooms do |t|
4
+ t.references :chosen_deck, index: true, foreign_key: true
5
+ t.references :room, index: true, foreign_key: true
6
+ t.string :code
7
+
8
+ t.timestamps null: false
9
+ end
10
+ add_index :chosen_rooms, :code
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ class CreateChosenFurnitures < ActiveRecord::Migration[4.2]
2
+ def change
3
+ create_table :chosen_furnitures do |t|
4
+ t.references :chosen_room, index: true, foreign_key: true
5
+ t.references :furniture, index: true, foreign_key: true
6
+ t.string :code
7
+
8
+ t.timestamps null: false
9
+ end
10
+ add_index :chosen_furnitures, :code
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ class CreateChosenItems < ActiveRecord::Migration[4.2]
2
+ def change
3
+ create_table :chosen_items do |t|
4
+ t.references :chosen_furniture, index: true, foreign_key: true
5
+ t.references :furniture_item, index: true, foreign_key: true
6
+ t.string :code
7
+
8
+ t.timestamps null: false
9
+ end
10
+ add_index :chosen_items, :code
11
+ end
12
+ end
@@ -0,0 +1,13 @@
1
+ class CreateWorkflows < ActiveRecord::Migration[4.2]
2
+ def change
3
+ create_table :workflows do |t|
4
+ t.string :statuses
5
+ t.references :chosen_item, index: true, foreign_key: true
6
+ t.references :user, index: true, foreign_key: true
7
+ t.text :description
8
+
9
+ t.timestamps null: false
10
+ end
11
+ add_index :workflows, :statuses
12
+ end
13
+ end
@@ -0,0 +1,17 @@
1
+ class CreateTimetables < ActiveRecord::Migration[4.2]
2
+ def change
3
+ create_table :timetables do |t|
4
+ t.references :user, index: true, foreign_key: true
5
+ t.references :chosen_furniture, index: true, foreign_key: true
6
+ t.string :job_type
7
+ t.string :status
8
+ t.integer :hours
9
+ t.integer :minutes
10
+ t.text :notes
11
+
12
+ t.timestamps null: false
13
+ end
14
+ add_index :timetables, :job_type
15
+ add_index :timetables, :status
16
+ end
17
+ end
@@ -0,0 +1,5 @@
1
+ class AddExternalToUser < ActiveRecord::Migration[4.2]
2
+ def change
3
+ add_column :users, :third_party, :boolean, default: false
4
+ end
5
+ end
@@ -0,0 +1,6 @@
1
+ class AddExternalToWorkflow < ActiveRecord::Migration[4.2]
2
+ def change
3
+ add_column :workflows, :third_party_id, :integer
4
+ add_index :workflows, :third_party_id
5
+ end
6
+ end
@@ -0,0 +1,5 @@
1
+ class AddClosedToCommission < ActiveRecord::Migration[4.2]
2
+ def change
3
+ add_column :commissions, :closed, :boolean, default: false
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ class AddCheckedToChosenItem < ActiveRecord::Migration[4.2]
2
+ def change
3
+ add_column :chosen_items, :checked, :boolean, default: false
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ class AddBundleToChosenItem < ActiveRecord::Migration[4.2]
2
+ def change
3
+ add_reference :chosen_items, :bundle, index: true, foreign_key: true
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ class AddCheckedInBundleToChosenItem < ActiveRecord::Migration[4.2]
2
+ def change
3
+ add_column :chosen_items, :checked_in_bundle, :boolean, default: false
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ class RemoveChosenFurnitureFromTimetable < ActiveRecord::Migration[4.2]
2
+ def change
3
+ remove_reference :timetables, :chosen_furniture
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ class AddChosenItemToTimetable < ActiveRecord::Migration[4.2]
2
+ def change
3
+ add_reference :timetables, :chosen_item, index: true, foreign_key: true
4
+ end
5
+ end
@@ -0,0 +1,6 @@
1
+ class AddCodeToUser < ActiveRecord::Migration[4.2]
2
+ def change
3
+ add_column :users, :code, :string
4
+ add_index :users, :code
5
+ end
6
+ end
@@ -0,0 +1,7 @@
1
+ class SaveItemsToMakeNameCodeTheSame < ActiveRecord::Migration[4.2]
2
+ def change
3
+ Item.all.each do |i|
4
+ i.save
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,154 @@
1
+ class AddBarcodeToChosenItem < ActiveRecord::Migration[4.2]
2
+ class ChosenItem < ActiveRecord::Base
3
+ belongs_to :chosen_furniture, inverse_of: :chosen_items #, dependent: :destroy
4
+ belongs_to :furniture_item, inverse_of: :chosen_items
5
+ belongs_to :bundle, inverse_of: :chosen_items
6
+
7
+ has_many :timetables, dependent: :destroy, inverse_of: :chosen_item
8
+ has_many :workflows, inverse_of: :chosen_item, dependent: :destroy
9
+
10
+ before_create :increment_code
11
+
12
+ default_scope {joins({chosen_furniture: [:furniture, { chosen_room: [:room, {chosen_deck: [:deck, :commission]}]}], furniture_item: :item})}
13
+
14
+ def records_for_print id
15
+ # TODO: move away from this pseudo code as soon as Bancolini tells me
16
+ # what Mobilart wants
17
+ # chosen_item.name
18
+ # chosen_item.barcode
19
+ # chosen_item.timetables.last.status
20
+ # chosen_item.timetables.last.job_type
21
+ ChosenItem.where(chosen_items: {id: id}).distinct
22
+ end
23
+
24
+ def room
25
+ chosen_furniture.chosen_room.name rescue "-"
26
+ end
27
+
28
+ def deck
29
+ chosen_furniture.chosen_room.chosen_deck.name rescue "-"
30
+ end
31
+
32
+ def commission
33
+ chosen_furniture.chosen_room.chosen_deck.commission.code rescue "-"
34
+ end
35
+
36
+ def status
37
+ workflows.last.stat rescue "Non in lavorazione"
38
+ end
39
+
40
+ def user
41
+ workflows.last.user.email rescue "-"
42
+ end
43
+
44
+ def furniture
45
+ chosen_furniture.furniture.name rescue "-"
46
+ end
47
+
48
+ def item
49
+ furniture_item.item.name
50
+ end
51
+
52
+ def times
53
+ t = (timetables.sum(:hours)*60 + timetables.sum(:minutes))*60000
54
+ mm, ss = t.divmod(60) #=> [4515, 21]
55
+ hh, mm = mm.divmod(60) #=> [75, 15]
56
+ dd, hh = hh.divmod(24) #=> [3, 3]
57
+ "#{dd} giorni, #{hh} ore, #{mm} minuti"
58
+ end
59
+
60
+ def self.filter_by_id
61
+ Rails.logger.debug "QQQQQQQQQQQQQ: #{params.inspect}"
62
+ end
63
+
64
+ rails_admin do
65
+ navigation_label I18n.t(:operative_section)
66
+ parent Commission
67
+ weight 8
68
+ # TODO: mettere a true per i test, mettere a false in production
69
+ visible false
70
+
71
+ export do
72
+ field :commission
73
+ field :deck
74
+ field :room
75
+ field :furniture
76
+ field :item
77
+ field :status
78
+ field :user
79
+ field :times
80
+ end
81
+
82
+ list do
83
+ field :commission do
84
+ searchable "commissions.code"
85
+ read_only true
86
+ sortable "commissions.code"
87
+ filterable true
88
+ end
89
+ field :deck do
90
+ searchable "decks.name"
91
+ sortable "decks.name"
92
+ read_only true
93
+ filterable true
94
+ end
95
+ field :room do
96
+ searchable "rooms.name"
97
+ sortable "rooms.name"
98
+ read_only true
99
+ filterable true
100
+ end
101
+ field :chosen_furniture do
102
+ searchable "furnitures.name"
103
+ sortable "furnitures.name"
104
+ read_only true
105
+ filterable true
106
+ end
107
+ field :furniture_item do
108
+ searchable "items.name"
109
+ sortable "items.name"
110
+ read_only true
111
+ filterable true
112
+ end
113
+ field :status
114
+ field :user
115
+ field :times
116
+ end
117
+ end
118
+
119
+ def readable_barcode
120
+ "#{chosen_furniture.readable_barcode}|#{furniture_item.item.code}|#{code.rjust(5, '0')}"
121
+ end
122
+
123
+ def title
124
+ # "#{furniture_item.item.name rescue nil} (#{readable_barcode rescue nil})"
125
+ furniture_item.item.name rescue "Undefined"
126
+ end
127
+
128
+ def name
129
+ "#{chosen_furniture.chosen_room.chosen_deck.commission.name rescue nil}: #{chosen_furniture.name rescue nil} -> #{title}"
130
+ end
131
+
132
+ private
133
+
134
+ def increment_code
135
+ next_code = (ChosenItem.order("chosen_items.code DESC").pluck(:code).compact.map(&:to_i).max.to_i + 1)
136
+ # Rails.logger.debug "MAX CODE IS:#{max_code} Adding 1: #{(max_code + 1)}"
137
+ self.code = next_code
138
+ self.barcode = "#{chosen_furniture.barcode}#{furniture_item.item.code}#{next_code.rjust(5, '0')}"
139
+ end
140
+ end
141
+
142
+ def change
143
+ add_column :chosen_items, :barcode, :string
144
+ add_index :chosen_items, :barcode
145
+
146
+ # After adding the field, I must resave all the Chosen Items to make the calculate the right barcode
147
+ ChosenItem.all.each do |ci|
148
+ puts "before save - id: #{ci.id}, code: #{ci.code}, barcode: #{ci.barcode}"
149
+ ci.barcode = "#{ci.chosen_furniture.barcode}#{ci.furniture_item.item.code}#{ci.code.rjust(5, '0')}"
150
+ ci.save
151
+ puts "after save - id: #{ci.id}, code: #{ci.code}, barcode: #{ci.barcode}"
152
+ end
153
+ end
154
+ end
@@ -0,0 +1,6 @@
1
+ class EditIndexForFurniture < ActiveRecord::Migration[4.2]
2
+ def change
3
+ remove_index :furnitures, :name
4
+ add_index :furnitures, [:name, :description], unique: true
5
+ end
6
+ end
@@ -0,0 +1,5 @@
1
+ class RemoveBarcodeFromChosenItems < ActiveRecord::Migration[5.0]
2
+ def change
3
+ remove_column :chosen_items, :barcode
4
+ end
5
+ end
@@ -0,0 +1,14 @@
1
+ require "thecore"
2
+ require "rails_admin_telnet_print"
3
+ require "mobilart_roles"
4
+
5
+ require "mobilart_models_abilities"
6
+ require "rails_admin_print_jobs_concern"
7
+ require "rails_admin_printers_concern"
8
+ require "rails_admin_user_main_concern"
9
+ require "user_model_concerns"
10
+
11
+ require "mobilart_models/engine"
12
+
13
+ module MobilartModels
14
+ end