| 454 | | if 'preview' not in req.args: |
| 455 | | if valid: |
| 456 | | self._apply_ticket_changes(ticket, field_changes) |
| 457 | | # redirected if successful |
| 458 | | self._do_save(req, ticket, action) |
| 459 | | # else fall through in a preview |
| 460 | | req.args['preview'] = True |
| | 454 | if valid: |
| | 455 | ## I can't work out how to copy a whole ticket so I only copy |
| | 456 | ## the relevent bits that could change when calling _apply_ticket_changes. |
| | 457 | ## There is almost certainly a better way to do this!!! |
| | 458 | from copy import copy |
| | 459 | workflow_ticket = copy(ticket) |
| | 460 | workflow_ticket.values = copy(ticket.values) |
| | 461 | workflow_ticket.old = copy(ticket._old) |
| | 462 | self._apply_ticket_changes(workflow_ticket, field_changes) |
| | 463 | # redirected if successful |
| | 464 | if self._validate_ticket(req, workflow_ticket): |
| | 465 | if 'preview' not in req.args: |
| | 466 | self._do_save(req, workflow_ticket, action) |
| | 467 | # No need to copy workflow_ticket back to ticket as |
| | 468 | # _do_save will redirect if all is well :) |
| | 469 | # If something bad happens, we just want to preview anyway... |
| | 470 | # else fall through in a preview |
| | 471 | req.args['preview'] = True |