From 6cfd300a490c0e31f2d5a78483dddee94ab69981 Mon Sep 17 00:00:00 2001 From: greendog Date: Sun, 16 Oct 2011 18:46:58 +0400 Subject: [PATCH 1/7] added task for custom migrations --- lib/tasks/faq.rake | 84 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 lib/tasks/faq.rake diff --git a/lib/tasks/faq.rake b/lib/tasks/faq.rake new file mode 100644 index 0000000..faef58c --- /dev/null +++ b/lib/tasks/faq.rake @@ -0,0 +1,84 @@ +require 'fileutils' +include FileUtils::Verbose + +namespace :db do + desc "Standart migrations" + task :migrate do + Rake::Task["faq:db:migrate"].invoke + end + + desc "Loads a specified fixture using rake db:load_file[filename.rb]" + task :seed do + Rake::Task["faq:db:load_dir"].invoke("default") + end +end + +namespace :faq do + namespace :db do + desc "Custom migrations" + task :migrate do + require 'erb' + require 'logger' + require 'active_record' + reference = YAML::load(ERB.new(IO.read("#{Rails.root}/config/database.yml")).result) + env = RAILS_ENV = ENV['RAILS_ENV'] || 'development' + ActiveRecord::Base.logger = Logger.new(STDOUT) + ActiveRecord::Base.logger.level = Logger::WARN + ActiveRecord::Base.configurations = reference.dup + reference.each_key do |name| + next unless name.include? env + puts "Migrating #{name} faq" + ActiveRecord::Base.clear_active_connections! + ActiveRecord::Base.configurations[env] = reference[name] + ActiveRecord::Base.establish_connection RAILS_ENV + ActiveRecord::Migration.verbose = ENV["VERBOSE"] ? ENV["VERBOSE"] == "true" : true + ActiveRecord::Migrator.migrate("#{File.expand_path('../..', File.dirname(__FILE__))}/db/migrate", ENV["VERSION"] ? ENV["VERSION"].to_i : nil) + Rake::Task["db:schema:dump"].invoke if ActiveRecord::Base.schema_format == :ruby + end + end + + desc "Loads a specified fixture using rake db:load_file[filename.rb]" + task :seed do + Rake::Task["faq:db:load_dir"].invoke("default") + end + + desc "Loads a specified fixture using rake db:load_file[filename.rb]" + task :load_file, [:file] => :environment do |t, args| + file = args.file + ext = File.extname file + if ext == ".csv" or ext == ".yml" + puts "loading fixture " + file + Fixtures.create_fixtures(File.dirname(file), File.basename(file, '.*')) + else + if File.exists? file + puts "loading ruby " + file + require file + end + end + end + + desc "Loads fixtures from the the dir you specify using rake db:load_dir[loadfrom]" + task :load_dir, [:dir] => :environment do |t, args| + dir = args.dir + fixtures = ActiveSupport::OrderedHash.new + ruby_files = ActiveSupport::OrderedHash.new + Dir.glob(File.join(File.expand_path('../..', File.dirname(__FILE__)), "db", dir, '*.{yml,csv,rb}')).each do |fixture_file| + ext = File.extname fixture_file + if ext == ".rb" + ruby_files[File.basename(fixture_file, '.*')] = fixture_file + else + fixtures[File.basename(fixture_file, '.*')] = fixture_file + end + end + fixtures.sort.each do |fixture, fixture_file| + # an invoke will only execute the task once + Rake::Task["db:load_file"].execute(Rake::TaskArguments.new([:file], [fixture_file])) + end + ruby_files.sort.each do |fixture, ruby_file| + # an invoke will only execute the task once + Rake::Task["db:load_file"].execute(Rake::TaskArguments.new([:file], [ruby_file])) + end + end + end +end + From 1eb1c187702cd4eccd9becf8afa2de78d2142170 Mon Sep 17 00:00:00 2001 From: greendog Date: Sun, 16 Oct 2011 21:09:55 +0400 Subject: [PATCH 2/7] added russian locales --- config/locales/ru.yml | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 config/locales/ru.yml diff --git a/config/locales/ru.yml b/config/locales/ru.yml new file mode 100644 index 0000000..ef0d977 --- /dev/null +++ b/config/locales/ru.yml @@ -0,0 +1,13 @@ +--- +en: + frequently_asked_questions: Вопросы-Ответы + question_categories_admin: FAQ + question_categories: Вопросы-Ответы + new_question_category: Новая категория + questions: Вопросы + create_category: Создать категорию + category_name: Название категории + add_question: Добавить вопрос + question: Вопрос + answer: Ответ + From 4fd0b5daefd7d9bcf5f7b5c639be3e0c6e20a394 Mon Sep 17 00:00:00 2001 From: Alexander Date: Sun, 16 Oct 2011 21:31:07 +0400 Subject: [PATCH 3/7] Update config/locales/ru.yml --- config/locales/ru.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/locales/ru.yml b/config/locales/ru.yml index ef0d977..8cbe8e2 100644 --- a/config/locales/ru.yml +++ b/config/locales/ru.yml @@ -1,5 +1,5 @@ --- -en: +ru: frequently_asked_questions: Вопросы-Ответы question_categories_admin: FAQ question_categories: Вопросы-Ответы From 441c93882a918bfcee7d569a920573515aac4e16 Mon Sep 17 00:00:00 2001 From: Alexander Date: Sun, 16 Oct 2011 23:57:42 +0400 Subject: [PATCH 4/7] Update app/assets/javascripts/store/all.js --- app/assets/javascripts/store/all.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/assets/javascripts/store/all.js b/app/assets/javascripts/store/all.js index 4776300..fce2c6f 100644 --- a/app/assets/javascripts/store/all.js +++ b/app/assets/javascripts/store/all.js @@ -1 +1 @@ -//= require spree_faq +//= require store/spree_faq From 2ba555a10b6331a5e5be821d672d8be0e96c2020 Mon Sep 17 00:00:00 2001 From: greendog Date: Mon, 17 Oct 2011 13:11:21 +0400 Subject: [PATCH 5/7] added raw to answer --- app/views/faqs/index.html.erb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/faqs/index.html.erb b/app/views/faqs/index.html.erb index 245ce1e..4c182c5 100644 --- a/app/views/faqs/index.html.erb +++ b/app/views/faqs/index.html.erb @@ -11,7 +11,7 @@ <%= h question.question -%>
"> - <%= question.answer %> + <%= raw question.answer %>
<% end %> From a4ad4043effd8cce67c89f1d83e60c3cc706ec63 Mon Sep 17 00:00:00 2001 From: greendog Date: Mon, 17 Oct 2011 20:58:11 +0400 Subject: [PATCH 6/7] fix admin assets path --- app/views/admin/question_categories/edit.html.erb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/views/admin/question_categories/edit.html.erb b/app/views/admin/question_categories/edit.html.erb index bebf349..357d45f 100644 --- a/app/views/admin/question_categories/edit.html.erb +++ b/app/views/admin/question_categories/edit.html.erb @@ -1,6 +1,6 @@ <% content_for :head do %> - <%= javascript_include_tag 'jquery.scrollTo-min' %> - <%= stylesheet_link_tag 'spree_faq' %> + <%= javascript_include_tag 'admin/jquery.scrollTo-min' %> + <%= stylesheet_link_tag 'admin/spree_faq' %> <% end %> <%= form_for @question_category, :url => object_path do |f| %> <%= render "shared/error_messages", :target => f.object %> From 428cb4feb267f0b96355f6b59e7ed6b5099cce2f Mon Sep 17 00:00:00 2001 From: Alexander Date: Tue, 18 Oct 2011 22:20:27 +0400 Subject: [PATCH 7/7] [DEPRECATION] `insert_bottom` hook method is deprecated --- lib/spree_faq_hooks.rb | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/lib/spree_faq_hooks.rb b/lib/spree_faq_hooks.rb index ff0ac4f..97b8921 100644 --- a/lib/spree_faq_hooks.rb +++ b/lib/spree_faq_hooks.rb @@ -1,6 +1,8 @@ class SpreeFaqHooks < Spree::ThemeSupport::HookListener - insert_bottom :admin_tabs do - "<%= tab(:question_categories, :label => :question_categories_admin) %>" - end + Deface::Override.new(:virtual_path => "layouts/admin", + :name => "faq_admin_tab", + :insert_bottom => "[data-hook='admin_tabs'], #admin_tabs[data-hook]", + :text => "<%= tab(:question_categories, :label => :question_categories_admin) %>", + :disabled => false) end