Ticket #2618: mid_air_collision_retry-r3341.patch
| File mid_air_collision_retry-r3341.patch, 4.2 KB (added by cboos, 6 years ago) |
|---|
-
trac/ticket/web_ui.py
252 252 253 253 if req.method == 'POST': 254 254 if not req.args.has_key('preview'): 255 self._do_save(req, db, ticket)255 return self._do_save(req, db, ticket) 256 256 else: 257 257 # Use user supplied values 258 258 ticket.populate(req.args) 259 259 self._validate_ticket(req, ticket) 260 261 req.hdf['ticket.action'] = action 262 req.hdf['ticket.ts'] = req.args.get('ts') 263 req.hdf['ticket.reassign_owner'] = req.args.get('reassign_owner') \ 264 or req.authname 265 req.hdf['ticket.resolve_resolution'] = req.args.get('resolve_resolution') 266 reporter_id = req.args.get('author') 267 comment = req.args.get('comment') 268 if comment: 269 req.hdf['ticket.comment'] = comment 270 # Wiki format a preview of comment 271 req.hdf['ticket.comment_preview'] = wiki_to_html(comment, 272 self.env, 273 req, db) 260 self._populate_misc(req, db) 274 261 else: 275 262 req.hdf['ticket.reassign_owner'] = req.authname 276 263 # Store a timestamp in order to detect "mid air collisions" … … 484 471 485 472 # Mid air collision? 486 473 if int(req.args.get('ts')) != ticket.time_changed: 487 raise TracError("Sorry, can not save your changes. " 488 "This ticket has been modified by someone else " 489 "since you started", 'Mid Air Collision') 474 self._insert_ticket_data(req, None, ticket, 475 req.args.get('author')) 476 self._populate_misc(req, db) 477 return 'ticket_error.cs', None 490 478 491 479 self._validate_ticket(req, ticket) 492 480 … … 590 578 actions = TicketSystem(self.env).get_available_actions(ticket, req.perm) 591 579 for action in actions: 592 580 req.hdf['ticket.actions.' + action] = '1' 581 582 def _populate_misc(self, req, db): 583 req.hdf['ticket.action'] = req.args.get('action', 'view') 584 req.hdf['ticket.ts'] = req.args.get('ts') 585 req.hdf['ticket.reassign_owner'] = req.args.get('reassign_owner') \ 586 or req.authname 587 req.hdf['ticket.resolve_resolution'] = req.args.get('resolve_resolution') 588 reporter_id = req.args.get('author') 589 comment = req.args.get('comment') 590 if comment: 591 req.hdf['ticket.comment'] = comment 592 # Wiki format a preview of comment 593 req.hdf['ticket.comment_preview'] = wiki_to_html( 594 comment, self.env, req, db) -
templates/ticket_error.cs
1 <?cs include "header.cs"?> 2 3 <div id="ctxtnav" class="nav"></div> 4 5 <div id="content" class="error"> 6 <h1>Mid Air Collision</h1> 7 <div class="message"> 8 <strong>Sorry, can not save your changes.</strong> 9 <p>This ticket has been modified by someone else since you started.</p> 10 </div> 11 12 <form action="<?cs var:ticket.href ?>#preview" method="post"> 13 <input type="hidden" name="author" value="<?cs var:ticket.reporter_id ?>" /><?cs 14 each:field = ticket.fields ?> 15 <input type="hidden" name="<?cs var:name(field) ?>" value="<?cs var:ticket[name(field)] ?>" /><?cs 16 /each ?> 17 <input type="hidden" name="reassign_owner" value="<?cs var:ticket.reassign_owner ?>" /> 18 <input type="hidden" name="action" value="<?cs var:ticket.action ?>" /> 19 <input type="hidden" name="ts" value="<?cs var:ticket.ts ?>" /> 20 <input type="hidden" name="comment" value="<?cs var:ticket.comment ?>" /> 21 22 <div class="buttons"> 23 <input type="submit" name="preview" value="Retry" /> 24 </div> 25 </form> 26 </div> 27 28 <?cs include "footer.cs"?>
