From 8a91291f3e6e1851aaffd98df6d0258c5e762e90 Mon Sep 17 00:00:00 2001 From: Mauricio Giacomini Girardello <mgg12@inf.ufpr.br> Date: Wed, 17 Feb 2016 11:08:16 -0200 Subject: [PATCH] refactoring class methods for scopes concepts and add import topics task --- app/controllers/learning_objects_controller.rb | 3 +-- app/models/topic.rb | 7 +------ ...0217122253_create_default_column_for_topics.rb | 5 +++++ lib/tasks/topics.rake | 15 +++++++++++++++ 4 files changed, 22 insertions(+), 8 deletions(-) create mode 100644 db/migrate/20160217122253_create_default_column_for_topics.rb create mode 100644 lib/tasks/topics.rake diff --git a/app/controllers/learning_objects_controller.rb b/app/controllers/learning_objects_controller.rb index 2c463af5..90547b9f 100644 --- a/app/controllers/learning_objects_controller.rb +++ b/app/controllers/learning_objects_controller.rb @@ -4,7 +4,6 @@ class LearningObjectsController < ApplicationController include Reportable before_action :authenticate_user!, except: [:index, :show] - before_action :set_learning_object, only: [:show, :edit, :update, :destroy, :like, :bookmarks, :collections, :upload, :upload_link, :download] @@ -21,7 +20,7 @@ class LearningObjectsController < ApplicationController def new @learning_object = LearningObject.new @school_levels = ['Educação Infantil', 'Ensino Fundamental', 'Ensino Médio'] - @subjects = Topic.all.map{|x| x.name}.uniq + @subjects = Topic.defaults @types = LearningObject.default_types @languages = Language.all end diff --git a/app/models/topic.rb b/app/models/topic.rb index deb70dd6..75c0c3a8 100644 --- a/app/models/topic.rb +++ b/app/models/topic.rb @@ -10,10 +10,5 @@ class Topic < ActiveRecord::Base validates_presence_of :name validates_uniqueness_of :name - def self.default_list - ['Artes', 'Biologia', 'Ciências', 'Educação FÃsica', 'Filosofia', - 'FÃsica', 'Geografia', 'História', 'Matemática', 'LÃngua Portuguesa', 'QuÃmica', 'Sociologia'].map do |topic| - Topic.find_by_name(topic) - end - end + scope :defaults, -> { where(default: true) } end diff --git a/db/migrate/20160217122253_create_default_column_for_topics.rb b/db/migrate/20160217122253_create_default_column_for_topics.rb new file mode 100644 index 00000000..e638daba --- /dev/null +++ b/db/migrate/20160217122253_create_default_column_for_topics.rb @@ -0,0 +1,5 @@ +class CreateDefaultColumnForTopics < ActiveRecord::Migration + def change + add_column :topics, :default, :boolean, default: false + end +end diff --git a/lib/tasks/topics.rake b/lib/tasks/topics.rake new file mode 100644 index 00000000..a38e5531 --- /dev/null +++ b/lib/tasks/topics.rake @@ -0,0 +1,15 @@ +namespace :topics do + + desc "Define defaults topics" + task :define_defaults => :environment do + ['Artes', 'Biologia', 'Ciências', 'Educação FÃsica', 'Filosofia', + 'FÃsica', 'Geografia', 'História', 'Matemática', 'LÃngua Portuguesa', 'QuÃmica', 'Sociologia'].map do |name| + t = Topic.find_by_name(name) + if t.class == Topic + t.default = true + t.save + end + end + end + +end -- GitLab