From 9e91349282861b451a6b13afa4a6a299a4b3e92e Mon Sep 17 00:00:00 2001 From: Harry Bomrah Date: Fri, 24 Feb 2017 17:58:40 +0800 Subject: [PATCH] mods for index fields modification --- .../personal_diplomas_controller.rb | 69 ++++++++++++++----- 1 file changed, 53 insertions(+), 16 deletions(-) diff --git a/app/controllers/personal_diplomas_controller.rb b/app/controllers/personal_diplomas_controller.rb index 1329810..0778793 100644 --- a/app/controllers/personal_diplomas_controller.rb +++ b/app/controllers/personal_diplomas_controller.rb @@ -1,6 +1,15 @@ class PersonalDiplomasController < ApplicationController def index diplomas = Diploma.where(:is_hidden=>false).order_by(:end_date=>'desc', :start_date=>'desc').page(OrbitHelper.params[:page_no]).per(OrbitHelper.page_data_count) + fields_to_show = Page.where(:page_id => params[:page_id]).first.custom_array_field rescue [] + if fields_to_show.blank? + fields_to_show = [ + "name", + "duration", + "school_name", + "degree" + ] + end diploma_list = diplomas.collect do |diploma| { "member" => (diploma.member_profile.name rescue ""), @@ -10,16 +19,39 @@ class PersonalDiplomasController < ApplicationController "link_to_show" => OrbitHelper.url_to_show(diploma.to_param) } end + diploma_list = [] + diplomas.each do |diploma| + t = [] + fields_to_show.each do |fs| + case fs + when "name" + t << {"value" => (diploma.member_profile.name rescue "")} + when "degree" + t << {"value" => "" + (diploma.send(fs) rescue "") + ""} + when "start_date" + t << {"value" => (diploma.start_date.strftime("%Y/%m/%d") rescue "")} + when "end_date" + t << {"value" => (diploma.end_date.strftime("%Y/%m/%d") rescue "")} + else + t << {"value" => diploma.send(fs)} + end + end + diploma_list << {"diploma_list" => t} + end + + headers = [] + fields_to_show.each do |fs| + col = 2 + col = 3 if fs == "degree" + headers << { + "head-title" => t("personal_diploma.#{fs}"), + "col" => col + } + end { - "diplomas" => diploma_list, - "extras" => { - "widget-title" => t("module_name.personal_diploma"), - "th_member" => t('users.name'), - "th_duration" => t('personal_diploma.duration'), - "th_school_name" => t('personal_diploma.school_name'), - "th_degree" => t('personal_diploma.degree'), - "th_detail" => t('detail') - }, + "journal_papers" => diploma_list, + "headers" => headers, + "extras" => {"widget-title" => t("module_name.personal_diploma")}, "total_pages" => diplomas.total_pages } end @@ -50,17 +82,22 @@ class PersonalDiplomasController < ApplicationController "country", "department", "degree", + "language", + "keywords", + "start_date", + "end_date", + "note", "url" ] @fields_to_show = @fields_to_show.map{|fs| [t("personal_diploma.#{fs}"), fs]} @default_fields_to_show = [ - "paper_title", - "journal_title", - "authors", - "year", - "issue_no", - "vol_no", - "level_type" + "name", + "school_name", + "duration", + "country", + "department", + "degree", + "url" ] render :layout => false end