You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@answer.apache.org by ku...@apache.org on 2024/04/24 06:43:32 UTC

(incubator-answer-plugins) branch feat/reviewer-basic updated: feat(review): add review all post option

This is an automated email from the ASF dual-hosted git repository.

kumfo pushed a commit to branch feat/reviewer-basic
in repository https://gitbox.apache.org/repos/asf/incubator-answer-plugins.git


The following commit(s) were added to refs/heads/feat/reviewer-basic by this push:
     new 4ba80cb  feat(review): add review all post option
4ba80cb is described below

commit 4ba80cbccf8df131271d9d072809dfe900a5cd18
Author: kumfo <ku...@sifou.com>
AuthorDate: Wed Apr 24 14:43:22 2024 +0800

    feat(review): add review all post option
---
 reviewer-basic/basic.go            | 32 ++++++++++++++++++++++++++------
 reviewer-basic/i18n/en_US.yaml     | 10 ++++++----
 reviewer-basic/i18n/translation.go |  3 ++-
 reviewer-basic/i18n/zh_CN.yaml     | 10 ++++++----
 4 files changed, 40 insertions(+), 15 deletions(-)

diff --git a/reviewer-basic/basic.go b/reviewer-basic/basic.go
index 53521be..001ef67 100644
--- a/reviewer-basic/basic.go
+++ b/reviewer-basic/basic.go
@@ -35,6 +35,7 @@ type Reviewer struct {
 }
 
 type ReviewerConfig struct {
+	PostAllNeedReview      bool   `json:"review_post_all"`
 	PostNeedReview         bool   `json:"review_post"`
 	PostReviewKeywords     string `json:"review_post_keywords"`
 	PostDisallowedKeywords string `json:"disallowed_keywords"`
@@ -59,8 +60,14 @@ func (r *Reviewer) Info() plugin.Info {
 
 func (r *Reviewer) Review(content *plugin.ReviewContent) (result *plugin.ReviewResult) {
 	result = &plugin.ReviewResult{Approved: true, ReviewStatus: plugin.ReviewStatusApproved}
-	// this switch is true and have any other approved post, return directly
-	if r.Config.PostNeedReview && content.Author.ApprovedQuestionAmount+content.Author.ApprovedAnswerAmount == 0 {
+
+	// If the author is admin, no need to review
+	if content.Author.Role > 1 {
+		return result
+	}
+
+	// all post need review
+	if r.Config.PostAllNeedReview {
 		result = &plugin.ReviewResult{
 			Approved:     false,
 			ReviewStatus: plugin.ReviewStatusNeedReview,
@@ -69,8 +76,13 @@ func (r *Reviewer) Review(content *plugin.ReviewContent) (result *plugin.ReviewR
 		return result
 	}
 
-	// If the author is admin, no need to review
-	if content.Author.Role > 1 {
+	// this switch is true and have any other approved post, return directly
+	if r.Config.PostNeedReview && content.Author.ApprovedQuestionAmount+content.Author.ApprovedAnswerAmount == 0 {
+		result = &plugin.ReviewResult{
+			Approved:     false,
+			ReviewStatus: plugin.ReviewStatusNeedReview,
+			Reason:       plugin.TranslateWithData(myI18n.Language(content.Language), i18n.CommentNeedReview, nil),
+		}
 		return result
 	}
 
@@ -118,13 +130,21 @@ func (r *Reviewer) Review(content *plugin.ReviewContent) (result *plugin.ReviewR
 
 func (r *Reviewer) ConfigFields() []plugin.ConfigField {
 	return []plugin.ConfigField{
+		{
+			Name:  "review_all_post",
+			Type:  plugin.ConfigTypeSwitch,
+			Title: plugin.MakeTranslator(i18n.ConfigReviewPostTitle),
+			UIOptions: plugin.ConfigFieldUIOptions{
+				Label: plugin.MakeTranslator(i18n.ConfigReviewPostLabelAll),
+			},
+			Value: r.Config.PostAllNeedReview,
+		},
 		{
 			Name:        "review_post",
 			Type:        plugin.ConfigTypeSwitch,
-			Title:       plugin.MakeTranslator(i18n.ConfigReviewPostTitle),
 			Description: plugin.MakeTranslator(i18n.ConfigReviewPostDescription),
 			UIOptions: plugin.ConfigFieldUIOptions{
-				Label: plugin.MakeTranslator(i18n.ConfigReviewPostLabel),
+				Label: plugin.MakeTranslator(i18n.ConfigReviewPostLabelFirst),
 			},
 			Value: r.Config.PostNeedReview,
 		},
diff --git a/reviewer-basic/i18n/en_US.yaml b/reviewer-basic/i18n/en_US.yaml
index a7c717b..2971d62 100644
--- a/reviewer-basic/i18n/en_US.yaml
+++ b/reviewer-basic/i18n/en_US.yaml
@@ -26,11 +26,13 @@ plugin:
       config:
         review_post:
           title:
-            other: Review question and answer
-          label:
-            other: Review post when author do not have any other approved post
+            other: Before a post appears
+          label_all:
+            other: Post must be manually approved
+          label_first:
+            other: Post author must have a previously approved post
           description:
-            other: Questions or answers are not visible until they are approved.
+            other: Questions or answers will be held in the review queue and will not be visible until they are approved.
         review_post_keywords:
           title:
             other: Review post keywords
diff --git a/reviewer-basic/i18n/translation.go b/reviewer-basic/i18n/translation.go
index b3d2623..1289fbc 100644
--- a/reviewer-basic/i18n/translation.go
+++ b/reviewer-basic/i18n/translation.go
@@ -22,7 +22,8 @@ package i18n
 const (
 	InfoName                            = "plugin.basic_reviewer.backend.info.name"
 	InfoDescription                     = "plugin.basic_reviewer.backend.info.description"
-	ConfigReviewPostLabel               = "plugin.basic_reviewer.backend.config.review_post.label"
+	ConfigReviewPostLabelAll            = "plugin.basic_reviewer.backend.config.review_post.label_all"
+	ConfigReviewPostLabelFirst          = "plugin.basic_reviewer.backend.config.review_post.label_first"
 	ConfigReviewPostTitle               = "plugin.basic_reviewer.backend.config.review_post.title"
 	ConfigReviewPostDescription         = "plugin.basic_reviewer.backend.config.review_post.description"
 	ConfigReviewPostKeywordsTitle       = "plugin.basic_reviewer.backend.config.review_post_keywords.title"
diff --git a/reviewer-basic/i18n/zh_CN.yaml b/reviewer-basic/i18n/zh_CN.yaml
index 306e954..4d047a7 100644
--- a/reviewer-basic/i18n/zh_CN.yaml
+++ b/reviewer-basic/i18n/zh_CN.yaml
@@ -26,11 +26,13 @@ plugin:
       config:
         review_post:
           title:
-            other: 审核问题和回答
-          label:
-            other: 当该作者没有任何已批准的问答内容时,他发布的问答内容需要审核
+            other: 帖子发布之前
+          label_all:
+            other: 所有帖子必须手动审核
+          label_first:
+            other: 内容发布者必须要有通过审核的帖子
           description:
-            other: 问题或回答在被批准之前是不可见的。
+            other: 问题或答案将保存在审查队列中,在获得批准之前不可见。
         review_post_keywords:
           title:
             other: 审核帖子关键词