Commit a411aeca2ee8586bd44e0161a642a90b05d72544

Authored by Daniela Feitosa
Committed by Antonio Terceiro
1 parent bf95a1cf

Can approve creation of communities with images

Adding explanation about moderation

ActionItem1254
app/models/create_community.rb
... ... @@ -12,7 +12,9 @@ class CreateCommunity < Task
12 12 self[:data] ||= Hash.new
13 13 end
14 14  
15   - DATA_FIELDS = Community.fields + ['name', 'closed', 'image_builder', 'tag_list']
  15 + acts_as_having_image
  16 +
  17 + DATA_FIELDS = Community.fields + ['name', 'closed', 'tag_list']
16 18  
17 19 DATA_FIELDS.each do |field|
18 20 # getter
... ... @@ -40,6 +42,7 @@ class CreateCommunity < Task
40 42 end
41 43  
42 44 community.update_attributes(community_data)
  45 + community.image = image if image
43 46 community.environment = self.environment
44 47 community.save!
45 48 community.add_admin(self.requestor)
... ...
app/views/memberships/new_community.rhtml
... ... @@ -4,6 +4,12 @@
4 4  
5 5 <h1><%= __('Creating new community') %></h1>
6 6  
  7 +<% if environment.enabled?('admin_must_approve_new_communities') %>
  8 + <div class='explanation'>
  9 + <%= _("Your request for registering a community will be sent to %{environment} administrator and will be approved or rejected according to his methods and creteria.") % { :environment => environment.name }%>
  10 + </div>
  11 +<%end %>
  12 +
7 13 <%= error_messages_for :community %>
8 14  
9 15 <div>
... ...
app/views/tasks/_create_community.rhtml
... ... @@ -14,17 +14,30 @@
14 14 <%= hidden_field_tag(:decision, 'cancel') %>
15 15 <% else %>
16 16 <%= radio_button_tag(:decision, 'finish', true,
17   - :id => "decision-finish-#{task.id}") %>
  17 + :id => "decision-finish-#{task.id}",
  18 + :onclick => "hide_closing_statement_area(#{task.id})") %>
18 19 <label for="<%= "decision-finish-#{task.id}" %>"><b><%= _('Approve') %></b></label>
19 20  
20 21 &nbsp; &nbsp;
21 22  
22 23 <%= radio_button_tag(:decision, 'cancel', false,
23   - :id => "decision-cancel-#{task.id}") %>
  24 + :id => "decision-cancel-#{task.id}",
  25 + :onclick => "show_closing_statement_area(#{task.id})") %>
24 26 <label for="<%= "decision-cancel-#{task.id}" %>"><b><%= _('Reject') %></b></label>
25 27 <% end %>
26 28  
  29 + <script type='text/javascript'>
  30 + function show_closing_statement_area(id) {
  31 + $('task-closing-statement-' + id).show();
  32 + }
  33 + function hide_closing_statement_area(id) {
  34 + $('task-closing-statement-' + id).hide();
  35 + }
  36 + </script>
  37 +
  38 + <div style='display:none' id=<%= "task-closing-statement-#{task.id}" %> >
27 39 <%= labelled_form_field _('Please provide an explanation for the rejection'), f.text_area(:closing_statement, :style => 'height:200px; width:80%;') %>
  40 + </div>
28 41  
29 42 </div>
30 43  
... ...
test/unit/create_community_test.rb
... ... @@ -10,7 +10,7 @@ class CreateCommunityTest &lt; Test::Unit::TestCase
10 10 should 'provide needed data' do
11 11 task = CreateCommunity.new
12 12  
13   - Community.fields + %w[ name closed image_builder tag_list ].each do |field|
  13 + Community.fields + %w[ name closed tag_list ].each do |field|
14 14 assert task.respond_to?(field)
15 15 assert task.respond_to?("#{field}=")
16 16 end
... ... @@ -65,4 +65,22 @@ class CreateCommunityTest &lt; Test::Unit::TestCase
65 65 request.stubs(:status).returns(Task::Status::CANCELLED)
66 66 assert request.rejected?
67 67 end
  68 +
  69 + should 'create a community with image when finishing the task' do
  70 +
  71 + task = CreateCommunity.create!({
  72 + :name => 'My new community',
  73 + :requestor => person,
  74 + :target => Environment.default,
  75 + :image_builder => {:uploaded_data => fixture_file_upload('/files/rails.png', 'image/png')}
  76 + })
  77 +
  78 + assert_equal 'rails.png', task.image.filename
  79 + assert_difference Community, :count do
  80 + task.finish
  81 + end
  82 +
  83 + assert_equal 'rails.png', Community['my-new-community'].image.filename
  84 + end
  85 +
68 86 end
... ...