65 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Ruby
		
	
	
	
		
		
			
		
	
	
			65 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Ruby
		
	
	
	
| 
								 | 
							
								module OrbitModel
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  module Approval
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    def self.included(base)
							 | 
						||
| 
								 | 
							
								      base.extend ClassMethods
							 | 
						||
| 
								 | 
							
								      base.class_eval do
							 | 
						||
| 
								 | 
							
								        field :is_checked, :type => Boolean, :default => false
							 | 
						||
| 
								 | 
							
								        field :is_pending, :type => Boolean, :default => true 
							 | 
						||
| 
								 | 
							
								        field :is_rejected, :type => Boolean, :default => false 
							 | 
						||
| 
								 | 
							
								        field :not_checked_reason
							 | 
						||
| 
								 | 
							
								        class_variable_defined?(:@@can_display) ? \
							 | 
						||
| 
								 | 
							
								        class_variable_set(:@@can_display, class_variable_get(:@@can_display).merge({is_checked: true, is_rejected: false, is_pending: false})) : \
							 | 
						||
| 
								 | 
							
								        class_variable_set(:@@can_display, {is_checked: true, is_rejected: false, is_pending: false})
							 | 
						||
| 
								 | 
							
								        send :include, InstanceMethods
							 | 
						||
| 
								 | 
							
								      end
							 | 
						||
| 
								 | 
							
								    end
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    module InstanceMethods
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								      def de_pending
							 | 
						||
| 
								 | 
							
								        self.is_pending = false
							 | 
						||
| 
								 | 
							
								      end
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								      def de_pending!
							 | 
						||
| 
								 | 
							
								        de_pending
							 | 
						||
| 
								 | 
							
								        self.save!
							 | 
						||
| 
								 | 
							
								      end
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								      def is_checked?
							 | 
						||
| 
								 | 
							
								        !self.is_pending && self.is_checked && (self.is_rejected == false)
							 | 
						||
| 
								 | 
							
								      end
							 | 
						||
| 
								 | 
							
								      
							 | 
						||
| 
								 | 
							
								      def is_pending?
							 | 
						||
| 
								 | 
							
								        self.is_pending
							 | 
						||
| 
								 | 
							
								      end
							 | 
						||
| 
								 | 
							
								      
							 | 
						||
| 
								 | 
							
								      def is_rejected?
							 | 
						||
| 
								 | 
							
								        !self.is_pending && self.is_rejected && (self.is_rejected == true)
							 | 
						||
| 
								 | 
							
								      end
							 | 
						||
| 
								 | 
							
								      
							 | 
						||
| 
								 | 
							
								      def proc_check(check,not_pass_info = "")
							 | 
						||
| 
								 | 
							
								        self.is_checked = true
							 | 
						||
| 
								 | 
							
								        if check == "true"
							 | 
						||
| 
								 | 
							
								          self.is_rejected = false
							 | 
						||
| 
								 | 
							
								        elsif check == "false"
							 | 
						||
| 
								 | 
							
								          self.is_rejected = true
							 | 
						||
| 
								 | 
							
								          self.not_checked_reason = not_pass_info
							 | 
						||
| 
								 | 
							
								        end
							 | 
						||
| 
								 | 
							
								      end
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    end
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    module ClassMethods
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								      define_method(:can_display) do
							 | 
						||
| 
								 | 
							
								        where(class_variable_get(:@@can_display))
							 | 
						||
| 
								 | 
							
								      end unless method_defined? :can_display
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    end
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								  end
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								end
							 |