From: Lukasz Rekucki <lreqc@localhost.(none)>
Date: Thu, 20 Aug 2009 21:20:05 +0000 (+0200)
Subject: Poprawki związane z przejściem na redmine 0.9.x; refs #25
X-Git-Url: https://git.mdrn.pl/redakcja.git/commitdiff_plain/7a3192417060241aa0956762a5e101b5b893d22b?hp=33d3159145359df7638b3ac0268d4a400856a932

Poprawki związane z przejściem na redmine 0.9.x; refs #25
---

diff --git a/redmine/redmine_publications/init.rb b/redmine/redmine_publications/init.rb
index f2b5b59c..b1739c33 100644
--- a/redmine/redmine_publications/init.rb
+++ b/redmine/redmine_publications/init.rb
@@ -2,10 +2,11 @@ require 'redmine'
 
 # Patches to the Redmine core.
 require 'dispatcher'
- 
+
 Dispatcher.to_prepare :redmine_publications do
   require_dependency 'issue'
-  # Guards against including the module multiple time (like in tests)
+  
+  #Guards against including the module multiple time (like in tests)
   # and registering multiple callbacks
   unless Issue.included_modules.include? RedminePublications::IssuePatch
     Issue.send(:include, RedminePublications::IssuePatch)
@@ -27,7 +28,7 @@ Redmine::Plugin.register :redmine_publications do
 
   menu :application_menu, :publications, { :controller => 'publications', :action => 'index' }, :caption => 'Publikacje'
 
-  requires_redmine :version_or_higher => '0.8.0'	 
+#  requires_redmine :version_or_higher => '0.8.0'	 
 
 end
 
diff --git a/redmine/redmine_publications/lib/issue_publication_hook.rb b/redmine/redmine_publications/lib/issue_publication_hook.rb
index 9c972339..77fa215e 100644
--- a/redmine/redmine_publications/lib/issue_publication_hook.rb
+++ b/redmine/redmine_publications/lib/issue_publication_hook.rb
@@ -3,7 +3,7 @@ class IssuesPublicationHook < Redmine::Hook::ViewListener
 
   def view_issues_show_details_bottom(context)
 	# TODO: złapać wyjątek konwersji
-	if context[:issue].tracker_id == Setting.plugin_redmine_publications['tracker'].to_i
+	if context[:issue].tracker_id == Setting.plugin_redmine_publications[:tracker].to_i
           result = "<tr><td><b>Publication(s):</b></td><td>"
   	  names = context[:issue].publication_names {|name| "<span>" + name + "</span>"} 
 	  result << names.join(', ')
@@ -12,11 +12,25 @@ class IssuesPublicationHook < Redmine::Hook::ViewListener
   end
 
   def controller_issues_edit_before_save(context)
-	if context[:issue].tracker_id == Setting.plugin_redmine_publications['tracker'].to_i
- 	  pub_field = context[:params][:publications]
-	  context[:issue].publication_names = pub_field.split(',').map { |n| n.strip }
+	if context[:issue].tracker.id == Setting.plugin_redmine_publications[:tracker].to_i
+	  old_value = context[:issue].publication_names
+	  new_value = context[:params][:publications].split(',').map { |n| n.strip }
+	  context[:journal].details << JournalDetail.new(
+		:property => 'attr', :prop_key => "publications", 
+		:old_value => old_value.join(', '), 
+		:value => new_value.join(', ') ) unless new_value==old_value
+	  context[:issue].publication_names = new_value
 	end
   end
 
+
+  def controller_issues_new_after_save(context)
+	if context[:issue].tracker.id == Setting.plugin_redmine_publications[:tracker].to_i
+	  value = context[:params][:publications].split(',').map { |n| n.strip }
+	  context[:issue].publication_names = value
+	  context[:issue].save
+	end
+  end
+	
   render_on :view_issues_form_details_bottom, :partial => 'issue_form_pub'
 end
diff --git a/redmine/redmine_publications/lib/redmine_publications/issue_patch.rb b/redmine/redmine_publications/lib/redmine_publications/issue_patch.rb
index f8a83c4b..c1087999 100644
--- a/redmine/redmine_publications/lib/redmine_publications/issue_patch.rb
+++ b/redmine/redmine_publications/lib/redmine_publications/issue_patch.rb
@@ -12,13 +12,7 @@ module RedminePublications
         unloadable # Send unloadable so it will not be unloaded in development
  
  	validate :check_relations
-        after_save :update_relations
- 
-        # Add visible to Redmine 0.8.x
-        unless respond_to?(:visible)
-          named_scope :visible, lambda {|*args| { :include => :project,
-              :conditions => Project.allowed_to_condition(args.first || User.current, :view_issues) } }
-        end
+	after_save :update_relations
       end
  
     end
@@ -61,9 +55,9 @@ module RedminePublications
      end
 
      def update_relations
-        self.reload
 	old = self.publications
 	current_names = self.publication_names
+	Rails.logger.info('[INFO] Updating relations: old= ' << old.inspect << ' current=' << current_names.inspect)
 
 	# delete unused relations
 	deleted = old.select { |v| not (current_names.include?(v.name)) }