Commit 2de9cb34b6729055c3c782d2157b4bbf665c5bad

Authored by Tallys Martins
1 parent f099ccdc

Improvements on task that creates discussion list

- Now the old articles are deleted and recreated following the template article

igned-off-by: Gustavo Coelho <gust.rod.coelho@gmail.com>
src/noosfero-spb/software_communities/lib/tasks/templates.rake
... ... @@ -41,21 +41,25 @@ namespace :templates do
41 41  
42 42 desc "Copy mail list article from template to all Communities"
43 43 task :copy_mail_article => :environment do
  44 + env = Environment.find_by_name("SPB") || Environment.default
44 45 article = Profile['software'].articles.find_by_slug('como-participar-da-lista-de-discussao')
45   - puts "Copying article #{article.title}: "
  46 + Article.connection.execute("DELETE FROM articles WHERE slug='como-participar-da-lista-de-discussao' AND id NOT IN (#{article.id})")
  47 + puts "Copying article #{article.title}: " if article.present?
46 48 if article.present?
47   - SoftwareInfo.find_each do |software|
48   - community = software.community
  49 + env.communities.find_each do |community|
  50 + next unless community.software?
49 51 a_copy = community.articles.find_by_slug('como-participar-da-lista-de-discussao') || article.copy_without_save
50   - a_copy.profile = software.community
51   - a_copy.save if a_copy.profile.present?
  52 + a_copy.profile = community
  53 + a_copy.save
52 54 box = community.boxes.detect {|x| x.blocks.find_by_title("Participe") } if community.present?
53 55 block = box.blocks.find_by_title("Participe") if box.present?
54   - link = block.links.detect { |l| l["name"] == "Lista de E-mails" } if block.present?
  56 + link = block.links.detect { |l| l["name"] == "Listas de discussão" } if block.present?
55 57 link["address"] = "/{profile}/#{a_copy.path}" if link.present?
56 58 block.save if block.present?
57 59 print "."
58 60 end
  61 + else
  62 + puts "Article not found"
59 63 end
60 64 end
61 65 end
... ...