From d6cb086a4a2e2d57fcfcc0516e5389565f3611e8 Mon Sep 17 00:00:00 2001 From: tseng yen chi Date: Fri, 3 Feb 2017 17:12:37 +0800 Subject: [PATCH] fix post_tag and if bulletin's rss2_sn is the same not insert --- app/helpers/admin/announcements_helper.rb | 72 ++++++++++++----------- 1 file changed, 39 insertions(+), 33 deletions(-) diff --git a/app/helpers/admin/announcements_helper.rb b/app/helpers/admin/announcements_helper.rb index e13688a..a174cb9 100644 --- a/app/helpers/admin/announcements_helper.rb +++ b/app/helpers/admin/announcements_helper.rb @@ -6,7 +6,7 @@ module Admin::AnnouncementsHelper def page_for_bulletin(bulletin) ann_page = nil pages = Page.where(:module=>'announcement') - + pages.each do |page| if page.categories.count ==1 if page.categories.include?(bulletin.category.id.to_s) @@ -129,7 +129,7 @@ module Admin::AnnouncementsHelper mail = Email.new(:mail_to => email, :mail_subject => "Announcement rejected公告未通過 : #{announcement.title}.", :template => "email/announcement_email.html.erb", :template_data => {"html" => datatosend}) mail.deliver rescue nil end - end + end end def send_notification_mail_to_managers(announcement, type) @@ -163,7 +163,7 @@ module Admin::AnnouncementsHelper def send_email(name, useremail, announcement, type) url = "http://#{request.host_with_port}/admin/announcements?url=#{page_for_bulletin(announcement).sub("http://" + request.host_with_port, "")}&id=#{announcement.id}" - case type + case type when "approval" datatosend = "

#{t("announcement.approval_mail_hi", :name => name)},

#{t("announcement.submitted_new_announcement", :poster => current_user.name)}

#{t("announcement.approval_announcement_title")} : #{announcement.title}
#{t("announcement.click_here_to_see")} : #{url}

" when "reapproval" @@ -216,40 +216,46 @@ module Admin::AnnouncementsHelper doc.xpath("//channel").each do|channel_data| channel_data.xpath('//item').each do|itme| - bu = Bulletin.new - bu.approved = true - bu.title_translations = {"en" => itme.xpath('title').text, "zh_tw" => itme.xpath('title').text} - bu.text_translations = {"en" => itme.xpath('content:encoded').text, "zh_tw" => itme.xpath('content:encoded').text} - bu.postdate = itme.xpath('wp:post_date').text - - itme.xpath('category').each do |i_cate| - if i_cate["domain"].to_s == "category" - cat = @module_app.categories.where(:title => i_cate.text.to_s).first rescue nil - if cat.nil? - cat = Category.new - cat.module_app = @module_app - cat.title_translations = {"en" => i_cate.text.to_s, "zh_tw" => i_cate.text.to_s} - cat.save - end + bu = Bulletin.where(:rss2_sn => itme.xpath('wp:post_id').text ).first rescue nil + if bu.nil? + bu = Bulletin.new + bu.approved = true + bu.rss2_sn = itme.xpath('wp:post_id').text + bu.title_translations = {"en" => itme.xpath('title').text, "zh_tw" => itme.xpath('title').text} + bu.text_translations = {"en" => itme.xpath('content:encoded').text, "zh_tw" => itme.xpath('content:encoded').text} + bu.postdate = itme.xpath('wp:post_date').text - bu.category = cat + itme.xpath('category').each do |i_cate| + if i_cate["domain"].to_s == "category" - elsif i_cate["domain"].to_s == "post_tag" - - tag = Tag.where(:name => i_cate.text.to_s ) - if tag.nil? == false - tag = Tag.new - tag.name_translations = {"en" => i_cate.text.to_s, "zh_tw" => i_cate.text.to_s} - tag.module_app_ids << @module_app.id - tag.save - end + cat = @module_app.categories.where(:title => i_cate.text.to_s).first rescue nil + if cat.nil? + cat = Category.new + cat.module_app = @module_app + cat.title_translations = {"en" => i_cate.text.to_s, "zh_tw" => i_cate.text.to_s} + cat.save + end + bu.category = cat - bu.tags=tag - end - end - bu.save - end + elsif i_cate["domain"].to_s == "post_tag" + + tag = Tag.where(:name => i_cate.text.to_s ).first rescue nil + if tag.nil? + tag = Tag.new + tag.name_translations = {"en" => i_cate.text.to_s, "zh_tw" => i_cate.text.to_s} + tag.module_app_ids << @module_app.id + tag.save + end + + bu.tags = tag + end + end + + bu.save + end + + end end File.delete(xmlfile) end