Module: Ooor::Naming::ClassMethods
- Defined in:
- lib/ooor/naming.rb
Instance Method Summary collapse
- #alias(context = {}) ⇒ Object
-
#const_get(model_key) ⇒ Object
similar to Object#const_get but for OpenERP model key.
- #find_by_permalink(param, options = {}) ⇒ Object
-
#human_attribute_name(field_name, options = {}) ⇒ Object
required by form validators; TODO implement better?.
- #model_name ⇒ Object
- #param_field ⇒ Object
- #param_key(context = {}) ⇒ Object
Instance Method Details
#alias(context = {}) ⇒ Object
72 73 74 75 76 77 78 79 80 81 82 83 84 |
# File 'lib/ooor/naming.rb', line 72 def alias(context={}) # NOTE in v8, see if we can use ModelConvert here https://github.com/akretion/openerp-addons/blob/trunk-website-al/website/models/ir_http.py#L126 if session.config[:aliases] lang = context['lang'] || session.config['lang'] || 'en_US' if alias_data = session.config[:aliases][lang] alias_data.select{|key, value| value == openerp_model }.keys[0] || openerp_model else openerp_model end else openerp_model end end |
#const_get(model_key) ⇒ Object
similar to Object#const_get but for OpenERP model key
40 41 42 43 44 45 46 47 48 |
# File 'lib/ooor/naming.rb', line 40 def const_get(model_key) scope = self.scope_prefix ? Object.const_get(self.scope_prefix) : Object klass_name = session.class_name_from_model_key(model_key) if scope.const_defined?(klass_name) && Ooor.session_handler.noweb_session_spec(scope.const_get(klass_name).session.config) == Ooor.session_handler.noweb_session_spec(session.config) scope.const_get(klass_name) else session.define_openerp_model(model: model_key, scope_prefix: self.scope_prefix) end end |
#find_by_permalink(param, options = {}) ⇒ Object
59 60 61 62 63 64 65 66 67 68 69 70 |
# File 'lib/ooor/naming.rb', line 59 def find_by_permalink(param, ={}) # NOTE in v8, see if we can use PageConverter here https://github.com/akretion/openerp-addons/blob/trunk-website-al/website/models/ir_http.py#L138 param.gsub!('-', ' ') if param.split(' ').last.to_i != 0 .merge!(domain: {:id => param.split(' ').last.to_i}) elsif param.to_i == 0 .merge!(domain: [param_field, 'ilike', param]) else .merge!(domain: {:id => param.to_i}) end find(:first, ) end |
#human_attribute_name(field_name, options = {}) ⇒ Object
required by form validators; TODO implement better?
51 52 53 |
# File 'lib/ooor/naming.rb', line 51 def human_attribute_name(field_name, ={}) "" end |
#model_name ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/ooor/naming.rb', line 22 def model_name @_model_name ||= begin if self.respond_to?(:openerp_model) && self.t namespace = self.parents.detect do |n| n.respond_to?(:use_relative_model_naming?) && n.use_relative_model_naming? end Ooor::Naming::Name.new(self, namespace) else super end end end |
#param_field ⇒ Object
55 56 57 |
# File 'lib/ooor/naming.rb', line 55 def param_field session.config[:param_keys] && session.config[:param_keys][openerp_model] || :id end |
#param_key(context = {}) ⇒ Object
35 36 37 |
# File 'lib/ooor/naming.rb', line 35 def param_key(context={}) self.alias(context).gsub('.', '-') # we don't use model_name because model_name isn't bijective end |