Skip to content

Commit

Permalink
Fixed #7508
Browse files Browse the repository at this point in the history
 * support multi repository
  • Loading branch information
Richard Liao committed Aug 19, 2010
1 parent 5cb6233 commit 09d83eb
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 3 deletions.
2 changes: 1 addition & 1 deletion 0.12/ticketlog/htdocs/ticketlog.js
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ $(document).ready(function() {
// 生成表格
for (var i=0; i<revisions.length; i++) {
var revision = revisions[i];
var tr_html = "<tr><td><a target='_blank' href='../changeset/"+revision.rev+"'>["+revision.rev+"]</a></td><td>"+revision.author+"</td><td>"+revision.time+"</td><td>"+revision.message+"</td></tr>";
var tr_html = "<tr><td><a target='_blank' href='../changeset/"+revision.link+"'>["+revision.rev+"]</a></td><td>"+revision.author+"</td><td>"+revision.time+"</td><td>"+revision.message+"</td></tr>";
$("#ticket_revisions").append(tr_html);
}

Expand Down
40 changes: 38 additions & 2 deletions 0.12/ticketlog/web_ui.py
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,19 @@ class TicketlogModule(Component):
def __init__(self):
locale_dir = resource_filename(__name__, 'locale')
add_domain(self.env.path, locale_dir)

# detect if trac support multi repository
sql_string = """
SELECT * FROM repository LIMIT 1
"""
db = self.env.get_db_cnx()
cursor = db.cursor()
try:
cursor.execute(sql_string)
self.multi_repository = True
except:
self.multi_repository = False


# IPermissionRequestor methods

Expand Down Expand Up @@ -151,20 +164,43 @@ def _get_ticket_revisions(self, req, ticket_id):
db = self.env.get_db_cnx()
cursor = db.cursor()

sql_string_multi_repos = """
SELECT p.value, v.rev, v.author, v.time, v.message
FROM revision v
LEFT JOIN repository p
ON v.repos = p.id AND p.name='name'
WHERE message LIKE %s
"""
sql_string = """
SELECT rev, author, time, message
FROM revision
WHERE message LIKE %s
"""
cursor.execute(sql_string, ["%%#%s%%" % ticket_id])
if self.multi_repository:
cursor.execute(sql_string_multi_repos, ["%%#%s%%" % ticket_id])
else:
cursor.execute(sql_string, ["%%#%s%%" % ticket_id])

rows = cursor.fetchall()

log_pattern = self.config.get("ticketlog", "log_pattern", "\s*#%s+\s+.*")
p = re.compile(log_pattern % ticket_id, re.M + re.S + re.U)

for row in rows:
revision = {}
revision["rev"], revision["author"], revision["time"], revision["message"] = row
if self.multi_repository:
revision["repos"], revision["rev"], revision["author"], revision["time"], revision["message"] = row
else:
revision["rev"], revision["author"], revision["time"], revision["message"] = row
revision["repos"] = None

revision["rev"] = revision["rev"].lstrip("0")
if revision["repos"]:
revision["link"] = "%s/%s" % (revision["rev"], revision["repos"])
else:
# default repos
revision["link"] = revision["rev"]

if p.match(revision["message"]):
revisions.append(revision)

Expand Down

0 comments on commit 09d83eb

Please sign in to comment.