diff --git a/frontend/src/components/review-list-view/review-list-view.js b/frontend/src/components/review-list-view/review-list-view.js
index 591c635598..72b5661041 100644
--- a/frontend/src/components/review-list-view/review-list-view.js
+++ b/frontend/src/components/review-list-view/review-list-view.js
@@ -40,7 +40,7 @@ class ReviewListView extends React.Component {
className={classnames({ active: this.state.activeTab === 'open' })}
onClick={() => { this.toggle('open');}}
>
- Open
+ {gettext('Open')}
@@ -48,7 +48,7 @@ class ReviewListView extends React.Component {
className={classnames({ active: this.state.activeTab === 'finished' })}
onClick={() => { this.toggle('finished');}}
>
- Published
+ {gettext('Published')}
@@ -56,7 +56,7 @@ class ReviewListView extends React.Component {
className={classnames({ active: this.state.activeTab === 'closed' })}
onClick={() => { this.toggle('closed');}}
>
- Closed
+ {gettext('Closed')}
diff --git a/frontend/src/draft-review.js b/frontend/src/draft-review.js
index 829c4bd898..108e362940 100644
--- a/frontend/src/draft-review.js
+++ b/frontend/src/draft-review.js
@@ -3,7 +3,7 @@ import ReactDOM from 'react-dom';
/* eslint-disable */
import Prism from 'prismjs';
/* eslint-enable */
-import { siteRoot, gettext, draftID, reviewID, draftOriginFilePath, draftFilePath, draftOriginRepoID, draftFileName, opStatus, publishFileVersion, originFileVersion } from './utils/constants';
+import { siteRoot, gettext, draftID, reviewID, draftOriginFilePath, draftFilePath, draftOriginRepoID, draftFileName, opStatus, publishFileVersion, originFileVersion, author, authorAvatar } from './utils/constants';
import { seafileAPI } from './utils/seafile-api';
import axios from 'axios';
import DiffViewer from '@seafile/seafile-editor/dist/viewer/diff-viewer';
@@ -41,8 +41,6 @@ class DraftReview extends React.Component {
showReviewerDialog: false,
reviewers: [],
};
- this.authorName = '';
- this.authorAvatar = '';
}
componentDidMount() {
@@ -164,13 +162,6 @@ class DraftReview extends React.Component {
});
}
- getAuthorInfo = () => {
- seafileAPI.getAccountInfo().then((res) => {
- this.authorName = res.data.name;
- this.authorAvatar = res.data.avatar_url;
- });
- }
-
listReviewers = () => {
seafileAPI.listReviewers(reviewID).then((res) => {
this.setState({
@@ -181,7 +172,6 @@ class DraftReview extends React.Component {
componentWillMount() {
this.getCommentsNumber();
- this.getAuthorInfo();
this.listReviewers();
}
@@ -299,8 +289,8 @@ class DraftReview extends React.Component {
{gettext('Author')}
-

-
{this.authorName}
+

+
{author}
diff --git a/frontend/src/utils/constants.js b/frontend/src/utils/constants.js
index 965e014f46..c68e98770b 100644
--- a/frontend/src/utils/constants.js
+++ b/frontend/src/utils/constants.js
@@ -44,3 +44,5 @@ export const opStatus = window.draftReview ? window.draftReview.config.opStatus
export const reviewPerm = window.draftReview ? window.draftReview.config.perm : '';
export const publishFileVersion = window.draftReview ? window.draftReview.config.publishFileVersion : '';
export const originFileVersion = window.draftReview ? window.draftReview.config.originFileVersion : '';
+export const author = window.draftReview ? window.draftReview.config.author : '';
+export const authorAvatar = window.draftReview ? window.draftReview.config.authorAvatar : '';
diff --git a/seahub/api2/endpoints/drafts.py b/seahub/api2/endpoints/drafts.py
index 85481874f5..7a02daa6d0 100644
--- a/seahub/api2/endpoints/drafts.py
+++ b/seahub/api2/endpoints/drafts.py
@@ -71,10 +71,10 @@ class DraftsView(APIView):
return api_error(status.HTTP_404_NOT_FOUND,
"File %s not found" % file_path)
- username = request.user.username
+ dirent = seafile_api.get_dirent_by_path(repo_id, file_path)
try:
- d = Draft.objects.add(username, repo, file_path, file_id)
+ d = Draft.objects.add(dirent.modifier, repo, file_path, file_id)
return Response(d.to_dict())
except (DraftFileExist, IntegrityError):
diff --git a/seahub/drafts/views.py b/seahub/drafts/views.py
index 81928484cc..7cf4fdee59 100644
--- a/seahub/drafts/views.py
+++ b/seahub/drafts/views.py
@@ -5,10 +5,12 @@ import posixpath
from django.shortcuts import render, get_object_or_404
from django.utils.translation import ugettext as _
+from seahub.base.templatetags.seahub_tags import email2nickname
from seahub.auth.decorators import login_required
from seahub.views import check_folder_permission
from seahub.utils import render_permission_error
from seahub.drafts.models import Draft, DraftReview
+from seahub.api2.utils import user_to_dict
@login_required
@@ -39,6 +41,8 @@ def review(request, pk):
draft_file_name = os.path.basename(d_r.draft_file_path)
+ user_info = user_to_dict(d_r.creator, avatar_size=32)
+
return render(request, "draft_review.html", {
"draft_id": d_r.draft_id_id,
"review_id": pk,
@@ -50,5 +54,7 @@ def review(request, pk):
"origin_file_version": d_r.origin_file_version,
"publish_file_version": d_r.publish_file_version,
"status": d_r.status,
- "permission": permission
+ "permission": permission,
+ "author": user_info['user_name'],
+ 'author_avatar_url': user_info['avatar_url']
})
diff --git a/seahub/notifications/models.py b/seahub/notifications/models.py
index c21cdca429..aa7729bd51 100644
--- a/seahub/notifications/models.py
+++ b/seahub/notifications/models.py
@@ -782,7 +782,7 @@ class UserNotification(models.Model):
review_id = d['review_id']
author = d['author']
- msg = _("Review %(review_id)s has a new comment from user %(author)s") % {
+ msg = _("Review #%(review_id)s has a new comment from user %(author)s") % {
'review_id': review_id,
'file_url': reverse('drafts:review', args=[review_id]),
'author': escape(email2nickname(author)),
@@ -799,7 +799,7 @@ class UserNotification(models.Model):
review_id = d['review_id']
from_user = d['from_user']
- msg = _("%(from_user)s has sent you a request for review %(review_id)s") % {
+ msg = _("%(from_user)s has sent you a request for review #%(review_id)s") % {
'review_id': review_id,
'file_url': reverse('drafts:review', args=[review_id]),
'from_user': escape(email2nickname(from_user))
@@ -818,14 +818,14 @@ class UserNotification(models.Model):
status = d['status']
if status == 'closed':
- msg = _("%(from_user)s has closed review %(review_id)s") % {
+ msg = _("%(from_user)s has closed review #%(review_id)s") % {
'review_id': review_id,
'file_url': reverse('drafts:review', args=[review_id]),
'from_user': escape(email2nickname(from_user))
}
if status == 'finished':
- msg = _("%(from_user)s has published review %(review_id)s") % {
+ msg = _("%(from_user)s has published review #%(review_id)s") % {
'review_id': review_id,
'file_url': reverse('drafts:review', args=[review_id]),
'from_user': escape(email2nickname(from_user))
diff --git a/seahub/templates/draft_review.html b/seahub/templates/draft_review.html
index 9f592e9b0f..c5ed0da14a 100644
--- a/seahub/templates/draft_review.html
+++ b/seahub/templates/draft_review.html
@@ -16,6 +16,8 @@
perm: '{{ permission }}',
publishFileVersion: '{{ publish_file_version }}',
originFileVersion: '{{ origin_file_version }}',
+ author: '{{ author }}',
+ authorAvatar: '{{ author_avatar_url }}',
}
};