Commit aa448d058af83061061d0273b6be375ba0b99e59
Committed by
Luciano Prestes
1 parent
3f49f33e
Exists in
master
and in
5 other branches
Fix software create moderation
- Pass license_info field to create software_info task - Disable software moderation to admin user - Remove unused code from community (create_after_moderation). Signed-off-by: David Carlos <ddavidcarlos1392@gmail.com> Signed-off-by: Parley Martins <parley@outlook.com>
Showing
5 changed files
with
36 additions
and
53 deletions
Show diff stats
controllers/mpog_software_plugin_myprofile_controller.rb
@@ -45,15 +45,15 @@ class MpogSoftwarePluginMyprofileController < MyProfileController | @@ -45,15 +45,15 @@ class MpogSoftwarePluginMyprofileController < MyProfileController | ||
45 | @community.environment = environment | 45 | @community.environment = environment |
46 | @software_info = SoftwareInfo.new(params[:software_info]) | 46 | @software_info = SoftwareInfo.new(params[:software_info]) |
47 | @license_info = if params[:license_info].nil? | 47 | @license_info = if params[:license_info].nil? |
48 | - LicenseInfo::new | ||
49 | - else | ||
50 | - LicenseInfo.find(:first, :conditions =>["version = ?","#{params[:license_info][:version]}"]) | ||
51 | - end | ||
52 | - valid_community = request.post? && @community.valid? | ||
53 | - valid_software_info = request.post? && @software_info.valid? | ||
54 | - valid_license = (request.post? && @license_info.valid?) | ||
55 | - if valid_software_info && valid_license && valid_community | ||
56 | - @software_info = SoftwareInfo.create_after_moderation(user,params[:software_info].merge({:environment => environment,:name => params[:community][:name]})) | 48 | + LicenseInfo::new |
49 | + else | ||
50 | + LicenseInfo.find(:first, :conditions =>["version = ?","#{params[:license_info][:version]}"]) | ||
51 | + end | ||
52 | + | ||
53 | + valid_models = request.post? && (@community.valid? && @software_info.valid? && @license_info.valid?) | ||
54 | + | ||
55 | + if valid_models | ||
56 | + @software_info = SoftwareInfo.create_after_moderation(user,params[:software_info].merge({:environment => environment,:name => params[:community][:name], :license_info => @license_info})) | ||
57 | unless params[:q].nil? | 57 | unless params[:q].nil? |
58 | admins = params[:q].split(/,/).map{|n| environment.people.find n.to_i} | 58 | admins = params[:q].split(/,/).map{|n| environment.people.find n.to_i} |
59 | 59 | ||
@@ -62,14 +62,18 @@ class MpogSoftwarePluginMyprofileController < MyProfileController | @@ -62,14 +62,18 @@ class MpogSoftwarePluginMyprofileController < MyProfileController | ||
62 | @community.add_admin(admin) | 62 | @community.add_admin(admin) |
63 | end | 63 | end |
64 | end | 64 | end |
65 | + if !environment.admins.include?(current_user.person) | ||
65 | session[:notice] = _('Your new software request will be evaluated by an administrator. You will be notified.') | 66 | session[:notice] = _('Your new software request will be evaluated by an administrator. You will be notified.') |
66 | redirect_to user.admin_url | 67 | redirect_to user.admin_url |
68 | + else | ||
69 | + redirect_to :controller => 'profile_editor', :action => 'edit', :profile => @community.identifier | ||
70 | + end | ||
67 | else | 71 | else |
68 | 72 | ||
69 | - @errors |= @community.errors.full_messages | ||
70 | - @errors |= @software_info.errors.full_messages | ||
71 | - @errors |= @license_info.errors.full_messages | ||
72 | - end | 73 | + @errors |= @community.errors.full_messages |
74 | + @errors |= @software_info.errors.full_messages | ||
75 | + @errors |= @license_info.errors.full_messages | ||
76 | + end | ||
73 | end | 77 | end |
74 | 78 | ||
75 | def search_offerers | 79 | def search_offerers |
@@ -149,4 +153,5 @@ class MpogSoftwarePluginMyprofileController < MyProfileController | @@ -149,4 +153,5 @@ class MpogSoftwarePluginMyprofileController < MyProfileController | ||
149 | 153 | ||
150 | def community_must_be_approved | 154 | def community_must_be_approved |
151 | end | 155 | end |
156 | + | ||
152 | end | 157 | end |
lib/create_software.rb
@@ -3,12 +3,12 @@ class CreateSoftware < Task | @@ -3,12 +3,12 @@ class CreateSoftware < Task | ||
3 | validates_presence_of :requestor_id, :target_id | 3 | validates_presence_of :requestor_id, :target_id |
4 | validates_presence_of :name | 4 | validates_presence_of :name |
5 | 5 | ||
6 | - attr_accessible :name, :finality, :repository_link, :requestor, :environment, :reject_explanation | 6 | + attr_accessible :name, :finality, :repository_link, :requestor, :environment, :reject_explanation, :license_info |
7 | 7 | ||
8 | alias :environment :target | 8 | alias :environment :target |
9 | alias :environment= :target= | 9 | alias :environment= :target= |
10 | 10 | ||
11 | - DATA_FIELDS = ['name', 'finality', 'license_info_id', 'repository_link'] | 11 | + DATA_FIELDS = ['name', 'finality', 'license_info', 'repository_link'] |
12 | DATA_FIELDS.each do |field| | 12 | DATA_FIELDS.each do |field| |
13 | settings_items field.to_sym | 13 | settings_items field.to_sym |
14 | end | 14 | end |
@@ -21,7 +21,7 @@ class CreateSoftware < Task | @@ -21,7 +21,7 @@ class CreateSoftware < Task | ||
21 | 21 | ||
22 | software = SoftwareInfo.create!(:finality => self.finality, | 22 | software = SoftwareInfo.create!(:finality => self.finality, |
23 | :repository_link => self.repository_link, :community_id => community.id, | 23 | :repository_link => self.repository_link, :community_id => community.id, |
24 | - :license_info_id => self.license_info_id) | 24 | + :license_info => self.license_info) |
25 | end | 25 | end |
26 | 26 | ||
27 | def title | 27 | def title |
lib/ext/community.rb
@@ -7,25 +7,13 @@ class Community | @@ -7,25 +7,13 @@ class Community | ||
7 | has_one :software_info, :dependent=>:destroy | 7 | has_one :software_info, :dependent=>:destroy |
8 | has_one :institution, :dependent=>:destroy | 8 | has_one :institution, :dependent=>:destroy |
9 | 9 | ||
10 | - def self.create_after_moderation(requestor, attributes = {}, software_info = nil, license_info = nil, software_categories = nil) | 10 | + def self.create_after_moderation(requestor, attributes = {}) |
11 | community = Community.new(attributes) | 11 | community = Community.new(attributes) |
12 | 12 | ||
13 | - if not software_info.nil? | ||
14 | - if not license_info.nil? | ||
15 | - software_info.license_info = license_info | ||
16 | - end | ||
17 | - | ||
18 | - if not software_categories.nil? | ||
19 | - software_info.software_categories = software_categories | ||
20 | - end | ||
21 | - software_info.save | ||
22 | - end | ||
23 | - | ||
24 | if community.environment.enabled?('admin_must_approve_new_communities') and !community.environment.admins.include?(requestor) | 13 | if community.environment.enabled?('admin_must_approve_new_communities') and !community.environment.admins.include?(requestor) |
25 | - cc = CreateCommunity.create(attributes.merge(:requestor => requestor, :software_info=>software_info)) | 14 | + cc = CreateCommunity.create(attributes.merge(:requestor => requestor)) |
26 | else | 15 | else |
27 | community = Community.create(attributes) | 16 | community = Community.create(attributes) |
28 | - community.software_info = software_info | ||
29 | community.add_admin(requestor) | 17 | community.add_admin(requestor) |
30 | end | 18 | end |
31 | community | 19 | community |
lib/ext/create_community.rb
@@ -1,20 +0,0 @@ | @@ -1,20 +0,0 @@ | ||
1 | -require_dependency 'create_community' | ||
2 | - | ||
3 | -class CreateCommunity | ||
4 | - settings_items :software_info | ||
5 | - attr_accessible :software_info, :environment, :name, :closed, :template_id, :requestor, :reject_explanation, :target, :image_builder | ||
6 | - | ||
7 | - def perform | ||
8 | - community = Community.new | ||
9 | - community_data = self.data.reject do |key, value| | ||
10 | - ! DATA_FIELDS.include?(key.to_s) | ||
11 | - end | ||
12 | - | ||
13 | - community.update_attributes(community_data) | ||
14 | - community.image = image if image | ||
15 | - community.environment = self.environment | ||
16 | - community.software_info = self.software_info | ||
17 | - community.save! | ||
18 | - community.add_admin(self.requestor) | ||
19 | - end | ||
20 | -end | ||
21 | \ No newline at end of file | 0 | \ No newline at end of file |
lib/software_info.rb
1 | class SoftwareInfo < ActiveRecord::Base | 1 | class SoftwareInfo < ActiveRecord::Base |
2 | attr_accessible :e_mag, :icp_brasil, :intern, :e_ping, :e_arq, :operating_platform | 2 | attr_accessible :e_mag, :icp_brasil, :intern, :e_ping, :e_arq, :operating_platform |
3 | - attr_accessible :demonstration_url, :acronym, :objectives, :features, :license_info_id | 3 | + attr_accessible :demonstration_url, :acronym, :objectives, :features, :license_info |
4 | attr_accessible :community_id, :finality, :repository_link, :public_software, :first_edit | 4 | attr_accessible :community_id, :finality, :repository_link, :public_software, :first_edit |
5 | 5 | ||
6 | has_many :libraries, :dependent => :destroy | 6 | has_many :libraries, :dependent => :destroy |
@@ -60,8 +60,18 @@ class SoftwareInfo < ActiveRecord::Base | @@ -60,8 +60,18 @@ class SoftwareInfo < ActiveRecord::Base | ||
60 | def self.create_after_moderation(requestor, attributes = {}) | 60 | def self.create_after_moderation(requestor, attributes = {}) |
61 | environment = attributes.delete(:environment) | 61 | environment = attributes.delete(:environment) |
62 | name = attributes.delete(:name) | 62 | name = attributes.delete(:name) |
63 | - software = SoftwareInfo.new(attributes) | ||
64 | - CreateSoftware.create!(attributes.merge(:requestor => requestor, :environment => environment, :name => name)) | 63 | + license_info = attributes.delete(:license_info) |
64 | + software_info = SoftwareInfo.new(attributes) | ||
65 | + if !environment.admins.include? requestor | ||
66 | + CreateSoftware.create!(attributes.merge(:requestor => requestor, :environment => environment, :name => name, :license_info => license_info)) | ||
67 | + else | ||
68 | + community = Community.new(:name => name) | ||
69 | + community.environment = environment | ||
70 | + software_info.save | ||
71 | + community.software_info = software_info | ||
72 | + community.save! | ||
73 | + community.add_admin(requestor) | ||
74 | + end | ||
65 | end | 75 | end |
66 | 76 | ||
67 | 77 |