diff --git a/app/controllers/admin/writing_conferences_controller.rb b/app/controllers/admin/writing_conferences_controller.rb index ebb6e08..1733011 100644 --- a/app/controllers/admin/writing_conferences_controller.rb +++ b/app/controllers/admin/writing_conferences_controller.rb @@ -8,6 +8,12 @@ class Admin::WritingConferencesController < OrbitMemberController before_action :need_access_right before_action :allow_admin_only, :only => [:index, :setting] + def update_setting + setting_params = params.require(:writing_conference_setting).permit! + setting_params[:display_fields_in_member_page] = [] if setting_params[:display_fields_in_member_page].nil? + WritingConferenceSetting.update_all(setting_params) + redirect_to admin_writing_conference_setting_path + end def merge_process params['writing_conference_id'].each do |writing_conference_id| writing_conference_ids = writing_conference_id.split('/') diff --git a/app/models/writing_conference.rb b/app/models/writing_conference.rb index 802efb9..56e146c 100644 --- a/app/models/writing_conference.rb +++ b/app/models/writing_conference.rb @@ -76,6 +76,7 @@ class WritingConference def self.get_plugin_datas_to_member(datas) + get_setting page = Page.where(:module => "personal_conference").first rescue nil if !page.nil? && page.custom_string_field == "table" if !page.custom_array_field.blank? @@ -91,13 +92,10 @@ class WritingConference ] end else - fields_to_show = [ - "year", - "paper_title" - ] + fields_to_show = @setting.display_fields_in_member_page.clone + fields_to_show << "paper_title" end - - fields_to_remove = [] + fields_to_remove = [] pd_title = [] @@ -138,6 +136,8 @@ class WritingConference pd_data << {"data_title" => p.duration} when "url" pd_data << { "data_title" => "#{p.url}" } + when "publication_date" + pd_data << { "data_title" => (p.publication_date.strftime(@setting.publication_date_format) rescue "") } else pd_data << { "data_title" => p.send(t) } end @@ -146,6 +146,8 @@ class WritingConference link = OrbitHelper.url_to_plugin_show(p.to_param,'personal_conference') link = (link == "#" ? p.create_link : "#{p.create_link}") pd_data << { "data_title" => link } + elsif t == "publication_date" + pd_data << { "data_title" => (p.publication_date.strftime(@setting.publication_date_format) rescue "") } else pd_data << { "data_title" => p.send(t) } end @@ -187,7 +189,8 @@ class WritingConference end value = value.join(" / ") when "publication_date" - value = self.publication_date.strftime("%Y-%m-%d") rescue "" + get_setting + value = self.publication_date.strftime(@setting.publication_date_format) rescue "" when "abstract" value = nl2br(self.abstract) when "language" @@ -218,7 +221,12 @@ class WritingConference "value"=>value } end - + def get_setting + @setting ||= WritingConferenceSetting.first + end + def self.get_setting + @setting ||= WritingConferenceSetting.first + end protected def add_http diff --git a/app/models/writing_conference_setting.rb b/app/models/writing_conference_setting.rb new file mode 100644 index 0000000..7246490 --- /dev/null +++ b/app/models/writing_conference_setting.rb @@ -0,0 +1,7 @@ +class WritingConferenceSetting + include Mongoid::Document + include Mongoid::Timestamps + Fields_names = ["year","publication_date"] + field :display_fields_in_member_page, :type => Array, :default => ["year"] + field :publication_date_format, :type => String, :default => "%Y-%m-%d" +end \ No newline at end of file diff --git a/app/views/admin/writing_conferences/_writing_conference.html.erb b/app/views/admin/writing_conferences/_writing_conference.html.erb index 5c04059..b736de9 100644 --- a/app/views/admin/writing_conferences/_writing_conference.html.erb +++ b/app/views/admin/writing_conferences/_writing_conference.html.erb @@ -1,3 +1,4 @@ +<% OrbitHelper.set_site_locale(I18n.locale) %> <% @writing_conferences.each do |writing_conference| %>
+ <%= t('add')%> + <%= t("personal_conference.page_settings") %> +
+