mobilart_models 1.2.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 (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