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 %>