diff options
Diffstat (limited to 'g2h/log_page.py')
| -rw-r--r-- | g2h/log_page.py | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/g2h/log_page.py b/g2h/log_page.py new file mode 100644 index 0000000..684a758 --- /dev/null +++ b/g2h/log_page.py @@ -0,0 +1,43 @@ +import os + +from .page import Page + +def ref_names_for_commit(refs, commit_sha): + ref_names = [] + if refs is None: + return ref_names + for ref in refs: + if ref.commit.hexsha == commit_sha: + ref_names.append(ref.name) + + return ref_names + +class LogPage(Page): + def __init__(self, out_dir, name, commits, branches, tags): + super(LogPage, self).__init__('log.md', out_dir, 'l.md', name) + self.commits = commits + self.branches = branches + self.tags = tags + + def _commits_with_refs(self): + commits_context = [] + for commit in self.commits: + refs = ref_names_for_commit(self.branches, commit.hexsha) + ref_names_for_commit(self.tags, commit.hexsha) + commit_context = { + 'committed_datetime': commit.committed_datetime, + 'refs': refs, + 'summary': commit.summary + } + commits_context.append(commit_context) + return commits_context + + def context(self): + commits_context = [] + if self.commits is not None: + commits_context = self._commits_with_refs() + + return { + 'commits': commits_context, + 'title': self.name + ': Log' + } + |