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
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: afddb939c222cffb43c0e95ee15e83a0cb052ae5
|
4
|
+
data.tar.gz: 846942720f0c6581e5ec71d6321ebb6bdfa2d0a1
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 16f48274905c68059f6a1328dbe886588d174136e9807e66dcd1c135360cd54befbe7b9c5543491ff09d632137544e488713c8b8eb8d9a6f6d56870677562994
|
7
|
+
data.tar.gz: 81586ab334e3bca35870fd53344bd3bd327610940063c857c58cad1392e33eb22cbff3bc6a538a198f5abfb70d210a4718fadc91a4aa2a5de7399ba0d07d377b
|
data/MIT-LICENSE
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright 2016 Gabriele Tassoni
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.rdoc
ADDED
data/Rakefile
ADDED
@@ -0,0 +1,37 @@
|
|
1
|
+
begin
|
2
|
+
require 'bundler/setup'
|
3
|
+
rescue LoadError
|
4
|
+
puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
|
5
|
+
end
|
6
|
+
|
7
|
+
require 'rdoc/task'
|
8
|
+
|
9
|
+
RDoc::Task.new(:rdoc) do |rdoc|
|
10
|
+
rdoc.rdoc_dir = 'rdoc'
|
11
|
+
rdoc.title = 'MobilartModels'
|
12
|
+
rdoc.options << '--line-numbers'
|
13
|
+
rdoc.rdoc_files.include('README.rdoc')
|
14
|
+
rdoc.rdoc_files.include('lib/**/*.rb')
|
15
|
+
end
|
16
|
+
|
17
|
+
APP_RAKEFILE = File.expand_path("../test/dummy/Rakefile", __FILE__)
|
18
|
+
load 'rails/tasks/engine.rake'
|
19
|
+
|
20
|
+
|
21
|
+
load 'rails/tasks/statistics.rake'
|
22
|
+
|
23
|
+
|
24
|
+
|
25
|
+
Bundler::GemHelper.install_tasks
|
26
|
+
|
27
|
+
require 'rake/testtask'
|
28
|
+
|
29
|
+
Rake::TestTask.new(:test) do |t|
|
30
|
+
t.libs << 'lib'
|
31
|
+
t.libs << 'test'
|
32
|
+
t.pattern = 'test/**/*_test.rb'
|
33
|
+
t.verbose = false
|
34
|
+
end
|
35
|
+
|
36
|
+
|
37
|
+
task default: :test
|
@@ -0,0 +1,39 @@
|
|
1
|
+
class Bundle < ApplicationRecord
|
2
|
+
belongs_to :commission, inverse_of: :bundles
|
3
|
+
has_many :chosen_items, inverse_of: :bundle, dependent: :nullify
|
4
|
+
|
5
|
+
validates :commission, presence: true
|
6
|
+
validates :code, presence: true, uniqueness: { case_sensitive: false, scope: :commission_id }
|
7
|
+
|
8
|
+
# Items: I need a method to obtain all the items in the
|
9
|
+
# current selected Commission
|
10
|
+
def records_for_print
|
11
|
+
# TODO: move away from this pseudo code as soon as Bancolini tells me
|
12
|
+
# what Mobilart wants
|
13
|
+
# chosen_item.name
|
14
|
+
# chosen_item.barcode
|
15
|
+
# chosen_item.timetables.last.status
|
16
|
+
# chosen_item.timetables.last.job_type
|
17
|
+
ChosenItem.joins(:bundle).where(bundles: {id: id}).distinct
|
18
|
+
end
|
19
|
+
|
20
|
+
def display_name
|
21
|
+
[commission.code, code].compact.join(" - ")
|
22
|
+
end
|
23
|
+
|
24
|
+
rails_admin do
|
25
|
+
navigation_label I18n.t("admin.tools.label")
|
26
|
+
navigation_icon 'fa fa-dropbox'
|
27
|
+
weight 9
|
28
|
+
|
29
|
+
configure :id do
|
30
|
+
visible false
|
31
|
+
end
|
32
|
+
configure :created_at do
|
33
|
+
visible false
|
34
|
+
end
|
35
|
+
configure :updated_at do
|
36
|
+
visible false
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,76 @@
|
|
1
|
+
class ChosenDeck < ApplicationRecord
|
2
|
+
belongs_to :deck, inverse_of: :chosen_decks
|
3
|
+
belongs_to :commission, inverse_of: :chosen_decks
|
4
|
+
|
5
|
+
has_many :chosen_rooms, inverse_of: :chosen_deck, dependent: :destroy
|
6
|
+
has_many :rooms, through: :chosen_rooms, inverse_of: :chosen_decks
|
7
|
+
accepts_nested_attributes_for :chosen_rooms, allow_destroy: true
|
8
|
+
|
9
|
+
validates :deck, presence: true
|
10
|
+
validates :commission, presence: true
|
11
|
+
|
12
|
+
before_create :increment_code
|
13
|
+
# Items: I need a method to obtain all the items in the
|
14
|
+
# current selected Commission
|
15
|
+
def records_for_print id
|
16
|
+
# TODO: move away from this pseudo code as soon as Bancolini tells me
|
17
|
+
# what Mobilart wants
|
18
|
+
# chosen_item.name
|
19
|
+
# chosen_item.barcode
|
20
|
+
# chosen_item.timetables.last.status
|
21
|
+
# chosen_item.timetables.last.job_type
|
22
|
+
ChosenItem.joins(chosen_furniture: {chosen_room: :chosen_deck}).where(chosen_decks: {id: id}).distinct
|
23
|
+
end
|
24
|
+
|
25
|
+
def list_associated_items
|
26
|
+
true
|
27
|
+
end
|
28
|
+
|
29
|
+
default_scope {joins(:commission)}
|
30
|
+
|
31
|
+
amoeba do
|
32
|
+
enable
|
33
|
+
include_association :chosen_rooms
|
34
|
+
end
|
35
|
+
|
36
|
+
def display_name
|
37
|
+
"Ponte #{deck.name} della commessa #{commission.name} contenente #{chosen_rooms.count} stanze"
|
38
|
+
end
|
39
|
+
|
40
|
+
rails_admin do
|
41
|
+
navigation_label I18n.t(:operative_section)
|
42
|
+
navigation_icon 'fa fa-tasks'
|
43
|
+
parent Commission
|
44
|
+
weight 5
|
45
|
+
|
46
|
+
# list do
|
47
|
+
field :commission do
|
48
|
+
read_only true
|
49
|
+
end
|
50
|
+
field :deck do
|
51
|
+
read_only true
|
52
|
+
end
|
53
|
+
field :chosen_rooms
|
54
|
+
end
|
55
|
+
|
56
|
+
def readable_barcode
|
57
|
+
"#{commission.code}|#{deck.code}|#{code}"
|
58
|
+
end
|
59
|
+
|
60
|
+
def barcode
|
61
|
+
"#{commission.code}#{deck.code}#{code}"
|
62
|
+
end
|
63
|
+
|
64
|
+
def name
|
65
|
+
# "#{deck.name rescue nil} (#{readable_barcode rescue nil})"
|
66
|
+
deck.name rescue "Undefined"
|
67
|
+
end
|
68
|
+
|
69
|
+
private
|
70
|
+
|
71
|
+
def increment_code
|
72
|
+
max_code = ChosenDeck.order("chosen_decks.code DESC").pluck(:code).compact.map(&:to_i).max.to_i
|
73
|
+
# Rails.logger.debug "MAX CODE IS:#{max_code} Adding 1: #{(max_code + 1)}"
|
74
|
+
self.code = (max_code + 1)
|
75
|
+
end
|
76
|
+
end
|
@@ -0,0 +1,114 @@
|
|
1
|
+
class ChosenFurniture < ApplicationRecord
|
2
|
+
belongs_to :chosen_room, inverse_of: :chosen_furnitures
|
3
|
+
belongs_to :furniture, inverse_of: :chosen_furnitures
|
4
|
+
|
5
|
+
has_many :chosen_items, inverse_of: :chosen_furniture, dependent: :destroy
|
6
|
+
has_many :furniture_items, through: :chosen_items, inverse_of: :chosen_furnitures
|
7
|
+
|
8
|
+
#has_many :timetables, dependent: :destroy, inverse_of: :chosen_furniture
|
9
|
+
|
10
|
+
validates :furniture, presence: true
|
11
|
+
validates :chosen_room, presence: true
|
12
|
+
# Whenever I choose a furniture for a room,
|
13
|
+
# I must track even the chosen items to add a code to them
|
14
|
+
before_save :link_to_items
|
15
|
+
before_create :increment_code
|
16
|
+
# Items: I need a method to obtain all the items in the
|
17
|
+
# current selected Commission
|
18
|
+
def records_for_print id
|
19
|
+
# TODO: move away from this pseudo code as soon as Bancolini tells me
|
20
|
+
# what Mobilart wants
|
21
|
+
# chosen_item.name
|
22
|
+
# chosen_item.barcode
|
23
|
+
# chosen_item.timetables.last.status
|
24
|
+
# chosen_item.timetables.last.job_type
|
25
|
+
ChosenItem.joins(:chosen_furniture).where(chosen_furnitures: {id: id}).distinct
|
26
|
+
end
|
27
|
+
|
28
|
+
def list_associated_items
|
29
|
+
true
|
30
|
+
end
|
31
|
+
|
32
|
+
amoeba do
|
33
|
+
enable
|
34
|
+
exclude_association :chosen_items
|
35
|
+
exclude_association :furniture_items
|
36
|
+
end
|
37
|
+
|
38
|
+
def deck
|
39
|
+
chosen_room.chosen_deck.name rescue "-"
|
40
|
+
end
|
41
|
+
|
42
|
+
def commission
|
43
|
+
chosen_room.chosen_deck.commission.code rescue "-"
|
44
|
+
end
|
45
|
+
|
46
|
+
def display_name
|
47
|
+
"#{name} presente in #{[commission, deck, chosen_room.name].compact.join(" - ")} contenente #{furniture_items.count} particolari"
|
48
|
+
end
|
49
|
+
|
50
|
+
# Necessario per poter cercare nei filed associati
|
51
|
+
default_scope {joins(chosen_room: [:room, {chosen_deck: [:deck, :commission ]}])}
|
52
|
+
|
53
|
+
rails_admin do
|
54
|
+
navigation_label I18n.t(:operative_section)
|
55
|
+
navigation_icon 'fa fa-cubes'
|
56
|
+
parent Commission
|
57
|
+
weight 7
|
58
|
+
|
59
|
+
edit do
|
60
|
+
field :furniture
|
61
|
+
end
|
62
|
+
list do
|
63
|
+
field :commission do
|
64
|
+
searchable "commissions.code"
|
65
|
+
sortable "commissions.code"
|
66
|
+
read_only true
|
67
|
+
filterable true
|
68
|
+
end
|
69
|
+
field :deck do
|
70
|
+
searchable "decks.name"
|
71
|
+
sortable "decks.name"
|
72
|
+
read_only true
|
73
|
+
filterable true
|
74
|
+
end
|
75
|
+
field :chosen_room do
|
76
|
+
searchable "rooms.name"
|
77
|
+
sortable "rooms.name"
|
78
|
+
read_only true
|
79
|
+
filterable true
|
80
|
+
end
|
81
|
+
field :furniture do
|
82
|
+
searchable "furnitures.name"
|
83
|
+
sortable "furnitures.name"
|
84
|
+
filterable true
|
85
|
+
end
|
86
|
+
field :furniture_items
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
def readable_barcode
|
91
|
+
"#{chosen_room.readable_barcode}|#{furniture.code}|#{code}"
|
92
|
+
end
|
93
|
+
|
94
|
+
def barcode
|
95
|
+
"#{chosen_room.barcode}#{furniture.code}#{code}"
|
96
|
+
end
|
97
|
+
|
98
|
+
def name
|
99
|
+
furniture.name rescue "-"
|
100
|
+
end
|
101
|
+
|
102
|
+
private
|
103
|
+
|
104
|
+
def link_to_items
|
105
|
+
self.furniture_items = self.furniture.furniture_items
|
106
|
+
end
|
107
|
+
|
108
|
+
def increment_code
|
109
|
+
# Cerco il numero più alto e incremento
|
110
|
+
max_code = ChosenFurniture.order("chosen_furnitures.code DESC").pluck(:code).compact.map(&:to_i).max.to_i
|
111
|
+
# Rails.logger.debug "MAX CODE IS:#{max_code} Adding 1: #{(max_code + 1)}"
|
112
|
+
self.code = (max_code + 1)
|
113
|
+
end
|
114
|
+
end
|
@@ -0,0 +1,187 @@
|
|
1
|
+
class ChosenItem < ApplicationRecord
|
2
|
+
belongs_to :chosen_furniture, inverse_of: :chosen_items #, dependent: :destroy
|
3
|
+
belongs_to :furniture_item, inverse_of: :chosen_items
|
4
|
+
belongs_to :bundle, inverse_of: :chosen_items
|
5
|
+
|
6
|
+
has_many :timetables, dependent: :destroy, inverse_of: :chosen_item
|
7
|
+
has_many :workflows, inverse_of: :chosen_item, dependent: :destroy
|
8
|
+
|
9
|
+
before_create :increment_code
|
10
|
+
|
11
|
+
def self.barcode_concat
|
12
|
+
"concat(commissions.code,decks.code,chosen_decks.code,rooms.code,chosen_rooms.code,furnitures.code,chosen_furnitures.code,items.code,LPAD(chosen_items.code::text, 5, '0'))"
|
13
|
+
end
|
14
|
+
|
15
|
+
def self.select_with_barcode
|
16
|
+
select "chosen_items.*, #{ChosenItem.barcode_concat} as barcode"
|
17
|
+
end
|
18
|
+
|
19
|
+
def self.barcode_concat_where barcode
|
20
|
+
where ["#{ChosenItem.barcode_concat} = ?", barcode]
|
21
|
+
end
|
22
|
+
# All the chosen_items must have the full chain of relations up to commission,
|
23
|
+
# Otherwise is invalid (and mustn't exist anyway)
|
24
|
+
# this gives me the ability to simply query for fields on related tables
|
25
|
+
default_scope {
|
26
|
+
joins({chosen_furniture: [:furniture, { chosen_room: [:room, {chosen_deck: [:deck, :commission]}]}], furniture_item: :item}).select_with_barcode
|
27
|
+
}
|
28
|
+
|
29
|
+
def records_for_print id
|
30
|
+
# TODO: move away from this pseudo code as soon as Bancolini tells me
|
31
|
+
# what Mobilart wants
|
32
|
+
# chosen_item.name
|
33
|
+
# chosen_item.barcode
|
34
|
+
# chosen_item.timetables.last.status
|
35
|
+
# chosen_item.timetables.last.job_type
|
36
|
+
ChosenItem.where(chosen_items: {id: id}).distinct
|
37
|
+
end
|
38
|
+
|
39
|
+
def room
|
40
|
+
chosen_furniture.chosen_room.name rescue "-"
|
41
|
+
end
|
42
|
+
|
43
|
+
def deck
|
44
|
+
chosen_furniture.chosen_room.chosen_deck.name rescue "-"
|
45
|
+
end
|
46
|
+
|
47
|
+
def commission
|
48
|
+
chosen_furniture.chosen_room.chosen_deck.commission.code rescue "-"
|
49
|
+
end
|
50
|
+
|
51
|
+
def status
|
52
|
+
" -overridden by pretty_value- "
|
53
|
+
end
|
54
|
+
|
55
|
+
def user
|
56
|
+
workflows.last.user.email rescue "-"
|
57
|
+
end
|
58
|
+
|
59
|
+
def furniture
|
60
|
+
chosen_furniture.furniture.name rescue "-"
|
61
|
+
end
|
62
|
+
|
63
|
+
def item
|
64
|
+
furniture_item.item.name
|
65
|
+
end
|
66
|
+
|
67
|
+
def tiered_times
|
68
|
+
tt = self.timetables
|
69
|
+
t = (tt.sum(:hours)*60 + tt.sum(:minutes))*60
|
70
|
+
t.to_tiered_times true
|
71
|
+
end
|
72
|
+
|
73
|
+
def self.filter_by_id
|
74
|
+
#Rails.logger.debug "QQQQQQQQQQQQQ: #{params.inspect}"
|
75
|
+
end
|
76
|
+
|
77
|
+
rails_admin do
|
78
|
+
navigation_label I18n.t(:operative_section)
|
79
|
+
parent Commission
|
80
|
+
weight 8
|
81
|
+
# TODO: mettere a true per i test, mettere a false in production
|
82
|
+
visible false
|
83
|
+
|
84
|
+
export do
|
85
|
+
field :barcode
|
86
|
+
field :commission
|
87
|
+
field :deck
|
88
|
+
field :room
|
89
|
+
field :furniture
|
90
|
+
field :item
|
91
|
+
field :status
|
92
|
+
field :user
|
93
|
+
end
|
94
|
+
|
95
|
+
list do
|
96
|
+
field :barcode do
|
97
|
+
sortable false
|
98
|
+
searchable false
|
99
|
+
read_only true
|
100
|
+
filterable false
|
101
|
+
end
|
102
|
+
|
103
|
+
field :commission do
|
104
|
+
#column_width 12
|
105
|
+
searchable "commissions.code"
|
106
|
+
read_only true
|
107
|
+
sortable "commissions.code"
|
108
|
+
filterable true
|
109
|
+
end
|
110
|
+
field :deck do
|
111
|
+
#column_width 12
|
112
|
+
searchable "decks.name"
|
113
|
+
sortable "decks.name"
|
114
|
+
read_only true
|
115
|
+
filterable true
|
116
|
+
end
|
117
|
+
field :room do
|
118
|
+
searchable "rooms.name"
|
119
|
+
sortable "rooms.name"
|
120
|
+
read_only true
|
121
|
+
filterable true
|
122
|
+
end
|
123
|
+
field :chosen_furniture do
|
124
|
+
searchable "furnitures.name"
|
125
|
+
sortable "furnitures.name"
|
126
|
+
read_only true
|
127
|
+
filterable true
|
128
|
+
end
|
129
|
+
field :furniture_item do
|
130
|
+
searchable "items.name"
|
131
|
+
sortable "items.name"
|
132
|
+
read_only true
|
133
|
+
filterable true
|
134
|
+
end
|
135
|
+
field :status do
|
136
|
+
pretty_value do
|
137
|
+
obj = bindings[:object]
|
138
|
+
wf = obj.workflows.last
|
139
|
+
status = []
|
140
|
+
status << (wf.stat rescue nil)
|
141
|
+
status << (wf.third_party.username rescue nil)
|
142
|
+
user = (wf.user.username rescue nil)
|
143
|
+
|
144
|
+
html = []
|
145
|
+
html << "<small><strong>#{obj.tiered_times}</strong></small>" unless obj.tiered_times.blank?
|
146
|
+
html << "<small>#{status.compact.join("/")}</small>" unless status.compact.blank?
|
147
|
+
html << "<small>#{user}</small>" unless user.blank?
|
148
|
+
|
149
|
+
html.join("<br/>").html_safe
|
150
|
+
end
|
151
|
+
end
|
152
|
+
# field :user do
|
153
|
+
# column_width 8
|
154
|
+
# end
|
155
|
+
# field :times
|
156
|
+
end
|
157
|
+
end
|
158
|
+
|
159
|
+
def readable_barcode
|
160
|
+
"#{chosen_furniture.readable_barcode}|#{furniture_item.item.code}|#{code.rjust(5, '0')}"
|
161
|
+
end
|
162
|
+
|
163
|
+
# def barcode
|
164
|
+
# "#{chosen_furniture.barcode}#{furniture_item.item.code}#{code.rjust(5, '0')}"
|
165
|
+
# end
|
166
|
+
#
|
167
|
+
# def barcode=(value)
|
168
|
+
# end
|
169
|
+
|
170
|
+
def title
|
171
|
+
# "#{furniture_item.item.name rescue nil} (#{readable_barcode rescue nil})"
|
172
|
+
furniture_item.item.name rescue "Undefined"
|
173
|
+
end
|
174
|
+
|
175
|
+
def name
|
176
|
+
"#{chosen_furniture.chosen_room.chosen_deck.commission.name rescue nil}: #{chosen_furniture.name rescue nil} -> #{title}"
|
177
|
+
end
|
178
|
+
|
179
|
+
private
|
180
|
+
|
181
|
+
def increment_code
|
182
|
+
next_code = (ChosenItem.order("chosen_items.code DESC").pluck(:code).compact.map(&:to_i).max.to_i + 1).to_s
|
183
|
+
# Rails.logger.debug "MAX CODE IS:#{max_code} Adding 1: #{(max_code + 1)}"
|
184
|
+
# self.barcode = "#{chosen_furniture.barcode}#{furniture_item.item.code}#{next_code.rjust(5, '0')}"
|
185
|
+
self.code = next_code
|
186
|
+
end
|
187
|
+
end
|