Commit 519edc986fbd027d6ed8d001a71b7a21407d6f4c
Exists in
master
and in
29 other branches
Merge branch 'ai3051' of https://gitlab.com/brauliobo/noosfero into brauliobo/noosfero-ai3051
Showing
6 changed files
with
73 additions
and
35 deletions
Show diff stats
app/models/enterprise.rb
... | ... | @@ -96,14 +96,22 @@ class Enterprise < Organization |
96 | 96 | save |
97 | 97 | end |
98 | 98 | |
99 | + def activation_task | |
100 | + self.tasks.where(:type => 'EnterpriseActivation').first | |
101 | + end | |
102 | + | |
99 | 103 | def enable(owner) |
100 | 104 | return if enabled |
101 | - affiliate(owner, Profile::Roles.all_roles(environment.id)) | |
102 | - update_attribute(:enabled,true) | |
103 | - if environment.replace_enterprise_template_when_enable | |
104 | - apply_template(template) | |
105 | - end | |
106 | - save_without_validation! | |
105 | + # must be set first for the following to work | |
106 | + self.enabled = true | |
107 | + | |
108 | + self.affiliate owner, Profile::Roles.all_roles(self.environment.id) if owner | |
109 | + | |
110 | + self.apply_template template if self.environment.replace_enterprise_template_when_enable | |
111 | + | |
112 | + self.activation_task.update_attribute :status, Task::Status::FINISHED rescue nil | |
113 | + | |
114 | + self.save_without_validation! | |
107 | 115 | end |
108 | 116 | |
109 | 117 | def question | ... | ... |
app/models/enterprise_activation.rb
1 | 1 | class EnterpriseActivation < Task |
2 | 2 | |
3 | - class RequestorRequired < Exception; end | |
3 | + alias :person :requestor | |
4 | + alias :person= :requestor= | |
4 | 5 | |
5 | - settings_items :enterprise_id, :integer | |
6 | + alias :enterprise :target | |
7 | + alias :enterprise= :target= | |
6 | 8 | |
7 | - validates_presence_of :enterprise_id | |
8 | - | |
9 | - def enterprise | |
10 | - Enterprise.find(enterprise_id) | |
11 | - end | |
12 | - | |
13 | - def enterprise=(ent) | |
14 | - self.enterprise_id = ent.id | |
15 | - end | |
9 | + validates_presence_of :enterprise | |
16 | 10 | |
17 | 11 | def perform |
18 | - raise EnterpriseActivation::RequestorRequired if requestor.nil? | |
19 | - self.enterprise.enable(requestor) | |
12 | + self.enterprise.enable self.requestor | |
20 | 13 | end |
21 | 14 | |
22 | 15 | def title |
... | ... | @@ -28,15 +21,27 @@ class EnterpriseActivation < Task |
28 | 21 | end |
29 | 22 | |
30 | 23 | def information |
31 | - {:message => _('%{requestor} wants to activate enterprise %{linked_subject}.')} | |
24 | + if self.requestor | |
25 | + {:message => _('%{requestor} wants to activate enterprise %{linked_subject}.')} | |
26 | + else | |
27 | + {:message => _('Pending activation of enterprise %{linked_subject}.')} | |
28 | + end | |
32 | 29 | end |
33 | 30 | |
34 | 31 | def icon |
35 | - {:type => :profile_image, :profile => requestor, :url => requestor.url} | |
32 | + if self.requestor | |
33 | + {:type => :profile_image, :profile => self.requestor, :url => self.requestor.url} | |
34 | + else | |
35 | + {:type => :profile_image, :profile => self.enterprise, :url => self.enterprise.url} | |
36 | + end | |
36 | 37 | end |
37 | 38 | |
38 | 39 | def target_notification_description |
39 | - _('%{requestor} wants to activate enterprise %{enterprise}.') % {:requestor => requestor.name, :enterprise => enterprise.name} | |
40 | + if self.requestor | |
41 | + _('%{requestor} wants to activate enterprise %{enterprise}.') % {:requestor => self.requestor.name, :enterprise => self.enterprise.name} | |
42 | + else | |
43 | + _('Pending activation of enterprise %{enterprise}.') % {:enterprise => self.enterprise.name} | |
44 | + end | |
40 | 45 | end |
41 | 46 | |
42 | 47 | end | ... | ... |
db/migrate/20140318225328_set_target_for_enterprise_activation.rb
0 → 100644
... | ... | @@ -0,0 +1,13 @@ |
1 | +class SetTargetForEnterpriseActivation < ActiveRecord::Migration | |
2 | + def self.up | |
3 | + EnterpriseActivation.find_each do |enterprise_activation| | |
4 | + enterprise_activation.target = enterprise_activation.enterprise | |
5 | + enterprise_activation.data.delete :enterprise_id | |
6 | + enterprise_activation.save | |
7 | + end | |
8 | + end | |
9 | + | |
10 | + def self.down | |
11 | + say "this migration can't be reverted" | |
12 | + end | |
13 | +end | ... | ... |
db/migrate/20140318233831_finish_enterprise_activation_for_enabled_enterprises.rb
0 → 100644
... | ... | @@ -0,0 +1,13 @@ |
1 | +class FinishEnterpriseActivationForEnabledEnterprises < ActiveRecord::Migration | |
2 | + def self.up | |
3 | + EnterpriseActivation.find_each do |enterprise_activation| | |
4 | + enterprise = enterprise_activation.enterprise | |
5 | + next unless enterprise.enabled | |
6 | + enterprise_activation.update_attribute :status, Task::Status::FINISHED | |
7 | + end | |
8 | + end | |
9 | + | |
10 | + def self.down | |
11 | + say "this migration can't be reverted" | |
12 | + end | |
13 | +end | ... | ... |
po/pt/noosfero.po
... | ... | @@ -2815,6 +2815,14 @@ msgstr "%{requestor} quer ativar o empreendimento %{linked_subject}." |
2815 | 2815 | msgid "%{requestor} wants to activate enterprise %{enterprise}." |
2816 | 2816 | msgstr "%{requestor} quer ativar o empreendimento %{enterprise}." |
2817 | 2817 | |
2818 | +#: app/models/enterprise_activation.rb:31 | |
2819 | +msgid "Pending activation of enterprise %{linked_subject}." | |
2820 | +msgstr "Ativação pendente para o empreendimento %{linked_subject}." | |
2821 | + | |
2822 | +#: app/models/enterprise_activation.rb:39 | |
2823 | +msgid "Pending activation of enterprise %{enterprise}." | |
2824 | +msgstr "Ativação pendente para o empreendimento %{enterprise}." | |
2825 | + | |
2818 | 2826 | #: app/models/contact.rb:- app/views/friends/index.rhtml:33 |
2819 | 2827 | #: app/views/friends/index.rhtml:36 |
2820 | 2828 | msgid "contact" | ... | ... |
test/unit/enterprise_activation_test.rb
... | ... | @@ -9,24 +9,24 @@ class EnterpriseActivationTest < ActiveSupport::TestCase |
9 | 9 | end |
10 | 10 | |
11 | 11 | should 'keep enterprise_id' do |
12 | - assert_nil EnterpriseActivation.new.enterprise_id | |
12 | + assert_nil EnterpriseActivation.new.target_id | |
13 | 13 | end |
14 | 14 | |
15 | 15 | should 'have an enteprise through enterprise_id' do |
16 | 16 | ent = Enterprise.create!(:name => 'my enterprise', :identifier => 'myent') |
17 | 17 | |
18 | - assert_equal ent, EnterpriseActivation.new(:enterprise_id => ent.id).enterprise | |
18 | + assert_equal ent, EnterpriseActivation.new(:target => ent).enterprise | |
19 | 19 | end |
20 | 20 | |
21 | 21 | should 'require an enterprise' do |
22 | 22 | t = EnterpriseActivation.new |
23 | 23 | t.valid? |
24 | - assert t.errors.invalid?(:enterprise_id), "enterprise must be required" | |
24 | + assert t.errors.invalid?(:enterprise), "enterprise must be required" | |
25 | 25 | |
26 | 26 | ent = Enterprise.create!(:name => 'my enterprise', :identifier => 'myent') |
27 | 27 | t.enterprise = ent |
28 | 28 | t.valid? |
29 | - assert !t.errors.invalid?(:enterprise_id), "must validate after enterprise is set" | |
29 | + assert !t.errors.invalid?(:target_id), "must validate after enterprise is set" | |
30 | 30 | end |
31 | 31 | |
32 | 32 | should 'activate enterprise when finished' do |
... | ... | @@ -40,15 +40,6 @@ class EnterpriseActivationTest < ActiveSupport::TestCase |
40 | 40 | assert ent.enabled, "finishing task should left enterprise enabled" |
41 | 41 | end |
42 | 42 | |
43 | - should 'require requestor to finish' do | |
44 | - ent = Enterprise.create!(:name => 'my enterprise', :identifier => 'myent', :enabled => false) | |
45 | - t = EnterpriseActivation.create!(:enterprise => ent) | |
46 | - | |
47 | - assert_raise EnterpriseActivation::RequestorRequired do | |
48 | - t.finish | |
49 | - end | |
50 | - end | |
51 | - | |
52 | 43 | should 'put requestor as enterprise owner when finishing' do |
53 | 44 | ent = Enterprise.create!(:name => 'my enterprise', :identifier => 'myent', :enabled => false) |
54 | 45 | t = EnterpriseActivation.create!(:enterprise => ent) | ... | ... |