def _depgraph_all(self, req): """ Produces a dependency graph including all tickets, even those which do not block other tickets and are not blocked by other tickets """ result = "" db = self.env.get_db_cnx() cursor = db.cursor() sql = "SELECT id, priority, summary FROM ticket WHERE status != 'closed' ORDER BY id DESC;" cursor.execute(sql) tickets = cursor.fetchall() for ticket in tickets: bgcolor, border = get_color( str(ticket[1]).decode('ascii', 'ignore')) result += "\"" + str(ticket[0]) + "\" [ URL=\"" \ + req.href.ticket(int(ticket[0])) \ + "\" fontcolor=\"#bb0000\" fillcolor=\"" + bgcolor \ + "\" color=\"" + border \ + "\" tooltip=\"" \ + ticket[2].encode('ascii', 'xmlcharrefreplace') + "\" ]\n" # Use blocked_by() from mastertickets.util blockers = blocked_by(self.env, int(ticket[0])) for blocker in blockers: # result += "\"%s\" -> \"%s\"" % (str(ticket[0]), str(blocker)) result += "\"%s\" -> \"%s\"" % (str(blocker), str(ticket[0])) return result
def _depgraph_all(self, req): """ Produces a dependency graph including all tickets, even those which do not block other tickets and are not blocked by other tickets """ result = "" db = self.env.get_db_cnx() cursor = db.cursor() sql = "SELECT id, priority, summary FROM ticket WHERE status != 'closed' ORDER BY id DESC;" cursor.execute(sql) tickets = cursor.fetchall() for ticket in tickets: bgcolor, border = get_color(str(ticket[1]).decode('ascii','ignore')) result += "\"" + str(ticket[0]) + "\" [ URL=\"" \ + req.href.ticket(int(ticket[0])) \ + "\" fontcolor=\"#bb0000\" fillcolor=\"" + bgcolor \ + "\" color=\"" + border \ + "\" tooltip=\"" \ + ticket[2].encode('ascii', 'xmlcharrefreplace') + "\" ]\n" # Use blocked_by() from mastertickets.util blockers = blocked_by(self.env, int(ticket[0])) for blocker in blockers: # result += "\"%s\" -> \"%s\"" % (str(ticket[0]), str(blocker)) result += "\"%s\" -> \"%s\"" % (str(blocker), str(ticket[0])) return result
def _depgraph(self, req, ticket, depth): self.log.debug('called depgraph(%s, %s)' % (str(ticket), str(depth))) if ticket in self._seen_tickets: return "" self._seen_tickets.append(ticket) db = self.env.get_db_cnx() cursor = db.cursor() sql = ("SELECT summary, priority FROM ticket WHERE id = %s;" \ % (str(ticket))) cursor.execute(sql) summary, priority = cursor.fetchone() if depth == 0: bgcolor = "#cceecc" border = "#00cc00" else: bgcolor, border = get_color(str(priority)) result = "\"" + str(ticket) + "\" [ URL=\"" \ + req.href.ticket(int(ticket)) \ + "\" fillcolor=\"" + bgcolor + "\" color=\"" + border \ + "\" fontcolor=\"#bb0000\" tooltip=\"" \ + summary.encode('ascii', 'xmlcharrefreplace') + "\" ]\n" if self._maxdepth > 0 and depth >= self._maxdepth: return result # Use blocked_by() from mastertickets.util blockers = blocked_by(self.env, ticket) for blocker in blockers: result += self._depgraph(req, int(blocker), depth + 1) # result += "\"%s\" -> \"%s\"\n" % (str(ticket), str(blocker)) result += "\"%s\" -> \"%s\"\n" % (str(blocker), str(ticket)) return result
def _depgraph(self, req, ticket, depth): self.log.debug('called depgraph(%s, %s)' % (str(ticket), str(depth))) if ticket in self._seen_tickets: return "" self._seen_tickets.append(ticket) db = self.env.get_db_cnx() cursor = db.cursor() sql = ("SELECT summary, priority FROM ticket WHERE id = %s;" \ % (str(ticket))) cursor.execute(sql) summary, priority = cursor.fetchone() if depth == 0: bgcolor = "#cceecc" border = "#00cc00" else: bgcolor, border = get_color(str(priority)) result = "\"" + str(ticket) + "\" [ URL=\"" \ + req.href.ticket(int(ticket)) \ + "\" fillcolor=\"" + bgcolor + "\" color=\"" + border \ + "\" fontcolor=\"#bb0000\" tooltip=\"" \ + summary.encode('ascii', 'xmlcharrefreplace') + "\" ]\n" if self._maxdepth > 0 and depth >= self._maxdepth: return result # Use blocked_by() from mastertickets.util blockers = blocked_by(self.env, ticket) for blocker in blockers: result += self._depgraph(req, int(blocker), depth+1) # result += "\"%s\" -> \"%s\"\n" % (str(ticket), str(blocker)) result += "\"%s\" -> \"%s\"\n" % (str(blocker), str(ticket)) return result