Changeset 370
- Timestamp:
- 12/28/06 20:21:06 (2 years ago)
- Files:
-
- trunk/app/controllers/work_order_controller.rb (modified) (3 diffs)
- trunk/app/models/work_order.rb (modified) (5 diffs)
- trunk/app/models/work_order_event.rb (modified) (1 diff)
- trunk/app/views/timeline/_display_event.rhtml (modified) (1 diff)
- trunk/app/views/work_order/_display_work_order_event.rhtml (modified) (1 diff)
- trunk/app/views/work_order/view.rhtml (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/app/controllers/work_order_controller.rb
r367 r370 102 102 return 103 103 end 104 @events = @work_order.work_order_events105 104 @users = @work_order.asset.users(@work_order.responsible_user_id) 106 105 … … 126 125 end 127 126 127 @work_order.add_comment(params[:work_order_comment]) if params[:work_order_comment] 128 128 129 case params[:work_order_action] 129 130 when 'leave' 130 # We would save the comment here 131 return 131 # Do nothing 132 132 when 'accept' 133 133 @work_order.accept … … 160 160 end 161 161 end 162 @events = @work_order.work_order_events 162 163 end 163 164 trunk/app/models/work_order.rb
r369 r370 9 9 validates_length_of :short_description, :within => 4..100 10 10 # Callbacks 11 after_find :save_original_state 11 12 # Associations 12 13 belongs_to :work_order_type … … 162 163 end 163 164 165 # Adds comment that will be stored to the timeline event created by save() 166 def add_comment(comment) 167 return unless comment and comment != '' 168 169 @comment = comment 170 end 171 164 172 # Arguments: 165 173 # +create_state_change_event+:: If +true+, a new WorkOrderEvent (representing the … … 174 182 end 175 183 176 case self.state 184 new_state = (self.state == @original_state) ? nil : self.state 185 186 case new_state 177 187 when @@ACCEPTED 178 188 @event = WorkOrderEvent.create(:event_type => WorkOrderEvent.TYPES[:ACCEPTED], 179 189 :work_order_id => self.id, 180 :comment_text => self.short_description)190 :comment_text => @comment) 181 191 when @@CLOSED 182 192 @event = WorkOrderEvent.create(:event_type => WorkOrderEvent.TYPES[:CLOSED], 183 193 :work_order_id => self.id, 184 :comment_text => self.short_description)194 :comment_text => @comment) 185 195 when @@ASSIGNED 186 196 @event = WorkOrderEvent.create(:event_type => WorkOrderEvent.TYPES[:ASSIGNED], 187 197 :work_order_id => self.id, 188 :comment_text => self.short_description,198 :comment_text => @comment, 189 199 :work_order_owner => self.responsible_user) 190 200 @message = Message.create(:receiver => self.responsible_user, … … 194 204 @event = WorkOrderEvent.create(:event_type => WorkOrderEvent.TYPES[:REOPENED], 195 205 :work_order_id => self.id, 196 :comment_text => self.short_description) 206 :comment_text => @comment) 207 when nil # State unchanged 208 if @comment and @comment != '' 209 @event = WorkOrderEvent.create(:event_type => WorkOrderEvent.TYPES[:COMMENTED], 210 :work_order_id => self.id, 211 :comment_text => @comment) 212 end 197 213 end 198 214 … … 291 307 292 308 protected 309 310 # Saves the current state so that changes can be spotted 311 def save_original_state 312 @original_state = self.state if self.respond_to? :state 313 314 return true 315 end 293 316 294 317 # Converts the given string to float. trunk/app/models/work_order_event.rb
r103 r370 15 15 :ASSIGNED => 3, 16 16 :ACCEPTED => 4, 17 :REOPENED => 5 17 :REOPENED => 5, 18 :COMMENTED => 6 18 19 }.freeze 19 20 cattr_reader :TYPES trunk/app/views/timeline/_display_event.rhtml
r342 r370 21 21 when WorkOrderEvent.TYPES[:REOPENED] 22 22 _('Reopened by %s', event.creator ? event.creator.login_and_name : _('Unknown')) 23 when WorkOrderEvent.TYPES[:COMMENTED] 24 _('Comment added by %s', event.creator ? event.creator.login_and_name : _('Unknown')) 23 25 end 24 26 -%> trunk/app/views/work_order/_display_work_order_event.rhtml
r330 r370 1 1 <div class="work_order_event"> 2 <%= format_date(event.created_at) %> 3 <% case event.event_type 4 when WorkOrderEvent.TYPES[:CREATED] -%> 5 <%= _('Created by %s', event.creator ? event.creator.login_and_name : _('Unknown')) %> 6 <% when WorkOrderEvent.TYPES[:CLOSED] -%> 7 <%= _('Closed by %s', event.creator ? event.creator.login_and_name : _('Unknown')) %> 8 <% when WorkOrderEvent.TYPES[:ASSIGNED] -%> 9 <%= _('Assiged to %s by %s', event.work_order_owner ? event.work_order_owner.login_and_name : _('Unknown'), event.creator ? event.creator.login_and_name : _('Unknown')) %> 10 <% when WorkOrderEvent.TYPES[:ACCEPTED] -%> 11 <%= _('Accepted by %s', event.creator ? event.creator.login_and_name : _('Unknown')) %> 12 <% when WorkOrderEvent.TYPES[:REOPENED] -%> 13 <%= _('Reopened by %s', event.creator ? event.creator.login_and_name : _('Unknown')) %> 2 <tr> 3 <th><%= format_date(event.created_at) %></th> 4 <th> 5 <% case event.event_type 6 when WorkOrderEvent.TYPES[:CREATED] -%> 7 <%= _('Created by %s', event.creator ? event.creator.login_and_name : _('Unknown')) %> 8 <% when WorkOrderEvent.TYPES[:CLOSED] -%> 9 <%= _('Closed by %s', event.creator ? event.creator.login_and_name : _('Unknown')) %> 10 <% when WorkOrderEvent.TYPES[:ASSIGNED] -%> 11 <%= _('Assiged to %s by %s', event.work_order_owner ? event.work_order_owner.login_and_name : _('Unknown'), event.creator ? event.creator.login_and_name : _('Unknown')) %> 12 <% when WorkOrderEvent.TYPES[:ACCEPTED] -%> 13 <%= _('Accepted by %s', event.creator ? event.creator.login_and_name : _('Unknown')) %> 14 <% when WorkOrderEvent.TYPES[:REOPENED] -%> 15 <%= _('Reopened by %s', event.creator ? event.creator.login_and_name : _('Unknown')) %> 16 <% when WorkOrderEvent.TYPES[:COMMENTED] -%> 17 <%= _('Comment added by %s', event.creator ? event.creator.login_and_name : _('Unknown')) %> 18 <% end -%> 19 </th> 20 </tr> 21 <% if event.comment_text -%> 22 <tr> 23 <td colspan="2"><%= h(event.comment_text) %></td> 24 </tr> 14 25 <% end -%> 15 26 </div> trunk/app/views/work_order/view.rhtml
r345 r370 34 34 <% end -%> 35 35 36 <h4><%= _('Comments') %></h4> 37 <%= text_area_tag('work_order_comment', '', :cols => 80, :rows => 4) %> 38 36 39 <%= buttons_table(true, [_('Save changes')], [_('Cancel'), {:action => 'list'}]) %> 37 40 38 41 <% unless @events.empty? -%> 39 42 <div class="work_order_history"> 40 <h3><%= _('Change history') %></h3> 41 <% for event in @events -%> 42 <%= render(:partial => 'display_work_order_event', :locals => { :event => event }) %> 43 <% end -%> 43 <table> 44 <h3><%= _('Change history') %></h3> 45 <% for event in @events -%> 46 <%= render(:partial => 'display_work_order_event', :locals => { :event => event }) %> 47 <% end -%> 48 </table> 44 49 </div> 45 50 <% end -%>