Ejemplo n.º 1
0
	def get(self, status = '', lang = '', output = 'html'):
		self.setLanguage(lang)
		self.current_user = users.GetCurrentUser()
		
		if not self.current_user:
			return self.toLogin()
		else:
			self.token = self.request.get('token')
			self.ManageAuth()
			self.LookupToken()
			
			if self.client.GetAuthSubToken() is None:
				return self.toAuthorize()
		
		tickets = [ {
			'id': t.key().id(),
			'url': '/ticket/%d' % t.key().id(),
			'project': t.project,
			'summary': t.summary,
			'description': t.description,
			'status': t.status.name,
			'severity': t.severity.name,
			'owner': t.author.nickname(),
			'solver': t.assignedUser.nickname() if t.assignedUser else '-'
		} for t in TicketService.getByStatus(status, 20, self.request.get('order'), self.request.get('orderdir')) ]

		statuses = [ {
			'id': s.key().id(),
			'name': s.name,
		} for s in StatusService.getAll() ]

		severities = [ {
			'id': s.key().id(),
			'name': s.name,
		} for s in SeverityService.getAll() ]

		self.values['tickets']    = tickets
		self.values['statuses']   = statuses
		self.values['severities'] = severities
		self.values['contacts'] = self.GetContacts()

		if output == 'html':
			self.render('ticket_list.html')
		if output == 'xml':
			self.render('ticket_list.xml')
		elif output == 'json':
			json.dump(tickets, self.response.out, indent = 4)
Ejemplo n.º 2
0
	def get(self, ticketId, lang = 'en', output = 'html'):
		self.setLanguage(lang)
		self.current_user = users.GetCurrentUser()
		
		if not self.current_user:
			return self.toLogin()
		else:
			self.token = self.request.get('token')
			self.ManageAuth()
			self.LookupToken()

			if self.client.GetAuthSubToken() is None:
				return self.toAuthorize()
		ticket = TicketService.getById(ticketId)

		ticketDict = {
			'id': ticket.key().id(),
			'project': ticket.project,
			'url': '/ticket/%d' % ticket.key().id(),
			'summary': ticket.summary,
			'description': ticket.description,
			'status': ticket.status.name,
			'severity': ticket.severity.name,
			'owner': ticket.author.nickname(),
			'solver': ticket.assignedUser.nickname() if ticket.assignedUser else '-',
			'solverEmail': ticket.assignedUser.email() if ticket.assignedUser else ''
		}

		statuses = [ {
			'id': s.key().id(),
			'name': s.name,
		} for s in StatusService.getAll() ]

		severities = [ {
			'id': s.key().id(),
			'name': s.name,
		} for s in SeverityService.getAll() ]

		comments = [ {
			'author': c.author.nickname(),
			'message': c.message,
			'date': c.date,
		} for c in CommentService.getByTicket(ticketId) ]

		contacts = self.GetContacts()
		if ticket.assignedUser:
			userEmail = ticket.assignedUser.email()
			index = [k for k, v in contacts.iteritems() if v == userEmail]
			if len(index):
				del contacts[index[0]]
				contacts['%s (now assigned)' % index[0]] = userEmail
			else:
				assignedUserName = '******' % (ticket.assignedUser.nickname(), userEmail)
				contacts[assignedUserName] = userEmail

		self.values['ticket'] = ticketDict
		self.values['statuses']   = statuses
		self.values['severities'] = severities
		self.values['comments'] = comments
		self.values['contacts'] = contacts

		if output == 'html':
			self.render('ticket_detail.html')
		if output == 'xml':
			self.render('ticket_detail.xml')
		elif output == 'json':
			json.dump(ticket, self.response.out, indent = 4)