#!/usr/bin/env ruby
require File.dirname(__FILE__) + '/../config/environment'
GetText.locale = 'pt_BR'
Environment.destroy_all
User.destroy_all
Profile.destroy_all
Role.destroy_all
RoleAssignment.destroy_all
Category.destroy_all
Product.destroy_all
Article.destroy_all
def new_category(parent, name, color = nil)
category = Environment.default.categories.build(:name => name, :display_color => color, :parent_id => (parent ? parent.id: nil))
category.save!
category
end
def new_region(parent, name, color = nil)
region = Environment.default.regions.build(:name => name, :display_color => color, :parent_id => (parent ? parent.id: nil))
region.save!
region
end
def new_validator(region, name, identifier, klass = Organization)
org = klass.new(:name => name, :identifier => identifier)
org.validation_info = ValidationInfo.new(:validation_methodology => 'some methodology we don\'t care about')
org.save!
region.validators << org
region.save!
org
end
environment_description = <<-EOF
Boas vindas ao Anheteguá:
A Comunidade virtual das Redes de Economia Solidária!
O Anheteguá é uma plataforma livre e colaborativa que visa contribuir para o fortalecimento das redes de economia solidária em todo o Brasil, facilitando os fluxos de produção, comercialização, troca e consumo solidários. Cadastre-se, divirta-se e navegue nessa outra economia!
O menu superior é o principal instrumento de navegação:
- Do lado esquerdo, estão os recortes. Temáticas reune os principais temas debatidos. Territórios limita sua navegação a um estado de sua escolha. Cadeias exibe apenas informação relacionada à cadeia produtiva de sua preferência. Produtos permite visualizar produtos por sua categoria.
- Do lado direito, estão as opções do usuário, bem como a nevegação por tipo de conteúdo. Busca permite que você procure conteúdo por palavras chave. Blogs te levará a ver blogs de outros usuário, etc.
EOF
env = Environment.create!(:name => 'Anheteguá', :is_default => true, :description => environment_description)
# on production (i.e. anhetegua demo site, use a real domain)
if ENV['RAILS_ENV'] == 'production'
domain = Domain.new(:name => 'ecosol.noosfero.com.br')
domain.owner = env
domain.save!
end
tematicas = new_category(nil, 'Temáticas', 1)
new_category(tematicas, 'Finanças Solidárias')
new_category(tematicas, 'Marco Legal')
new_category(tematicas, 'Software Livre')
territorios = new_region(nil, 'Territórios', 2)
ba = new_region(territorios, 'Bahia')
df = new_region(territorios, 'Distrito Federal')
rs = new_region(territorios, 'Rio Grande do Sul')
cadeias = new_category(nil, 'Cadeias', 3)
new_category(cadeias, 'Algodão')
new_category(cadeias, 'Tecnologia de Informação')
# validators
colivre = new_validator(ba, "Colivre", 'colivre', Enterprise)
forum_bahia = new_validator(ba, "Forum Baiano de Economia Solidaraia", 'ecosolbahia')
caritas = new_validator(df, 'Caritas', 'caritas')
fbes = new_validator(df, 'Forum Brasileiro de Economia Solidaria', 'fbes')
asl = new_validator(rs, 'Associacao Software Livre.Org', 'asl')
forum_rs = new_validator(rs, 'Forum Gaucho de Economia Solidaria', 'ecosolrs')
# Role for own things
owner_role = Profile::Roles.admin
# root user of the system, admin_role for him, the assignment of the role for him and the ownership of the system homepage
root = User.create!(:login => 'root', :email => 'root@noosfero.org', :password => 'root', :password_confirmation => 'root').person
admin_role = Environment::Roles.admin
RoleAssignment.create!(:accessor => root, :role => admin_role, :resource => Environment.default)
# Sample user and sample enterprise owned by him
ze = User.create!(:login => 'ze', :email => 'ze@localhost.localdomain', :password => 'test', :password_confirmation => 'test').person
empa = Enterprise.create!(:name => 'Cooperativa A', :identifier => 'coop_a')
empa.affiliate(ze, owner_role)
colivre.affiliate(ze, owner_role)
member_role = Profile::Roles.member
moderator_role = Profile::Roles.moderator
# product categories
produtos = ProductCategory.create!(:name => 'Produtos', :environment => Environment.default, :display_color => 4)
alimentacao = ProductCategory.create!(:name => 'Alimentação', :environment => Environment.default, :parent => produtos)
vegetais = ProductCategory.create!(:name => 'Vegetais', :environment => Environment.default, :parent => alimentacao)
feijao = ProductCategory.create!(:name => 'Feijão', :environment => Environment.default, :parent => vegetais)
arroz = ProductCategory.create!(:name => 'Arroz', :environment => Environment.default, :parent => vegetais)
batata = ProductCategory.create!(:name => 'Batata', :environment => Environment.default, :parent => vegetais)
carnes = ProductCategory.create!(:name => 'Carnes', :environment => Environment.default, :parent => alimentacao)
boi = ProductCategory.create!(:name => 'Boi', :environment => Environment.default, :parent => carnes)
frango = ProductCategory.create!(:name => 'Frango', :environment => Environment.default, :parent => carnes)
vestuario = ProductCategory.create!(:name => 'Vestuário', :environment => Environment.default, :parent => produtos)
camisetas = ProductCategory.create!(:name => 'Camisetas', :environment => Environment.default, :parent => vestuario)
calcas = ProductCategory.create!(:name => 'Calças', :environment => Environment.default, :parent => vestuario)
software_livre = ProductCategory.create!(:name => 'Software Livre', :environment => Environment.default, :parent => produtos)
desenv = ProductCategory.create!(:name => 'Desenvolvimento', :environment => Environment.default, :parent => software_livre)
capacitacao = ProductCategory.create!(:name => 'Capacitação', :environment => Environment.default, :parent => software_livre)
admin_de_sistemas = ProductCategory.create!(:name => 'Administração de sistemas', :environment => Environment.default, :parent => software_livre)
arte_digital = ProductCategory.create!(:name => 'Arte Digital', :environment => Environment.default, :parent => software_livre)
# actual products
empa.products.build(:name => 'Feijão Mulatinho da Bahia', :product_category => feijao).save!
empa.products.build(:name => 'Arroz plantado lá em casa', :product_category => arroz).save!
empa.products.build(:name => 'Carne da vaca mimosa', :product_category => boi).save!
colivre.products.build(:name => 'desenvolvimento de software livre', :product_category => desenv).save!
colivre.products.build(:name => 'capacitação em software livre', :product_category => capacitacao).save!
colivre.products.build(:name => 'arte digital', :product_category => arte_digital).save!
colivre.products.build(:name => 'instalação e manutenção de servidores', :product_category => admin_de_sistemas).save!
colivre_hp = TinyMceArticle.new(:name => 'Colivre - Cooperativa de Tecnologias Livres', :body => 'A Colivre, Cooperativa de Tecnologias Livres, é uma organização baiana que presta serviços de instalação de redes, segurança, capacitação, migração e desenvolvimento de novas soluções, trabalhando exclusivamente com Tecnologias Livres. Para tanto, contamos com uma equipe formada por desenvolvedores/as de software, webdesigners e gestoras/es com vasta experiência na área.
', :tag_list => 'software livre, colivre, cooperativa' )
colivre_hp.profile = colivre
colivre_hp.save!
colivre.home_page = colivre_hp
colivre.save!
empa_hp = TinyMceArticle.new(:name => 'Empreendimento A - um empreendimento genérico', :body => 'Esse é um empreendimento cadastrado como exemplo no sitema
', :tag_list => 'cooperativa, teste')
empa_hp.profile = empa
empa.home_page = empa_hp
empa.save!
# creating sample communities
comm1 = Community.create!(:name => 'Outra Economia é Possível')
comm1.affiliate(ze, owner_role)
comm2 = Community.create!(:name => 'Software Livre e Economia Solidária')
comm2.affiliate(ze, owner_role)