From 0c3a2a7832284a7797750ece593b86b589d4c7e0 Mon Sep 17 00:00:00 2001 From: Sylvain Date: Thu, 11 Aug 2016 11:07:49 +0200 Subject: [PATCH] fix events categories --- CHANGELOG.md | 1 + app/controllers/api/events_controller.rb | 4 ++-- lib/tasks/fablab/fix.rake | 8 ++++++++ 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4d642dbf2..5d08770db 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -26,6 +26,7 @@ - Fix a bug: project drafts are shown on public profiles - Fix a bug: event category disappear when editing the event - [TODO DEPLOY] `rake fablab:es_add_event_filters` +- [TODO DEPLOY] `rake fablab:fix:assign_category_to_uncategorized_events` - [TODO DEPLOY] `rake db:migrate` - [TODO DEPLOY] `bundle install` diff --git a/app/controllers/api/events_controller.rb b/app/controllers/api/events_controller.rb index 96702dd6e..d70dff2cd 100644 --- a/app/controllers/api/events_controller.rb +++ b/app/controllers/api/events_controller.rb @@ -1,12 +1,12 @@ class API::EventsController < API::ApiController - before_action :set_event, only: [:show, :edit, :update, :destroy] + before_action :set_event, only: [:show, :update, :destroy] def index @events = policy_scope(Event) @page = params[:page] # filters - @events = @events.joins(:categories).where('categories.id = :category', category: params[:category_id]) if params[:category_id] + @events = @events.joins(:category).where('categories.id = :category', category: params[:category_id]) if params[:category_id] @events = @events.joins(:event_themes).where('event_themes.id = :theme', theme: params[:theme_id]) if params[:theme_id] @events = @events.where('age_range_id = :age_range', age_range: params[:age_range_id]) if params[:age_range_id] diff --git a/lib/tasks/fablab/fix.rake b/lib/tasks/fablab/fix.rake index 59e3d95cd..f230f2d47 100644 --- a/lib/tasks/fablab/fix.rake +++ b/lib/tasks/fablab/fix.rake @@ -8,5 +8,13 @@ namespace :fablab do ' AND reservations.reservable_type = \'Event\'' ) end + + task assign_category_to_uncategorized_events: :environment do + c = Category.find_or_create_by!({name: 'No category'}) + Event.where(category: nil).each do |e| + e.category = c + e.save! + end + end end end