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.
- checksums.yaml +7 -0
- data/MIT-LICENSE +20 -0
- data/README.rdoc +3 -0
- data/Rakefile +37 -0
- data/app/models/bundle.rb +39 -0
- data/app/models/chosen_deck.rb +76 -0
- data/app/models/chosen_furniture.rb +114 -0
- data/app/models/chosen_item.rb +187 -0
- data/app/models/chosen_room.rb +114 -0
- data/app/models/commission.rb +58 -0
- data/app/models/deck.rb +25 -0
- data/app/models/furniture.rb +45 -0
- data/app/models/furniture_item.rb +20 -0
- data/app/models/item.rb +25 -0
- data/app/models/room.rb +22 -0
- data/app/models/timetable.rb +171 -0
- data/app/models/workflow.rb +173 -0
- data/config/initializers/mobilart_models_after_initialize.rb +7 -0
- data/config/locales/en.activerecord.yml +36 -0
- data/config/locales/en.yml +38 -0
- data/config/locales/it.activerecord.yml +157 -0
- data/config/locales/it.yml +33 -0
- data/config/routes.rb +2 -0
- data/db/migrate/20150825174853_create_items.rb +13 -0
- data/db/migrate/20150825175219_create_commissions.rb +14 -0
- data/db/migrate/20150825175836_create_decks.rb +13 -0
- data/db/migrate/20150825175853_create_rooms.rb +13 -0
- data/db/migrate/20150825175952_create_furnitures.rb +13 -0
- data/db/migrate/20150825180027_create_furniture_items.rb +10 -0
- data/db/migrate/20150825180510_create_bundles.rb +14 -0
- data/db/migrate/20150827084511_create_chosen_decks.rb +12 -0
- data/db/migrate/20150827084626_create_chosen_rooms.rb +12 -0
- data/db/migrate/20150827084745_create_chosen_furnitures.rb +12 -0
- data/db/migrate/20150827184845_create_chosen_items.rb +12 -0
- data/db/migrate/20150828180910_create_workflows.rb +13 -0
- data/db/migrate/20150903152839_create_timetables.rb +17 -0
- data/db/migrate/20151201145832_add_external_to_user.rb +5 -0
- data/db/migrate/20151202155259_add_external_to_workflow.rb +6 -0
- data/db/migrate/20151218145139_add_closed_to_commission.rb +5 -0
- data/db/migrate/20151221083612_add_checked_to_chosen_item.rb +5 -0
- data/db/migrate/20151221100829_add_bundle_to_chosen_item.rb +5 -0
- data/db/migrate/20151221100914_add_checked_in_bundle_to_chosen_item.rb +5 -0
- data/db/migrate/20160212155936_remove_chosen_furniture_from_timetable.rb +5 -0
- data/db/migrate/20160212160511_add_chosen_item_to_timetable.rb +5 -0
- data/db/migrate/20160331101901_add_code_to_user.rb +6 -0
- data/db/migrate/20160519144818_save_items_to_make_name_code_the_same.rb +7 -0
- data/db/migrate/20160622132452_add_barcode_to_chosen_item.rb +154 -0
- data/db/migrate/20160629135548_edit_index_for_furniture.rb +6 -0
- data/db/migrate/20170723195528_remove_barcode_from_chosen_items.rb +5 -0
- data/lib/mobilart_models.rb +14 -0
- data/lib/mobilart_models/engine.rb +12 -0
- data/lib/mobilart_models/version.rb +3 -0
- data/lib/mobilart_models_abilities.rb +53 -0
- data/lib/mobilart_roles.rb +6 -0
- data/lib/rails_admin_print_jobs_concern.rb +13 -0
- data/lib/rails_admin_printers_concern.rb +13 -0
- data/lib/rails_admin_user_main_concern.rb +11 -0
- data/lib/tasks/mobilart_models_tasks.rake +4 -0
- data/lib/user_model_concerns.rb +13 -0
- data/test/dummy/README.rdoc +28 -0
- data/test/dummy/Rakefile +6 -0
- data/test/dummy/app/assets/javascripts/application.js +13 -0
- data/test/dummy/app/assets/stylesheets/application.css +15 -0
- data/test/dummy/app/controllers/application_controller.rb +5 -0
- data/test/dummy/app/helpers/application_helper.rb +2 -0
- data/test/dummy/app/views/layouts/application.html.erb +14 -0
- data/test/dummy/bin/bundle +3 -0
- data/test/dummy/bin/rails +4 -0
- data/test/dummy/bin/rake +4 -0
- data/test/dummy/bin/setup +29 -0
- data/test/dummy/config.ru +4 -0
- data/test/dummy/config/application.rb +25 -0
- data/test/dummy/config/boot.rb +5 -0
- data/test/dummy/config/database.yml +25 -0
- data/test/dummy/config/environment.rb +5 -0
- data/test/dummy/config/environments/development.rb +41 -0
- data/test/dummy/config/environments/production.rb +79 -0
- data/test/dummy/config/environments/test.rb +42 -0
- data/test/dummy/config/initializers/assets.rb +11 -0
- data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/test/dummy/config/initializers/cookies_serializer.rb +3 -0
- data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
- data/test/dummy/config/initializers/inflections.rb +16 -0
- data/test/dummy/config/initializers/mime_types.rb +4 -0
- data/test/dummy/config/initializers/session_store.rb +3 -0
- data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/test/dummy/config/locales/en.yml +23 -0
- data/test/dummy/config/routes.rb +56 -0
- data/test/dummy/config/secrets.yml +22 -0
- data/test/dummy/log/development.log +1 -0
- data/test/dummy/public/404.html +67 -0
- data/test/dummy/public/422.html +67 -0
- data/test/dummy/public/500.html +66 -0
- data/test/dummy/public/favicon.ico +0 -0
- data/test/integration/navigation_test.rb +8 -0
- data/test/mobilart_models_test.rb +7 -0
- data/test/test_helper.rb +20 -0
- metadata +206 -0
data/config/routes.rb
ADDED
@@ -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 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,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,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
|