mpog_software_plugin_myprofile_controller.rb
3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
class MpogSoftwarePluginMyprofileController < MyProfileController
append_view_path File.join(File.dirname(__FILE__) + '/../views')
def index
end
def archive_software
puts "="*80
nil
end
def new_software
@errors = []
@community = Community.new(params[:community])
@community.environment = environment
@software_info = SoftwareInfo.new(params[:software_info])
@list_libraries = LibraryHelper.list_libraries(params[:library])
@list_languages = SoftwareLanguageHelper.list_language(params[:language])
@list_databases = DatabaseHelper.list_database(params[:database])
@controlled_vocabulary = ControlledVocabulary::new params[:controlled_vocabulary]
@list_operating_systems = OperatingSystemHelper.list_operating_system(params[:operating_system])
@license_info = if params[:license_info].nil?
LicenseInfo::new
else
LicenseInfo.find(:first, :conditions=>"id = #{params[:license_info][:version]}")
end
if not @list_libraries.nil?
@list_libraries.each do |library|
@software_info.libraries << library
end
end
if not @list_languages.nil?
@list_languages.each do |language|
@software_info.software_languages << language
end
end
if not @list_databases.nil?
@list_databases.each do |database|
@software_info.software_databases << database
end
end
if not @list_operating_systems.nil?
@list_operating_systems.each do |operating_system|
@software_info.operating_systems << operating_system
end
end
valid_community = request.post? && @community.valid?
valid_software_info = request.post? && @software_info.valid?
valid_license = (request.post? && @license_info.valid?)
valid_libraries = @list_libraries.empty? || LibraryHelper.valid_list_libraries?(@list_libraries)
valid_database = DatabaseHelper.valid_list_database?(@list_databases)
valid_language = SoftwareLanguageHelper.valid_list_language?(@list_languages)
valid_operating_system = OperatingSystemHelper.valid_list_operating_system?(@list_operating_systems)
if valid_software_info && valid_community && valid_libraries && valid_license && valid_language && valid_database && valid_operating_system
@community = Community.create_after_moderation(user, {:environment => environment}.merge(params[:community]), @software_info, @license_info, @controlled_vocabulary)
redirect_to :controller => 'memberships', :action => 'index'
else
@list_libraries.each do |lib|
@errors |= lib.errors.full_messages
end
@list_languages.each do |lng|
@errors |= lng.errors.full_messages
end
@list_databases.each do |db|
@errors |= db.errors.full_messages
end
@list_operating_systems.each do |os|
@errors |= os.errors.full_messages
end
@errors |= @community.errors.full_messages
@errors |= @software_info.errors.full_messages
@errors |= @license_info.errors.full_messages
end
end
end