From 407f3753be9a4e4dbc966d042f7a1fc713354a79 Mon Sep 17 00:00:00 2001 From: Tallys Martins Date: Mon, 14 Dec 2015 18:59:15 -0200 Subject: [PATCH] Added macro for profile variables --- src/noosfero-spb/software_communities/lib/macros/allow_variables.rb | 15 +++++++++++++++ src/noosfero-spb/software_communities/lib/software_communities_plugin.rb | 2 ++ src/noosfero-spb/software_communities/lib/tasks/templates.rake | 19 +++++++++++++++++++ src/noosfero-spb/software_communities/public/allow_variables.js | 3 +++ 4 files changed, 39 insertions(+), 0 deletions(-) create mode 100644 src/noosfero-spb/software_communities/lib/macros/allow_variables.rb create mode 100644 src/noosfero-spb/software_communities/public/allow_variables.js diff --git a/src/noosfero-spb/software_communities/lib/macros/allow_variables.rb b/src/noosfero-spb/software_communities/lib/macros/allow_variables.rb new file mode 100644 index 0000000..b77f478 --- /dev/null +++ b/src/noosfero-spb/software_communities/lib/macros/allow_variables.rb @@ -0,0 +1,15 @@ +class SoftwareCommunitiesPlugin::AllowVariables < Noosfero::Plugin::Macro + def self.configuration + { :params => [], + :skip_dialog => true, + :title => _("Insert Profile"), + :generator => 'insertProfile();', + :js_files => 'allow_variables.js', + :icon_path => '/designs/icons/tango/Tango/16x16/actions/document-properties.png' + } + end + + def parse(params, inner_html, source) + source.profile.identifier + end +end diff --git a/src/noosfero-spb/software_communities/lib/software_communities_plugin.rb b/src/noosfero-spb/software_communities/lib/software_communities_plugin.rb index a20d035..b0e3d24 100644 --- a/src/noosfero-spb/software_communities/lib/software_communities_plugin.rb +++ b/src/noosfero-spb/software_communities/lib/software_communities_plugin.rb @@ -190,3 +190,5 @@ class SoftwareCommunitiesPlugin < Noosfero::Plugin :start => true } end end + +require_dependency 'macros/allow_variables' diff --git a/src/noosfero-spb/software_communities/lib/tasks/templates.rake b/src/noosfero-spb/software_communities/lib/tasks/templates.rake index 46ad264..1e07f3d 100644 --- a/src/noosfero-spb/software_communities/lib/tasks/templates.rake +++ b/src/noosfero-spb/software_communities/lib/tasks/templates.rake @@ -39,4 +39,23 @@ namespace :templates do end end + desc "Copy mail list article from template to all Communities" + task :copy_mail_article => :environment do + article = Profile['software'].articles.find_by_slug('registro-na-lista') + puts "Copying article #{article.title}: " + if article.present? + SoftwareInfo.find_each do |software| + community = software.community + a_copy = article.copy_without_save + a_copy.profile = software.community + a_copy.save if a_copy.profile.present? + box = community.boxes.detect {|x| x.blocks.find_by_title("Participe") } if community.present? + block = box.blocks.find_by_title("Participe") if box.present? + link = block.links.detect { |l| l["name"] == "Lista de E-mails" } if block.present? + link["address"] = "/{profile}/#{a_copy.path}" if link.present? + block.save if block.present? + print "." + end + end + end end diff --git a/src/noosfero-spb/software_communities/public/allow_variables.js b/src/noosfero-spb/software_communities/public/allow_variables.js new file mode 100644 index 0000000..af975bf --- /dev/null +++ b/src/noosfero-spb/software_communities/public/allow_variables.js @@ -0,0 +1,3 @@ +function insertProfile() { + tinyMCE.activeEditor.selection.setContent("{profile}"); +} -- libgit2 0.21.2