aboutsummaryrefslogtreecommitdiffstats
path: root/libbe
diff options
context:
space:
mode:
Diffstat (limited to 'libbe')
-rw-r--r--libbe/command/html.py38
1 files changed, 34 insertions, 4 deletions
diff --git a/libbe/command/html.py b/libbe/command/html.py
index b769179..4b878e0 100644
--- a/libbe/command/html.py
+++ b/libbe/command/html.py
@@ -142,7 +142,8 @@ class HTMLGen (object):
self._load_default_templates()
if template != None:
self._load_user_templates()
-
+ self.bug_list_dict = {}
+
def run(self, out_dir):
if self.verbose == True:
print >> self.stdout, \
@@ -163,7 +164,8 @@ class HTMLGen (object):
up_link = '../index.html'
else:
up_link = '../index_inactive.html'
- self._write_bug_file(b, up_link)
+ fname = self._create_file_name(b.uuid)
+ self._write_bug_file(b, up_link, fname)
self._write_index_file(
bugs_active, title=self.title,
index_header=self.index_header, bug_type='active')
@@ -171,6 +173,32 @@ class HTMLGen (object):
bugs_inactive, title=self.title,
index_header=self.index_header, bug_type='inactive')
+ def _create_file_name(self, bugid):
+ s = 4
+ if not self.bug_list_dict.has_key(bugid[0:3]):
+ self.bug_list_dict[bugid[0:3]] = bugid
+ fname = bugid[0:3]
+ else:
+ for i in range(s, s+6):
+ if not self.bug_list_dict.has_key(bugid[0:s]):
+ self.bug_list_dict[bugid[0:s]] = bugid
+ fname = bugid[0:s]
+ break
+ if s == 8:
+ self.bug_list_dict[bugid] = bugid
+ fname = bugid
+ fpath = os.path.join(self.out_dir_bugs, fname)
+ return fpath
+
+ def _find_file_name(self, bugid):
+ name = ""
+ for k in self.bug_list_dict:
+ if self.bug_list_dict[k] == bugid:
+ name = k
+ self.bug_list_dict.pop(k)
+ break
+ return name
+
def _create_output_directories(self, out_dir):
if self.verbose:
print >> self.stdout, 'Creating output directories'
@@ -186,7 +214,7 @@ class HTMLGen (object):
self._write_file(self.css_file,
[self.out_dir,'style.css'])
- def _write_bug_file(self, bug, up_link):
+ def _write_bug_file(self, bug, up_link, fname):
if self.verbose:
print >> self.stdout, '\tCreating bug file for %s' % bug.id.user()
assert hasattr(self, 'out_dir_bugs'), \
@@ -194,7 +222,7 @@ class HTMLGen (object):
bug.load_comments(load_full=True)
comment_entries = self._generate_bug_comment_entries(bug)
- filename = '%s.html' % bug.uuid
+ filename = '%s.html' % fname
fullpath = os.path.join(self.out_dir_bugs, filename)
template_info = {'title':self.title,
'charset':self.encoding,
@@ -359,9 +387,11 @@ class HTMLGen (object):
if self.verbose:
print >> self.stdout, '\tCreating bug entry for %s' % bug.id.user()
template_info = {'shortname':bug.id.user()}
+ fn = self._find_file_name(bug.uuid)
for attr in ['uuid', 'severity', 'status', 'assigned',
'reporter', 'creator', 'time_string', 'summary']:
template_info[attr] = self._escape(getattr(bug, attr))
+ template_info['uuid'] = fn
bug_entries.append(self.index_bug_entry % template_info)
return '\n'.join(bug_entries)