From 3e1fd75e9f1acd4cd6e8ff2f582b254a998cb255 Mon Sep 17 00:00:00 2001 From: llj Date: Fri, 21 Sep 2012 14:01:39 +0800 Subject: [PATCH] [history]modified repo_history, repo_history_view;added repo_view_snapshot --- templates/repo_history.html | 31 ++++------- templates/repo_history_view.html | 5 +- templates/repo_view_snapshot.html | 86 +++++++++++++++++++++++++++++++ urls.py | 1 + views.py | 49 ++++++++++++++++++ 5 files changed, 149 insertions(+), 23 deletions(-) create mode 100644 templates/repo_view_snapshot.html diff --git a/templates/repo_history.html b/templates/repo_history.html index 7ffdb7a531..b0ab67b4d8 100644 --- a/templates/repo_history.html +++ b/templates/repo_history.html @@ -5,48 +5,36 @@ {% block main_panel %}

{{repo.props.name}} 修改历史

- +
-

Tip:在每次修改后会生成一个镜像,记录修改后的目录状态。

+

Tip:在每次修改后会生成一个镜像,记录修改后的目录状态。查看镜像

- - - - + + + {% for commit in commits %} - - {% if commit.creator_name %} {% else %} - + 未知 {% endif %} - + - - - {% if forloop.first and current_page == 1 %} - - {% else %} - - {% endif %} {% endfor %}
修改时间修改者描述操作修改时间修改者描述
{{ commit.ctime|translate_commit_time }} + {% if commit.creator_name %} {% avatar commit.creator_name 16 %} {{ commit.creator_name|email2nickname }} - 未知 {{ commit.props.desc|translate_commit_desc }} {% if page_next or not forloop.last %} 详情 {% endif %} 这是当前版本 - 查看镜像 -
@@ -82,9 +70,8 @@ {% block extra_script %} {% endblock %} diff --git a/templates/repo_history_view.html b/templates/repo_history_view.html index ca046339c4..4aa01d0ce8 100644 --- a/templates/repo_history_view.html +++ b/templates/repo_history_view.html @@ -6,7 +6,7 @@ {% block main_panel %}

{{repo.props.name}} 历史镜像({{ current_commit.props.ctime|tsstr_sec }})

- +
@@ -77,5 +77,8 @@ {% block extra_script %} {% endblock %} diff --git a/templates/repo_view_snapshot.html b/templates/repo_view_snapshot.html new file mode 100644 index 0000000000..7400161882 --- /dev/null +++ b/templates/repo_view_snapshot.html @@ -0,0 +1,86 @@ +{% extends base_template %} +{% load seahub_tags avatar_tags %} +{% load url from future %} + +{% block main_panel %} +
+

{{repo.props.name}} 镜像查看

+ +
+ +
+
+ + + + + + + + + {% for commit in commits %} + + + + + + + {% endfor %} +
生成时间修改者描述操作
{{ commit.ctime|translate_commit_time }} + {% if commit.creator_name %} + {% avatar commit.creator_name 16 %} + {{ commit.creator_name|email2nickname }} + {% else %} + 未知 + {% endif %} + + {{ commit.props.desc|translate_commit_desc }} + {% if page_next or not forloop.last %} + 详情 + {% endif %} + + {% if forloop.first and current_page == 1 %} + 这是当前版本 + {% else %} + 查看 + 还原 + {% endif %} +
+
+ {% if current_page != 1 %} + 上一页 + {% endif %} + {% if page_next %} + 下一页 + {% endif %} + 每页: + {% if per_page == 25 %} + 25 + {% else %} + 25 + {% endif %} + {% if per_page == 50 %} + 50 + {% else %} + 50 + {% endif %} + {% if per_page == 100 %} + 100 + {% else %} + 100 + {% endif %} +
+
+
+
+{% endblock %} + +{% block extra_script %} + +{% endblock %} diff --git a/urls.py b/urls.py index c0bb7a479f..344a897afe 100644 --- a/urls.py +++ b/urls.py @@ -59,6 +59,7 @@ urlpatterns = patterns('', (r'^repo/history/(?P[^/]+)/$', repo_history), (r'^repo/history/revert/(?P[^/]+)/$', repo_history_revert), url(r'^repo/history/view/(?P[^/]+)/$', RepoHistoryView.as_view(), name='repo_history_view'), + url(r'^repo/snapshot/view/(?P[^/]+)/$', repo_view_snapshot, name='repo_view_snapshot'), # (r'^repo/token/modify/(?P[^/]+)/$', modify_token), (r'^repo/history/changes/(?P[^/]+)/$', repo_history_changes), (r'^repo/remove/(?P[^/]+)/$', remove_repo), diff --git a/views.py b/views.py index 9733bfea4d..99954c3a78 100644 --- a/views.py +++ b/views.py @@ -549,6 +549,55 @@ def repo_history(request, repo_id): 'page_next': page_next, }, context_instance=RequestContext(request)) +@login_required +@ctx_switch_required +def repo_view_snapshot(request, repo_id): + """ + View repo history. + """ + if not access_to_repo(request, repo_id, ''): + return render_permission_error(request, u'无法浏览该同步目录修改历史') + + repo = get_repo(repo_id) + + password_set = False + if repo.props.encrypted: + try: + ret = seafserv_rpc.is_passwd_set(repo_id, request.user.username) + if ret == 1: + password_set = True + except SearpcError, e: + return render_error(request, e.msg) + + if repo.props.encrypted and not password_set: + return HttpResponseRedirect(reverse('repo', args=[repo_id])) + + try: + current_page = int(request.GET.get('page', '1')) + per_page= int(request.GET.get('per_page', '25')) + except ValueError: + current_page = 1 + per_page = 25 + + commits_all = get_commits(repo_id, per_page * (current_page -1), + per_page + 1) + commits = commits_all[:per_page] + + if len(commits_all) == per_page + 1: + page_next = True + else: + page_next = False + + return render_to_response('repo_view_snapshot.html', { + "repo": repo, + "commits": commits, + 'current_page': current_page, + 'prev_page': current_page-1, + 'next_page': current_page+1, + 'per_page': per_page, + 'page_next': page_next, + }, context_instance=RequestContext(request)) + @login_required def repo_history_revert(request, repo_id): repo = get_repo(repo_id)