Commit bc3bb546b0bf68fccfa954cde661ec1a6ca2e63c

Authored by David Silva
1 parent 26bdc8a5

Create transaction method and use it with diferent models.

Signed-off-by: David Carlos <ddavidcarlos1392@gmail.com>
Showing 1 changed file with 13 additions and 38 deletions   Show diff stats
lib/mpog_software_plugin.rb
... ... @@ -33,45 +33,16 @@ class MpogSoftwarePlugin &lt; Noosfero::Plugin
33 33 end
34 34  
35 35 def profile_editor_transaction_extras
36   - if context.profile.respond_to?(:software_info)
37   - if context.params.has_key?(:software_info)
38   - software_info_transaction
  36 + single_hash_transactions = {:user => "user", :software_info => "software_info",
  37 + :version => "license", :language => "language",
  38 + :operating_system => "operating_system",
  39 + :software_categories => "software_categories",
  40 + :instituton => "instituton", :library => "libraries"}
  41 +
  42 + single_hash_transactions.each do |model,transaction|
  43 + call_model_transaction(model,transaction)
39 44 end
40   -
41   - if context.params.has_key?(:library)
42   - libraries_transaction
43   - end
44   -
45   - if context.params.has_key?(:version)
46   - license_transaction
47   - end
48   -
49   - if context.params.has_key?(:language)
50   - language_transaction
51   - end
52   -
53   - if context.params.has_key?(:database)
54   - databases_transaction
55   - end
56   -
57   - if context.params.has_key?(:operating_system)
58   - operating_system_transaction
59   - end
60   - if context.params.has_key?(:institution) ||
61   - context.params.has_key?(:governmental_power) ||
62   - context.params.has_key?(:governmental_sphere)
63   -
64   - institution_transaction
65   - end
66   -
67   - if context.params.has_key?(:software_categories)
68   - software_categories_transaction
69   - end
70   - elsif context.profile.respond_to?(:user)
71   - if context.params.has_key?(:user)
72   - user_transaction
73   - end
74   - end
  45 +
75 46 end
76 47  
77 48 def profile_editor_controller_filters
... ... @@ -480,4 +451,8 @@ class MpogSoftwarePlugin &lt; Noosfero::Plugin
480 451 current_person = User.find(context.session[:user]).person
481 452 context.environment.admins.include?(current_person)
482 453 end
  454 +
  455 + def call_model_transaction(model,name)
  456 + send(name + '_transaction') if context.params.has_key?(model.to_sym)
  457 + end
483 458 end
... ...