Newer
Older
dmpopidor / app / admin / section.rb
@Marta Ribeiro Marta Ribeiro on 3 Jun 2016 2 KB DMPonline4 - RAILS 4.0 (#4)
# [+Project:+] DMPonline
# [+Description:+] 
#   
# [+Created:+] 03/09/2014
# [+Copyright:+] Digital Curation Centre 

ActiveAdmin.register Section do 
	permit_params :organisation_id, :description, :number, :title, :version_id
	
	menu :priority => 8, :label => proc{I18n.t('admin.section')}, :parent =>  "Templates management"
		
	filter :title
	filter :organisation
	filter :version
	filter :created_at
	filter :updated_at
	 

	index do   
        column :title , :sortable => :title do |section|
            if !section.title.nil? then
            link_to section.title, [:admin, section]
         end
        end
        column I18n.t('admin.version'), :sortable => :version_id do |version_title|
            if !version_title.version_id.nil? then
                link_to version_title.version.title, [:admin, version_title.version]
            end
        end
        column I18n.t('admin.org_title'), :sortable => :organisation_id do |org_title|
           if !org_title.organisation_id.nil? then
                link_to org_title.organisation.name, [:admin, org_title.organisation]
           end
        end
        
        actions
    end
  
  #show details of a section
  show do 
	attributes_table do
		row :title
		row	:number
		row :description do |descr|
	  		if !descr.description.nil? then
	  			descr.description.html_safe
	  		end
		end
	  	row I18n.t('admin.version'), :sortable => :version_id do |version_title|
	  		if !version_title.version_id.nil? then
				link_to version_title.version.title, [:admin, version_title.version]
			end		
     	end
     	row I18n.t('admin.org_title'), :sortable => :organisation_id do |org_title|
			if !org_title.organisation_id.nil? then
				link_to org_title.organisation.name, [:admin, org_title.organisation]
			end
   	 	end
     	row :created_at
     	row :updated_at
	end
		 
  end 
  
  
  #questions sidebar(:default_value, :dependency_id, :dependency_text, :guidance, :number, :parent_id, :suggested_answer, :text, :question_type, :section_id)
 		sidebar proc{I18n.t("admin.questions")}, :only => :show, :if => proc { (Question.where("section_id = ?", params[:id])).count >= 1}  do 
 			table_for( Question.where("section_id = ?", params[:id] ).order("number")) do
		 				column (:number){|question| question.number} 
	  				column (I18n.t("admin.question")){|question| link_to question.text, [:admin, question]}
		 	end	
	 		
 		end
 		
 	#form 
  form do |f|
  	f.inputs "Details" do
  		f.input :title
  		f.input :number
  		f.input :version, :collection => Version.all.map{ |ver| [ver.title, ver.id] }
  		f.input :organisation, :as => :select, :collection => Organisation.order('name').map{|orgp|[orgp.name, orgp.id]}
  		f.input :description
   	end
  	
  	 f.actions 
  end
  
	 controller do
		def permitted_params
		  params.permit!
		end
  end
end