diff --git a/app/controllers/admin/event_news_controller.rb b/app/controllers/admin/event_news_controller.rb index a4e4dc1..d5b6654 100644 --- a/app/controllers/admin/event_news_controller.rb +++ b/app/controllers/admin/event_news_controller.rb @@ -52,7 +52,7 @@ class Admin::EventNewsController < OrbitAdminController end def feed - @table_feed_fields = ["event_news.feed_name", :tags, "event_news.rssfeed", "event_news.jsonfeed"] + @table_feed_fields = ["event_news.feed_name", :tags, :categories, "event_news.rssfeed", "event_news.jsonfeed"] @feeds = EventNewsFeed.all.asc(:created_at) end diff --git a/app/controllers/event_news_controller.rb b/app/controllers/event_news_controller.rb index cff8d4e..fe7520d 100644 --- a/app/controllers/event_news_controller.rb +++ b/app/controllers/event_news_controller.rb @@ -28,6 +28,7 @@ class EventNewsController < ApplicationController "event_news_files" => files, "title" => a.title, "speaker" => a.speaker, + "place" => a.place, "host" => a.host, "notes" => a.notes, "source-site" => "", @@ -64,6 +65,7 @@ class EventNewsController < ApplicationController "widget-title" =>t('event_news.event_news'), "title-head" => t('event_news.table.title'), "speaker-head" => t('event_news.speaker'), + "place-head" => t('event_news.place'), "host-head" => t('event_news.host'), "notes-head" => t('event_news.notes'), "event_date-head" => t('date_'), @@ -410,6 +412,7 @@ class EventNewsController < ApplicationController "main_picture_description" => mpd, "title-head" => t('event_news.table.title'), "speaker-head" => t('event_news.speaker'), + "place-head" => t('event_news.place'), "host-head" => t('event_news.host'), "notes-head" => t('event_news.notes'), "event_date-head" => t('date_'), @@ -559,7 +562,8 @@ class EventNewsController < ApplicationController "img_src" => img_src, "img_description" => img_description, "hide_class" => event_news.display_img? ? event_news.image_display_class : ' hide', - "alt_title" => desc + "alt_title" => desc, + "place_text" => (event_news.place.present? rescue false) ? "#{I18n.t("event_news.place")}: #{event_news.place}" : "" }, "impressionist" => (event_news.is_preview ? nil : event_news), "url_to_edit"=>url_to_edit @@ -627,7 +631,8 @@ class EventNewsController < ApplicationController "updated_at" => (datetime.strftime('%Y-%m-%d %H:%M') rescue ""), "body" => event_news["text_translations"][locale], "image" => event_news["image"]["original"], - "alt_title" => desc + "alt_title" => desc, + "place_text" => (event_news["place"].present? rescue false) ? "#{I18n.t("event_news.place")}: #{event_news["place"]}" : "" }, "impressionist" => nil, "url_to_edit" => url_to_edit @@ -688,6 +693,7 @@ class EventNewsController < ApplicationController "event_news_files" => files, "title" => a.title, "speaker" => a.speaker, + "place" => a.place, "host" => a.host, "notes" => a.notes, "source-site" => "", diff --git a/app/controllers/event_news_feeds_controller.rb b/app/controllers/event_news_feeds_controller.rb index c711aba..1c9f704 100644 --- a/app/controllers/event_news_feeds_controller.rb +++ b/app/controllers/event_news_feeds_controller.rb @@ -14,8 +14,10 @@ class EventNewsFeedsController < ApplicationController tags = @bf.tag_ids if !tags.empty? @event_news = EventNews.can_display_and_sorted.is_approved.filter_by_tags(tags) - else - @event_news = [] + end + categories = @bf.category_ids + if !categories.empty? + @event_news = @event_news.filter_by_categories(categories) end else @event_news = [] @@ -74,21 +76,28 @@ class EventNewsFeedsController < ApplicationController dt = params[:date] if !bf.nil? tags = bf.tag_ids - if !tags.empty? + categories = bf.category_ids + if !(categories.empty? && tags.empty?) if !dt.nil? dt = DateTime.parse(dt) dtt = dt + 1.day - event_news = EventNews.where(:postdate.gt => dt, :postdate.lt => dtt).can_display_and_sorted.is_approved.filter_by_tags(tags) + event_news = EventNews.where(:postdate.gt => dt, :postdate.lt => dtt).can_display_and_sorted.is_approved elsif !startdt.nil? && enddt.nil? startdt = DateTime.parse(startdt) enddt = DateTime.now - event_news = EventNews.where(:postdate.gt => startdt, :postdate.lt => enddt).can_display_and_sorted.is_approved.filter_by_tags(tags) + event_news = EventNews.where(:postdate.gt => startdt, :postdate.lt => enddt).can_display_and_sorted.is_approved elsif !startdt.nil? && !enddt.nil? startdt = DateTime.parse(startdt) enddt = DateTime.parse(enddt) + 1.day - event_news = EventNews.where(:postdate.gt => startdt, :postdate.lt => enddt).can_display_and_sorted.is_approved.filter_by_tags(tags) + event_news = EventNews.where(:postdate.gt => startdt, :postdate.lt => enddt).can_display_and_sorted.is_approved else - event_news = EventNews.all.can_display_and_sorted.is_approved.filter_by_tags(tags) + event_news = EventNews.all.can_display_and_sorted.is_approved + end + if !tags.empty? + event_news = event_news.filter_by_tags(tags) + end + if !categories.empty? + event_news = event_news.filter_by_categories(categories) end else event_news = [] @@ -96,7 +105,9 @@ class EventNewsFeedsController < ApplicationController end all_anns = [] tag_names = [] + category_titles = [] tag_ids = [] + category_ids = [] event_news.each do |anns| user = User.find(anns.create_user_id) rescue nil if !user.nil? @@ -106,9 +117,9 @@ class EventNewsFeedsController < ApplicationController end a = {} a["id"] = anns.uid - translations_fields = ["title","subtitle","speaker","host","notes"] + translations_fields = ["title","subtitle","speaker","place","host","notes"] translations_fields.each do |translations_field| - a[translations_field+"_translations"] = anns.send(translations_field+"_translations") + a[translations_field+"_translations"] = anns.send(translations_field+"_translations") rescue {} end a["text_translations"] = {} a["text_translations"]["en"] = smart_convertor(anns.text_translations["en"]) if !anns.text_translations["en"].blank? @@ -122,6 +133,7 @@ class EventNewsFeedsController < ApplicationController a["image"]["mobile"] = ("#{request.base_url}" + anns.image.mobile.url rescue "") a["img_src"] = a["image"]["thumb"] || "/assets/announcement-default.jpg" a["tags"] = [] + a["category"] = {} a["author"] = author a["params"] = anns.to_param a["event_news_links"] = [] @@ -133,6 +145,12 @@ class EventNewsFeedsController < ApplicationController end a["tags"] << {"name_translations" => tag.name_translations} end + cat = anns.category + if (!category_ids.include?(cat.id.to_s) rescue false) + category_ids << cat.id.to_s + category_titles << {"title_translations" => cat.title_translations} + end + a["category"] = {"title_translations" => (cat.title_translations rescue {})} anns.event_news_links.each do |bl| b = {} b["url"] = bl.url @@ -154,7 +172,8 @@ class EventNewsFeedsController < ApplicationController end { "event_news" => all_anns, - "tags" => tag_names + "tags" => tag_names, + "categories" => category_titles } end end diff --git a/app/helpers/event_news_helper.rb b/app/helpers/event_news_helper.rb index bafc892..82c84d0 100644 --- a/app/helpers/event_news_helper.rb +++ b/app/helpers/event_news_helper.rb @@ -57,6 +57,7 @@ module EventNewsHelper "event_news_files" => files, "title" => a.title, "speaker" => a.speaker, + "place" => a.place, "host" => a.host, "notes" => a.notes, "source-site" => "", @@ -121,6 +122,7 @@ module EventNewsHelper "event_news_files" => files, "title" => fa["title_translations"][locale], "speaker" => (fa["speaker_translations"][locale].to_s rescue ""), + "place" => (fa["place_translations"][locale].to_s rescue ""), "host" => (fa["host_translations"][locale].to_s rescue ""), "notes" => (fa["notes_translations"][locale].to_s rescue ""), "subtitle" => fa["subtitle_translations"][locale], diff --git a/app/models/event_news.rb b/app/models/event_news.rb index 47b443b..933fd28 100644 --- a/app/models/event_news.rb +++ b/app/models/event_news.rb @@ -22,7 +22,7 @@ class EventNews field :calendar_all_day,type: Boolean,default: false field :calendar_type_id field :event_id - + field :place, type: String, localize: true field :title, type: String, localize: true field :speaker, type: String, localize: true field :host, type: String, localize: true diff --git a/app/models/event_news_feed.rb b/app/models/event_news_feed.rb index 8abe2eb..c6a4faf 100644 --- a/app/models/event_news_feed.rb +++ b/app/models/event_news_feed.rb @@ -5,5 +5,5 @@ class EventNewsFeed field :title, as: :slug_title, type: String, localize: true field :tag_ids, type: Array, default: [] - + field :category_ids, type: Array, default: [] end \ No newline at end of file diff --git a/app/views/admin/event_news/_edit_feed_form.html.erb b/app/views/admin/event_news/_edit_feed_form.html.erb index 99af240..4df51bd 100644 --- a/app/views/admin/event_news/_edit_feed_form.html.erb +++ b/app/views/admin/event_news/_edit_feed_form.html.erb @@ -12,24 +12,47 @@ <% end %>
+

