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 }}', } };