Changeset 328

Show
Ignore:
Timestamp:
12/08/06 17:42:33 (2 years ago)
Author:
jarmo
Message:
Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/app/controllers/report_controller.rb

    r324 r328  
    157157        @report.editable = params[:report][:editable] if params[:report] and @report.report_type.editable 
    158158        session[:image_fields].delete(@report_cookie) if session[:image_fields] 
    159         if @report.save 
    160           # FIXME: This could be cleaner 
    161           for value in @report.report_field_values 
    162             value.save 
    163           end 
     159        if @report.save_with_values 
    164160          flash[:notice] = msg_changes_saved 
    165161          redirect_to :action => 'view', :id => @report.id and return 
  • trunk/app/models/report.rb

    r209 r328  
    88  # Callbacks 
    99  after_create :created_event 
    10   after_update :modified_event 
    1110  # Associations 
    1211  belongs_to :report_type 
     
    9392  end 
    9493 
     94  # Saves the report and all associated field values. Timeline event is created after saving. 
     95  def save_with_values 
     96    begin 
     97      Report.transaction do 
     98        self.save! 
     99        for value in self.report_field_values 
     100          value.save! 
     101        end      
     102        ReportEvent.create!(:event_type => ReportEvent.TYPES[:MODIFIED], :report => self) 
     103      end 
     104    rescue 
     105      return false 
     106    end 
     107    return true 
     108  end 
     109 
    95110  # Returns true if this report is editable and the current user is authorized to edit this report. 
    96111  def editable_by_current_user? 
     
    162177                       :report => self) 
    163178  end 
    164  
    165   def modified_event 
    166     ReportEvent.create(:event_type => ReportEvent.TYPES[:MODIFIED], 
    167                        :report => self) 
    168   end 
    169179end 
    170180 

© 2004-2007 Norfello Oy All Rights Reserved