def process_request(self, req): req.perm.assert_permission('TICKET_VIEW') action = req.args.get('action', 'view') db = self.env.get_db_cnx() id = int(req.args.get('id')) ticket = Ticket(self.env, id, db=db) if req.method == 'POST': if not req.args.has_key('preview'): self._do_save(req, db, ticket) else: # Use user supplied values ticket.populate(req.args) self._validate_ticket(req, ticket) req.hdf['ticket.action'] = action req.hdf['ticket.ts'] = req.args.get('ts') req.hdf['ticket.reassign_owner'] = req.args.get('reassign_owner') \ or req.authname req.hdf['ticket.resolve_resolution'] = req.args.get( 'resolve_resolution') comment = req.args.get('comment') if comment: req.hdf['ticket.comment'] = comment # Wiki format a preview of comment req.hdf['ticket.comment_preview'] = wiki_to_html( comment, self.env, req, db) else: req.hdf['ticket.reassign_owner'] = req.authname # Store a timestamp in order to detect "mid air collisions" req.hdf['ticket.ts'] = ticket.time_changed self._insert_ticket_data(req, db, ticket, get_reporter_id(req, 'author')) mime = Mimeview(self.env) format = req.args.get('format') if format: mime.send_converted(req, 'trac.ticket.Ticket', ticket, format, 'ticket_%d' % ticket.id) # If the ticket is being shown in the context of a query, add # links to help navigate in the query result set if 'query_tickets' in req.session: tickets = req.session['query_tickets'].split() if str(id) in tickets: idx = tickets.index(str(ticket.id)) if idx > 0: add_link(req, 'first', req.href.ticket(tickets[0]), u'Ticket #%s' % tickets[0]) add_link(req, 'prev', req.href.ticket(tickets[idx - 1]), u'Ticket #%s' % tickets[idx - 1]) if idx < len(tickets) - 1: add_link(req, 'next', req.href.ticket(tickets[idx + 1]), u'Ticket #%s' % tickets[idx + 1]) add_link(req, 'last', req.href.ticket(tickets[-1]), u'Ticket #%s' % tickets[-1]) add_link(req, 'up', req.session['query_href']) add_stylesheet(req, 'common/css/ticket.css') # Add registered converters for conversion in mime.get_supported_conversions('trac.ticket.Ticket'): conversion_href = req.href.ticket(ticket.id, format=conversion[0]) add_link(req, 'alternate', conversion_href, conversion[1], conversion[3]) return 'ticket.cs', None
def process_request(self, req): req.perm.assert_permission('TICKET_VIEW') action = req.args.get('action', 'view') db = self.env.get_db_cnx() id = int(req.args.get('id')) ticket = Ticket(self.env, id, db=db) if req.method == 'POST': if not req.args.has_key('preview'): self._do_save(req, db, ticket) else: # Use user supplied values ticket.populate(req.args) self._validate_ticket(req, ticket) req.hdf['ticket.action'] = action req.hdf['ticket.ts'] = req.args.get('ts') req.hdf['ticket.reassign_owner'] = req.args.get('reassign_owner') \ or req.authname req.hdf['ticket.resolve_resolution'] = req.args.get('resolve_resolution') comment = req.args.get('comment') if comment: req.hdf['ticket.comment'] = comment # Wiki format a preview of comment req.hdf['ticket.comment_preview'] = wiki_to_html( comment, self.env, req, db) else: req.hdf['ticket.reassign_owner'] = req.authname # Store a timestamp in order to detect "mid air collisions" req.hdf['ticket.ts'] = ticket.time_changed self._insert_ticket_data(req, db, ticket, get_reporter_id(req, 'author')) mime = Mimeview(self.env) format = req.args.get('format') if format: mime.send_converted(req, 'trac.ticket.Ticket', ticket, format, 'ticket_%d' % ticket.id) # If the ticket is being shown in the context of a query, add # links to help navigate in the query result set if 'query_tickets' in req.session: tickets = req.session['query_tickets'].split() if str(id) in tickets: idx = tickets.index(str(ticket.id)) if idx > 0: add_link(req, 'first', req.href.ticket(tickets[0]), u'Ticket #%s' % tickets[0]) add_link(req, 'prev', req.href.ticket(tickets[idx - 1]), u'Ticket #%s' % tickets[idx - 1]) if idx < len(tickets) - 1: add_link(req, 'next', req.href.ticket(tickets[idx + 1]), u'Ticket #%s' % tickets[idx + 1]) add_link(req, 'last', req.href.ticket(tickets[-1]), u'Ticket #%s' % tickets[-1]) add_link(req, 'up', req.session['query_href']) add_stylesheet(req, 'common/css/ticket.css') # Add registered converters for conversion in mime.get_supported_conversions('trac.ticket.Ticket'): conversion_href = req.href.ticket(ticket.id, format=conversion[0]) add_link(req, 'alternate', conversion_href, conversion[1], conversion[3]) return 'ticket.cs', None