| 
									
										
										
										
											2011-04-28 14:47:34 +00:00
										 |  |  | class AttributeValue | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  |   include Mongoid::Document | 
					
						
							|  |  |  |   include Mongoid::Timestamps | 
					
						
							| 
									
										
										
										
											2012-10-08 08:58:33 +00:00
										 |  |  |   include Mongoid::MultiParameterAttributes | 
					
						
							| 
									
										
										
										
											2011-04-28 14:47:34 +00:00
										 |  |  |    | 
					
						
							|  |  |  |   field :key | 
					
						
							|  |  |  |    | 
					
						
							| 
									
										
										
										
											2011-12-23 10:34:21 +00:00
										 |  |  |   belongs_to :attribute_field | 
					
						
							|  |  |  |   belongs_to :user | 
					
						
							| 
									
										
										
										
											2012-10-08 08:58:33 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |   before_save :check_key | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   NO_MULTI_TAG = ["select","date","radio_button","checkbox","date_durnation"] | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   def check_key | 
					
						
							|  |  |  |     self.key = attribute_field.key | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   def method_missing(*field) | 
					
						
							|  |  |  |     if field.size < 1
 | 
					
						
							|  |  |  |       self[field[0]]   | 
					
						
							|  |  |  |     else | 
					
						
							|  |  |  |       self[(field[0].to_s.delete "=")] = field[1] | 
					
						
							|  |  |  |     end | 
					
						
							| 
									
										
										
										
											2011-12-23 10:34:21 +00:00
										 |  |  |   end | 
					
						
							| 
									
										
										
										
											2011-04-28 14:47:34 +00:00
										 |  |  |    | 
					
						
							| 
									
										
										
										
											2012-10-08 08:58:33 +00:00
										 |  |  |   def get_value_by_locale(locale) | 
					
						
							|  |  |  |     case self.attribute_field.markup | 
					
						
							|  |  |  |       when "text_field" | 
					
						
							|  |  |  |         self.attribute_field.locale ? self[locale]  : self[:value] | 
					
						
							|  |  |  |       when "select" | 
					
						
							|  |  |  |         self.attribute_field.markup_value[self[:value]][locale.to_s] || NoData | 
					
						
							|  |  |  |       when "email" | 
					
						
							|  |  |  |         self[:value] | 
					
						
							|  |  |  |       when "date" | 
					
						
							|  |  |  |         Date.new(self[:value]["(1i)"].to_i,self[:value]["(2i)"].to_i,self[:value]["(3i)"].to_i) | 
					
						
							|  |  |  |       when "addr" | 
					
						
							|  |  |  |         self[:value] | 
					
						
							|  |  |  |       else | 
					
						
							|  |  |  |         self.attribute_field.locale ? self[locale]  : self[:value] | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   def get_values | 
					
						
							|  |  |  |     if self.attribute_field.locale && !(NO_MULTI_TAG.include? self.attribute_field.markup)  | 
					
						
							|  |  |  |       return Hash[VALID_LOCALES.collect{|lang|  [lang,self[lang.to_sym]]}] | 
					
						
							|  |  |  |     else | 
					
						
							|  |  |  |         return self[:value]   | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-04-28 14:47:34 +00:00
										 |  |  | end |