Class: CustomField

Inherits:
Ekylibre::Record::Base show all
Defined in:
app/models/custom_field.rb

Overview

Informations

License

Ekylibre - Simple agricultural ERP Copyright (C) 2008-2009 Brice Texier, Thibaud Merigon Copyright (C) 2010-2012 Brice Texier Copyright (C) 2012-2016 Brice Texier, David Joulin

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License along with this program. If not, see www.gnu.org/licenses.

Table: custom_fields

active          :boolean          default(TRUE), not null
column_name     :string           not null
created_at      :datetime         not null
creator_id      :integer
customized_type :string           not null
id              :integer          not null, primary key
lock_version    :integer          default(0), not null
maximal_length  :integer
maximal_value   :decimal(19, 4)
minimal_length  :integer
minimal_value   :decimal(19, 4)
name            :string           not null
nature          :string           not null
position        :integer
required        :boolean          default(FALSE), not null
updated_at      :datetime         not null
updater_id      :integer

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Ekylibre::Record::Base

#already_updated?, attr_readonly_with_conditions, #check_if_destroyable?, #check_if_updateable?, columns_definition, complex_scopes, customizable?, #customizable?, #customized?, #destroyable?, #editable?, has_picture, #human_attribute_name, human_attribute_name_with_id, nomenclature_reflections, #old_record, #others, refers_to, scope_with_registration, simple_scopes, #updateable?

Class Method Details

.customizable_typesObject


92
93
94
95
96
# File 'app/models/custom_field.rb', line 92

def self.customizable_types
  Ekylibre::Schema.model_names.select do |model_name|
    model_name.to_s.constantize.respond_to?(:custom_fields)
  end
end

Instance Method Details

#customized_modelObject

Access to the customized model


99
100
101
# File 'app/models/custom_field.rb', line 99

def customized_model
  customized_type.constantize
end

#customized_table_nameObject

Returns to the customized table name


104
105
106
# File 'app/models/custom_field.rb', line 104

def customized_table_name
  customized_model.table_name
end

#sort_choices!Object


85
86
87
88
89
90
# File 'app/models/custom_field.rb', line 85

def sort_choices!
  choices.reorder(:name).to_a.each_with_index do |choice, index|
    choice.position = index + 1
    choice.save!
  end
end