From ba172a7caebc36e0a9b62885bc85f59d513c43d1 Mon Sep 17 00:00:00 2001 From: Florian Wagner Date: Fri, 23 Jun 2017 13:01:30 +0200 Subject: [PATCH] Parse git commit date into a datetime object. --- waliki/git/models.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/waliki/git/models.py b/waliki/git/models.py index d11f38c..a2ba3d8 100644 --- a/waliki/git/models.py +++ b/waliki/git/models.py @@ -4,6 +4,7 @@ from django.contrib.auth import get_user_model from django.dispatch import receiver from django.utils.translation import ugettext_lazy as _ +from django.utils.dateparse import parse_datetime from django.utils import six _ from sh import git, ErrorReturnCode, Command @@ -79,8 +80,8 @@ def commit(self, page, message='', author=None, parent=None, extra_path=None): return there_were_changes def history(self, page): - GIT_COMMIT_FIELDS = ['commit', 'author', 'date', 'date_relative', 'message'] - GIT_LOG_FORMAT = '%x1f'.join(['%h', '%an', '%ad', '%ar', '%s']) + '%x1e' + GIT_COMMIT_FIELDS = ['commit', 'author', 'date', 'date_relative', 'date_parsed', 'message'] + GIT_LOG_FORMAT = '%x1f'.join(['%h', '%an', '%ad', '%ar', '%ai', '%s']) + '%x1e' output = git.log('--format=%s' % GIT_LOG_FORMAT, '--follow', '-z', '--shortstat', page.abspath) output = output.split('\n') history = [] @@ -97,7 +98,8 @@ def history(self, page): max_changes = float(max([(v['insertion'] + v['deletion']) for v in history])) or 1.0 for v in history: v.update({'insertion_relative': str((v['insertion'] / max_changes) * 100), - 'deletion_relative': str((v['deletion'] / max_changes) * 100)}) + 'deletion_relative': str((v['deletion'] / max_changes) * 100), + 'date_parsed': parse_datetime('%s %s%s' % tuple(v['date_parsed'].split()))}) return history def version(self, page, version):