From 6dc3bba750a157e7389070a1cb70b0f1c1d448f1 Mon Sep 17 00:00:00 2001 From: bohung Date: Mon, 8 Mar 2021 21:02:36 +0800 Subject: [PATCH] Fix bug. --- .../admin/personal_plugin_fields_controller.rb | 12 ++++++++---- .../personal_plugin_templates_controller.rb | 2 +- template_generator/app/models/plugin_template.rb | 6 ++++-- 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/app/controllers/admin/personal_plugin_fields_controller.rb b/app/controllers/admin/personal_plugin_fields_controller.rb index 72e4399..c86ff76 100644 --- a/app/controllers/admin/personal_plugin_fields_controller.rb +++ b/app/controllers/admin/personal_plugin_fields_controller.rb @@ -262,9 +262,11 @@ class Admin::PersonalPluginFieldsController < OrbitMemberController strftime_string = ".strftime(\"#{date_time_strftime[field_value[:field_type]]}\")" end ["def #{field_value[:field_name]}", - " \"\#{self.#{field_value[:field_name]}_start#{strftime_string}} ~ \#{self.#{field_value[:field_name]}_end#{strftime_string}}\"", - "end"] - }.flatten + " #{field_value[:field_name]}_start = self.#{field_value[:field_name]}_start#{strftime_string} rescue \"\"", + " #{field_value[:field_name]}_end = self.#{field_value[:field_name]}_end#{strftime_string} rescue \"\"", + " \"\#{#{field_value[:field_name]}_start} ~ \#{#{field_value[:field_name]}_end}\"", + "end"] + }.flatten related_periodic_methods_define = @personal_plugin_field.related_modal_fields.map{|field_values| field_values.select{|f| (f[:periodic_time] == "1" rescue false)}.map{|field_value| strftime_string = "" @@ -294,6 +296,7 @@ class Admin::PersonalPluginFieldsController < OrbitMemberController iterate_step_text = "1" end end + period_fields = primary_modal_fields.select{|f| (f[:periodic_time] == "1" rescue false)}.map{|f| f[:field_name]} time_fields = primary_modal_fields.select{|f| f[:field_type] == "time"}.map{|f| f[:field_name]} before_save_codes = ""#time_fields.map{|f| "self.#{f} = parse_time(self.#{f}.strftime('%H:%M'))"}.join("\r\n") @match_pattern = {"personal_plugin_template" => personal_plugin_template, @@ -337,7 +340,8 @@ class Admin::PersonalPluginFieldsController < OrbitMemberController "iterate_step_text" => iterate_step_text, "plugin_template_related_members" => plugin_template_related_members.to_s, "periodic_methods_define" => periodic_methods_define, - "related_periodic_methods_define" => related_periodic_methods_define + "related_periodic_methods_define" => related_periodic_methods_define, + "period_fields_text" => period_fields.to_s } max_length = @match_pattern.keys.map{|k| k.length}.max @match_pattern = @match_pattern.sort_by{|k,v| (v.class != Array) ? (max_length - k.length) : -k.length} diff --git a/template_generator/app/controllers/personal_plugin_templates_controller.rb b/template_generator/app/controllers/personal_plugin_templates_controller.rb index 1b4003a..b631c0c 100644 --- a/template_generator/app/controllers/personal_plugin_templates_controller.rb +++ b/template_generator/app/controllers/personal_plugin_templates_controller.rb @@ -13,7 +13,7 @@ class PersonalPluginTemplatesController < ApplicationController fields_hash = fields_to_show.map{|field| [field, get_display_field(plugin_template,field)]}.to_h path = OrbitHelper.url_to_plugin_show(member.to_param, 'member') rescue '#' - fields_hash["authors"] = "#{member.name}" + fields_hash["authors"] = "#{member.name}" rescue "" fields_hash["link_to_show"] = OrbitHelper.url_to_show(plugin_template.to_param) fields_hash end diff --git a/template_generator/app/models/plugin_template.rb b/template_generator/app/models/plugin_template.rb index 6acd6c8..1be5caf 100644 --- a/template_generator/app/models/plugin_template.rb +++ b/template_generator/app/models/plugin_template.rb @@ -43,8 +43,10 @@ parse_again_end if (self.fields[t].type.to_s == "String" || self.fields[t].type.to_s == "Object" rescue false) fields_to_remove << t if (datas.where(t.to_sym.ne => nil, t.to_sym.ne => "").count == 0 rescue false) elsif (self.relations.include?(t.pluralize) rescue false) - fields_to_remove << t if (datas.where(t.pluralize.to_sym.ne=>[]).count == 0 rescue false) - else + fields_to_remove << t if (datas.where(t.pluralize.to_sym.ne=>[]).count == 0 rescue false) + elsif period_fields_text.include?(t) + fields_to_remove << t if (datas.select{|d| d.send(t) != " ~ " }.count == 0 rescue false) + else fields_to_remove << t if (datas.where(t.to_sym.ne => nil).count == 0 rescue false) end pd_title << {