Commit aa448d058af83061061d0273b6be375ba0b99e59
Committed by
Luciano Prestes
1 parent
3f49f33e
Exists in
master
and in
79 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 | 45 | @community.environment = environment |
46 | 46 | @software_info = SoftwareInfo.new(params[:software_info]) |
47 | 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 | 57 | unless params[:q].nil? |
58 | 58 | admins = params[:q].split(/,/).map{|n| environment.people.find n.to_i} |
59 | 59 | |
... | ... | @@ -62,14 +62,18 @@ class MpogSoftwarePluginMyprofileController < MyProfileController |
62 | 62 | @community.add_admin(admin) |
63 | 63 | end |
64 | 64 | end |
65 | + if !environment.admins.include?(current_user.person) | |
65 | 66 | session[:notice] = _('Your new software request will be evaluated by an administrator. You will be notified.') |
66 | 67 | redirect_to user.admin_url |
68 | + else | |
69 | + redirect_to :controller => 'profile_editor', :action => 'edit', :profile => @community.identifier | |
70 | + end | |
67 | 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 | 77 | end |
74 | 78 | |
75 | 79 | def search_offerers |
... | ... | @@ -149,4 +153,5 @@ class MpogSoftwarePluginMyprofileController < MyProfileController |
149 | 153 | |
150 | 154 | def community_must_be_approved |
151 | 155 | end |
156 | + | |
152 | 157 | end | ... | ... |
lib/create_software.rb
... | ... | @@ -3,12 +3,12 @@ class CreateSoftware < Task |
3 | 3 | validates_presence_of :requestor_id, :target_id |
4 | 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 | 8 | alias :environment :target |
9 | 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 | 12 | DATA_FIELDS.each do |field| |
13 | 13 | settings_items field.to_sym |
14 | 14 | end |
... | ... | @@ -21,7 +21,7 @@ class CreateSoftware < Task |
21 | 21 | |
22 | 22 | software = SoftwareInfo.create!(:finality => self.finality, |
23 | 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 | 25 | end |
26 | 26 | |
27 | 27 | def title | ... | ... |
lib/ext/community.rb
... | ... | @@ -7,25 +7,13 @@ class Community |
7 | 7 | has_one :software_info, :dependent=>:destroy |
8 | 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 | 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 | 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 | 15 | else |
27 | 16 | community = Community.create(attributes) |
28 | - community.software_info = software_info | |
29 | 17 | community.add_admin(requestor) |
30 | 18 | end |
31 | 19 | community | ... | ... |
lib/ext/create_community.rb
... | ... | @@ -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 | 0 | \ No newline at end of file |
lib/software_info.rb
1 | 1 | class SoftwareInfo < ActiveRecord::Base |
2 | 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 | 4 | attr_accessible :community_id, :finality, :repository_link, :public_software, :first_edit |
5 | 5 | |
6 | 6 | has_many :libraries, :dependent => :destroy |
... | ... | @@ -60,8 +60,18 @@ class SoftwareInfo < ActiveRecord::Base |
60 | 60 | def self.create_after_moderation(requestor, attributes = {}) |
61 | 61 | environment = attributes.delete(:environment) |
62 | 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 | 75 | end |
66 | 76 | |
67 | 77 | ... | ... |