<%=t(:tags)%>

- +
+
+ +
+

<%=t(:category)%>

+
+
+ <% @module_app.categories.each do |category| %> + + <% end %> +
diff --git a/app/views/admin/event_news/_feed.html.erb b/app/views/admin/event_news/_feed.html.erb index 1656396..4ac775d 100644 --- a/app/views/admin/event_news/_feed.html.erb +++ b/app/views/admin/event_news/_feed.html.erb @@ -42,6 +42,38 @@ + +
+
+ +
+
+ RSS Feed diff --git a/app/views/admin/event_news/_feed_form.html.erb b/app/views/admin/event_news/_feed_form.html.erb index 16bd93a..efc385e 100644 --- a/app/views/admin/event_news/_feed_form.html.erb +++ b/app/views/admin/event_news/_feed_form.html.erb @@ -12,24 +12,47 @@ <% end %>
+

<%=t(:tags)%>

- +
+
+ +
+

<%=t(:category)%>

+
+
+ <% @module_app.categories.each do |category| %> + + <% end %> +
diff --git a/app/views/admin/event_news/_form.html.erb b/app/views/admin/event_news/_form.html.erb index 147a7ce..9fe2988 100644 --- a/app/views/admin/event_news/_form.html.erb +++ b/app/views/admin/event_news/_form.html.erb @@ -355,6 +355,15 @@ <% end %> + +
+ +
+ <%= f.fields_for :place_translations do |f| %> + <%= f.text_field locale, class: "input-block-level", placeholder: t("event_news.place"), value: (@event_news.place_translations[locale] rescue nil) %> + <% end %> +
+
diff --git a/app/views/admin/event_news/excel_format.xlsx.axlsx b/app/views/admin/event_news/excel_format.xlsx.axlsx index 3d54725..3ad39b8 100644 --- a/app/views/admin/event_news/excel_format.xlsx.axlsx +++ b/app/views/admin/event_news/excel_format.xlsx.axlsx @@ -37,16 +37,16 @@ wb.add_worksheet(name: "EventNewsModule") do |sheet| row2 << t row << t("event_news.event_date") - row1 << "date" - row2 << "Format: YYYY/MM/DD, Example: 2015/12/10" + row1 << "datetime" + row2 << "Format: YYYY/MM/DD HH:mm, Example: 2015/12/10 15:20" row << t("event_news.start_date") - row1 << "date" - row2 << "Format: YYYY/MM/DD, Example: 2015/12/10" + row1 << "datetime" + row2 << "Format: YYYY/MM/DD HH:mm, Example: 2015/12/10 15:30" row << t("event_news.end_date") - row1 << "date" - row2 << "Format: YYYY/MM/DD, Example: 2015/12/12" + row1 << "datetime" + row2 << "Format: YYYY/MM/DD HH:mm, Example: 2015/12/12 17:30" row << t("top") row1 << "boolean" @@ -142,6 +142,12 @@ wb.add_worksheet(name: "EventNewsModule") do |sheet| row1 << "textfield" row2 << "Seperate with ';' with respective to the links in the link columns. Example : example1; example2" + row << t("event_news.place") + "-" + t("en") + row1 << "textfield" + row2 << "" + row << t("event_news.place") + "-" + t("zh_tw") + row1 << "textfield" + row2 << "" sheet.add_row row, :style => heading sheet.add_row row1 diff --git a/app/views/admin/event_news/export_excel.xlsx.axlsx b/app/views/admin/event_news/export_excel.xlsx.axlsx index 04b3b8b..60ecec9 100644 --- a/app/views/admin/event_news/export_excel.xlsx.axlsx +++ b/app/views/admin/event_news/export_excel.xlsx.axlsx @@ -39,16 +39,16 @@ wb.add_worksheet(name: "EventNewsModule") do |sheet| row2 << t row << t("event_news.event_date") - row1 << "date" - row2 << "Format: YYYY/MM/DD, Example: 2015/12/10" + row1 << "datetime" + row2 << "Format: YYYY/MM/DD HH:mm, Example: 2015/12/10 15:20" row << t("event_news.start_date") - row1 << "date" - row2 << "Format: YYYY/MM/DD, Example: 2015/12/10" + row1 << "datetime" + row2 << "Format: YYYY/MM/DD HH:mm, Example: 2015/12/10 15:30" row << t("event_news.end_date") - row1 << "date" - row2 << "Format: YYYY/MM/DD, Example: 2015/12/12" + row1 << "datetime" + row2 << "Format: YYYY/MM/DD HH:mm, Example: 2015/12/12 17:30" row << t("top") row1 << "boolean" @@ -144,6 +144,12 @@ wb.add_worksheet(name: "EventNewsModule") do |sheet| row1 << "textfield" row2 << "Seperate with ';' with respective to the links in the link columns. Example : example1; example2" + row << t("event_news.place") + "-" + t("en") + row1 << "textfield" + row2 << "" + row << t("event_news.place") + "-" + t("zh_tw") + row1 << "textfield" + row2 << "" sheet.add_row row, :style => heading sheet.add_row row1 @@ -157,9 +163,9 @@ wb.add_worksheet(name: "EventNewsModule") do |sheet| t << tags.to_a.index(tag) end row << t.join(",") - row << (anns.event_date.strftime("%Y/%m/%d") rescue "") - row << (anns.postdate.strftime("%Y/%m/%d") rescue "") - row << (anns.deadline.strftime("%Y/%m/%d") rescue "") + row << (anns.event_date.strftime("%Y/%m/%d %H:%M") rescue "") + row << (anns.postdate.strftime("%Y/%m/%d %H:%M") rescue "") + row << (anns.deadline.strftime("%Y/%m/%d %H:%M") rescue "") row << (anns.is_top? ? 1 : 0) row << (anns.is_hot? ? 1 : 0) row << (anns.is_hidden? ? 1 : 0) @@ -199,6 +205,8 @@ wb.add_worksheet(name: "EventNewsModule") do |sheet| row << t.join(";") t = files.collect{|l|l.title_translations["zh_tw"]} row << t.join(";") + row << anns.place_translations["en"] + row << anns.place_translations["zh_tw"] sheet.add_row row end diff --git a/config/locales/en.yml b/config/locales/en.yml index fcfd2e8..f907c65 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -2,6 +2,7 @@ en: module_name: event_news: Event News event_news: + place: Place cover_image_display_setting: Cover Image display setting full_width: Full width up_left_corner: Up-left corner diff --git a/config/locales/zh_tw.yml b/config/locales/zh_tw.yml index 30b9916..813c1e0 100644 --- a/config/locales/zh_tw.yml +++ b/config/locales/zh_tw.yml @@ -2,6 +2,7 @@ zh_tw: module_name: event_news: 活動公告 event_news: + place: 地點 cover_image_display_setting: 封面圖片顯示設定 full_width: 滿版呈現 up_left_corner: 左上角 diff --git a/modules/event_news/show.html.erb b/modules/event_news/show.html.erb index 5d91d02..0341900 100644 --- a/modules/event_news/show.html.erb +++ b/modules/event_news/show.html.erb @@ -17,11 +17,16 @@
  • - {{speaker-head}}: - {{speaker}} -  /  - {{host-head}}: - {{host}} + + {{speaker-head}}: + {{speaker}} + +  /  + + {{host-head}}: + {{host}} + +
    {{place_text}}