From 1ce55b27f410882481405dc94cd17901038a2355 Mon Sep 17 00:00:00 2001 From: yystopf Date: Mon, 20 Mar 2023 16:13:29 +0800 Subject: [PATCH 01/12] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=EF=BC=9A=E7=96=91?= =?UTF-8?q?=E4=BF=AE=E5=88=97=E8=A1=A8=E5=88=87=E6=8D=A2=E5=85=B3=E9=97=AD?= =?UTF-8?q?status=20count=E4=B8=8D=E5=8F=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/services/api/v1/issues/list_service.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/services/api/v1/issues/list_service.rb b/app/services/api/v1/issues/list_service.rb index 9804d63c2..256ad222c 100644 --- a/app/services/api/v1/issues/list_service.rb +++ b/app/services/api/v1/issues/list_service.rb @@ -68,7 +68,7 @@ class Api::V1::Issues::ListService < ApplicationService issues = issues.joins(:assigners).where(users: {id: assigner_id}) if assigner_id.present? # status_id - issues = issues.where(status_id: status_id) if status_id.present? + issues = issues.where(status_id: status_id) if status_id.present? && category != 'closed' if begin_date&.present? || end_date&.present? issues = issues.where("issues.created_on between ? and ?", begin_date&.present? ? begin_date.to_time : Time.now.beginning_of_day, end_date&.present? ? end_date.to_time.end_of_day : Time.now.end_of_day) From 481a7fd6262535728de145fdb1eee69ab89996bc Mon Sep 17 00:00:00 2001 From: xxq250 Date: Wed, 22 Mar 2023 11:03:05 +0800 Subject: [PATCH 02/12] =?UTF-8?q?mindspore=E4=B8=89=E4=B8=AA=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E5=BC=80=E5=90=AF=E7=86=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/helpers/projects_helper.rb | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/app/helpers/projects_helper.rb b/app/helpers/projects_helper.rb index 804e2aa46..5bd2f68f2 100644 --- a/app/helpers/projects_helper.rb +++ b/app/helpers/projects_helper.rb @@ -149,6 +149,9 @@ module ProjectsHelper when 'vue' then "#{url}/v1/vue/entropy" when 'bootstrap' then "#{url}/v1/bootstrap/entropy" when 'tensorflow' then "#{url}/v1/tensorflow/entropy" + when 'openeuler' then "#{url}/v1/openeuler/entropy" + when 'opengauss' then "#{url}/v1/opengauss/entropy" + when 'mindspore' then "#{url}/v1/mindspore/entropy" else '' end end @@ -163,6 +166,9 @@ module ProjectsHelper when 'vue' then "#{url}/v2/getMediumData?repo_login=vuejs&repo_name=vue" when 'bootstrap' then "#{url}/v2/getMediumData?repo_login=twbs&repo_name=bootstrap" when 'tensorflow' then "#{url}/v2/getMediumData?repo_login=tensorflow&repo_name=tensorflow" + when 'openeuler' then "#{url}/v2/getMediumData?repo_login=openeuler&repo_name=openeuler" + when 'opengauss' then "#{url}/v2/getMediumData?repo_login=opengauss&repo_name=opengauss" + when 'mindspore' then "#{url}/v2/getMediumData?repo_login=mindspore&repo_name=mindspore" else '' end end @@ -177,6 +183,9 @@ module ProjectsHelper when 'vue' then "#{url}/v2/getIndexData?repo_login=vuejs&repo_name=vue" when 'bootstrap' then "#{url}/v2/getIndexData?repo_login=twbs&repo_name=bootstrap" when 'tensorflow' then "#{url}/v2/getIndexData?repo_login=tensorflow&repo_name=tensorflow" + when 'openeuler' then "#{url}/v2/getIndexData?repo_login=openeuler&repo_name=openeuler" + when 'opengauss' then "#{url}/v2/getIndexData?repo_login=opengauss&repo_name=opengauss" + when 'mindspore' then "#{url}/v2/getIndexData?repo_login=mindspore&repo_name=mindspore" else '' end end @@ -191,6 +200,9 @@ module ProjectsHelper when 'vue' then "#{url}/vue/entropy" when 'bootstrap' then "#{url}/bootstrap/entropy" when 'tensorflow' then "#{url}/tensorflow/entropy" + when 'openeuler' then "#{url}/openeuler/entropy" + when 'opengauss' then "#{url}/opengauss/entropy" + when 'mindspore' then "#{url}/mindspore/entropy" else '' end end From b65b920a1e6413c940d8e712276b3d6e86cfd51a Mon Sep 17 00:00:00 2001 From: xxq250 Date: Wed, 22 Mar 2023 11:13:27 +0800 Subject: [PATCH 03/12] =?UTF-8?q?=E5=B7=B2=E5=AE=89=E8=A3=85bot?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/installations/index.json.jbuilder | 1 + 1 file changed, 1 insertion(+) diff --git a/app/views/installations/index.json.jbuilder b/app/views/installations/index.json.jbuilder index b2f674f20..3d64a3323 100644 --- a/app/views/installations/index.json.jbuilder +++ b/app/views/installations/index.json.jbuilder @@ -2,6 +2,7 @@ json.status 0 json.message "success" json.data do json.array! @install_bots do |install_bot| + json.installation_id install_bot.id json.extract! install_bot.bot, :id, :name end end \ No newline at end of file From b127323589f06f7d3ad17e5939583fa3cab93fca Mon Sep 17 00:00:00 2001 From: yystopf Date: Thu, 23 Mar 2023 10:41:52 +0800 Subject: [PATCH 04/12] =?UTF-8?q?=E6=9B=B4=E6=94=B9=EF=BC=9A=E5=85=B3?= =?UTF-8?q?=E6=B3=A8=E3=80=81=E7=82=B9=E8=B5=9E=E3=80=81fork=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E6=9B=B4=E6=96=B0=E6=97=B6=E9=97=B4=EF=BC=8C=E4=BB=A5?= =?UTF-8?q?=E5=8F=8Aissue=E5=88=97=E8=A1=A8=E8=BF=94=E5=9B=9E=E9=87=8C?= =?UTF-8?q?=E7=A8=8B=E7=A2=91ID?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/fork_user.rb | 2 ++ app/models/praise_tread.rb | 2 ++ app/models/watcher.rb | 2 ++ app/views/api/v1/issues/_simple_detail.json.jbuilder | 1 + 4 files changed, 7 insertions(+) diff --git a/app/models/fork_user.rb b/app/models/fork_user.rb index 2d74af4a4..92040ad13 100644 --- a/app/models/fork_user.rb +++ b/app/models/fork_user.rb @@ -25,10 +25,12 @@ class ForkUser < ApplicationRecord def incre_project_common CacheAsyncSetJob.perform_later("project_common_service", {forks: 1}, self.project_id) + self.project.update_column(:updated_on, Time.now) end def decre_project_common CacheAsyncSetJob.perform_later("project_common_service", {forks: -1}, self.project_id) + self.project.update_column(:updated_on, Time.now) end def incre_user_statistic diff --git a/app/models/praise_tread.rb b/app/models/praise_tread.rb index 5d4ae0d80..0250f012e 100644 --- a/app/models/praise_tread.rb +++ b/app/models/praise_tread.rb @@ -26,10 +26,12 @@ class PraiseTread < ApplicationRecord def incre_project_common CacheAsyncSetJob.perform_later("project_common_service", {praises: 1}, self.praise_tread_object_id) if self.praise_tread_object_type == "Project" + self.praise_tread_object.update_column(:updated_on, Time.now) if self.praise_tread_object_type == "Project" end def decre_project_common CacheAsyncSetJob.perform_later("project_common_service", {praises: -1}, self.praise_tread_object_id) if self.praise_tread_object_type == "Project" + self.praise_tread_object.update_column(:updated_on, Time.now) if self.praise_tread_object_type == "Project" end def incre_user_statistic diff --git a/app/models/watcher.rb b/app/models/watcher.rb index 5a2cd96fb..f9d646ca9 100644 --- a/app/models/watcher.rb +++ b/app/models/watcher.rb @@ -28,10 +28,12 @@ class Watcher < ApplicationRecord def incre_project_common CacheAsyncSetJob.perform_later("project_common_service", {watchers: 1}, self.watchable_id) if self.watchable_type == "Project" + self.watchable.update_column(:updated_on, Time.now) if self.watchable_type == "Project" end def decre_project_common CacheAsyncSetJob.perform_later("project_common_service", {watchers: -1}, self.watchable_id) if self.watchable_type == "Project" + self.watchable.update_column(:updated_on, Time.now) if self.watchable_type == "Project" end def incre_user_statistic diff --git a/app/views/api/v1/issues/_simple_detail.json.jbuilder b/app/views/api/v1/issues/_simple_detail.json.jbuilder index 7e0d6b11f..e5a1a2cdc 100644 --- a/app/views/api/v1/issues/_simple_detail.json.jbuilder +++ b/app/views/api/v1/issues/_simple_detail.json.jbuilder @@ -7,6 +7,7 @@ end json.status_name issue.issue_status&.name json.priority_name issue.priority&.name json.milestone_name issue.version&.name +json.milestone_id issue.fixed_version_id json.author do if issue.user.present? json.partial! "api/v1/users/simple_user", locals: {user: issue.user} From 243e2e2667abaf78fa8ee0e014585774f1298500 Mon Sep 17 00:00:00 2001 From: xxq250 Date: Thu, 23 Mar 2023 16:32:37 +0800 Subject: [PATCH 05/12] =?UTF-8?q?=E7=BE=A4=E6=99=BA=E7=86=B5=E5=88=86?= =?UTF-8?q?=E6=9E=90=E6=8A=A5=E8=A1=A8=E5=A2=9E=E5=8A=A0=E9=A1=B9=E7=9B=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/helpers/projects_helper.rb | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/app/helpers/projects_helper.rb b/app/helpers/projects_helper.rb index 5bd2f68f2..e50bd22d3 100644 --- a/app/helpers/projects_helper.rb +++ b/app/helpers/projects_helper.rb @@ -149,8 +149,8 @@ module ProjectsHelper when 'vue' then "#{url}/v1/vue/entropy" when 'bootstrap' then "#{url}/v1/bootstrap/entropy" when 'tensorflow' then "#{url}/v1/tensorflow/entropy" - when 'openeuler' then "#{url}/v1/openeuler/entropy" - when 'opengauss' then "#{url}/v1/opengauss/entropy" + when 'kernel' then "#{url}/v1/openeuler/entropy" + when 'opengauss-server' then "#{url}/v1/opengauss/entropy" when 'mindspore' then "#{url}/v1/mindspore/entropy" else '' end @@ -166,9 +166,9 @@ module ProjectsHelper when 'vue' then "#{url}/v2/getMediumData?repo_login=vuejs&repo_name=vue" when 'bootstrap' then "#{url}/v2/getMediumData?repo_login=twbs&repo_name=bootstrap" when 'tensorflow' then "#{url}/v2/getMediumData?repo_login=tensorflow&repo_name=tensorflow" - when 'openeuler' then "#{url}/v2/getMediumData?repo_login=openeuler&repo_name=openeuler" - when 'opengauss' then "#{url}/v2/getMediumData?repo_login=opengauss&repo_name=opengauss" - when 'mindspore' then "#{url}/v2/getMediumData?repo_login=mindspore&repo_name=mindspore" + when 'kernel' then "#{url}/v2/getMediumData?repo_login=openeuler&repo_name=kernel" + when 'opengauss-server' then "#{url}/v2/getMediumData?repo_login=opengauss&repo_name=openGauss-server" + when 'mindspore' then "#{url}/v2/getMediumData?repo_login=mindspore&repo_name=mindspore" else '' end end @@ -183,9 +183,9 @@ module ProjectsHelper when 'vue' then "#{url}/v2/getIndexData?repo_login=vuejs&repo_name=vue" when 'bootstrap' then "#{url}/v2/getIndexData?repo_login=twbs&repo_name=bootstrap" when 'tensorflow' then "#{url}/v2/getIndexData?repo_login=tensorflow&repo_name=tensorflow" - when 'openeuler' then "#{url}/v2/getIndexData?repo_login=openeuler&repo_name=openeuler" - when 'opengauss' then "#{url}/v2/getIndexData?repo_login=opengauss&repo_name=opengauss" - when 'mindspore' then "#{url}/v2/getIndexData?repo_login=mindspore&repo_name=mindspore" + when 'kernel' then "#{url}/v2/getIndexData?repo_login=openeuler&repo_name=kernel" + when 'opengauss-server' then "#{url}/v2/getIndexData?repo_login=opengauss&repo_name=openGauss-server" + when 'mindspore' then "#{url}/v2/getIndexData?repo_login=mindspore&repo_name=mindspore" else '' end end @@ -199,9 +199,9 @@ module ProjectsHelper when 'paddle' then "#{url}/paddle/entropy" when 'vue' then "#{url}/vue/entropy" when 'bootstrap' then "#{url}/bootstrap/entropy" - when 'tensorflow' then "#{url}/tensorflow/entropy" - when 'openeuler' then "#{url}/openeuler/entropy" - when 'opengauss' then "#{url}/opengauss/entropy" + when 'tensorflow' then "#{url}/tensorflow/entropy" + when 'kernel' then "#{url}/openeuler/entropy" + when 'opengauss-server' then "#{url}/opengauss/entropy" when 'mindspore' then "#{url}/mindspore/entropy" else '' end From 0fc705fcde046318feea5f70704cf1aa3fbe3824 Mon Sep 17 00:00:00 2001 From: yystopf Date: Fri, 24 Mar 2023 10:56:17 +0800 Subject: [PATCH 06/12] =?UTF-8?q?=E6=96=B0=E5=A2=9E=EF=BC=9A=E4=B8=AA?= =?UTF-8?q?=E4=BA=BA=E4=B8=BB=E9=A1=B5=E9=A1=B9=E7=9B=AE=E6=96=B0=E5=A2=9E?= =?UTF-8?q?admin=E6=9F=A5=E8=AF=A2=E6=88=91=E7=AE=A1=E7=90=86=E7=9A=84?= =?UTF-8?q?=E4=BB=93=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/queries/projects/list_my_query.rb | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/app/queries/projects/list_my_query.rb b/app/queries/projects/list_my_query.rb index bc0cda1a2..510ecf9fd 100644 --- a/app/queries/projects/list_my_query.rb +++ b/app/queries/projects/list_my_query.rb @@ -34,6 +34,10 @@ class Projects::ListMyQuery < ApplicationQuery elsif params[:category].to_s == "forked" #我fork的 fork_ids = user.fork_users.select(:id, :fork_project_id).pluck(:fork_project_id) projects = projects.where(id: fork_ids) + elsif params[:category].to_s == "admin" + normal_projects = projects.joins(members: :roles).where(members: {user_id: user.id}, roles: {name: %w(Manager)}).to_sql + org_projects = projects.joins(team_projects: [team: :team_users]).where(teams: {authorize: "owner"},team_users: {user_id: user.id}).to_sql + projects = Project.from("( #{ normal_projects} UNION #{ org_projects } ) AS projects").distinct # elsif params[:category].to_s == "public" # projects = projects.visible.joins(:members).where(members: { user_id: user.id }) # elsif params[:category].to_s == "private" From b37ff07bcfdf46fd6a0c65e57e6f71fa576a9e44 Mon Sep 17 00:00:00 2001 From: yystopf Date: Fri, 24 Mar 2023 14:34:42 +0800 Subject: [PATCH 07/12] =?UTF-8?q?=E6=96=B0=E5=A2=9E=EF=BC=9A=E4=B8=AA?= =?UTF-8?q?=E4=BA=BA=E9=A1=B9=E7=9B=AE=E5=88=86=E9=A1=B5limit=E4=BD=BF?= =?UTF-8?q?=E7=94=A89999?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/application_controller.rb | 8 ++++++++ app/controllers/users_controller.rb | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 8129df8f1..4e21949b0 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -680,6 +680,14 @@ class ApplicationController < ActionController::Base relation.page(page).per(limit) end + def kaminari_unlimit_paginate(ralation) + limit = params[:limit] || params[:per_page] + limit = (limit.to_i.zero? || limit.to_i > 9999) ? 9999 : limit.to_i + page = params[:page].to_i.zero? ? 1 : params[:page].to_i + + relation.page(page).per(limit) + end + def kaminari_array_paginate(relation) limit = params[:limit] || params[:per_page] limit = (limit.to_i.zero? || limit.to_i > 20) ? 20 : limit.to_i diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index 33fd93f83..c4c745a7d 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -281,7 +281,7 @@ class UsersController < ApplicationController is_current_admin_user = User.current.logged? && (current_user&.admin? || current_user.id == @user.id) scope = Projects::ListMyQuery.call(params, @user,is_current_admin_user) @total_count = scope.size - @projects = paginate(scope) + @projects = kaminari_unlimit_paginate(scope) end # TODO 其他平台登录时同步修改gitea平台对应用户的密码 From 01467a3d2adcdafa2cec2459d6d77abe8b3eeeb3 Mon Sep 17 00:00:00 2001 From: yystopf Date: Fri, 24 Mar 2023 14:37:42 +0800 Subject: [PATCH 08/12] =?UTF-8?q?=E6=96=B0=E5=A2=9E=EF=BC=9A=E4=B8=AA?= =?UTF-8?q?=E4=BA=BA=E9=A1=B9=E7=9B=AE=E5=88=86=E9=A1=B5limit=E4=BD=BF?= =?UTF-8?q?=E7=94=A89999?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/application_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 4e21949b0..517e1b2df 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -680,7 +680,7 @@ class ApplicationController < ActionController::Base relation.page(page).per(limit) end - def kaminari_unlimit_paginate(ralation) + def kaminari_unlimit_paginate(relation) limit = params[:limit] || params[:per_page] limit = (limit.to_i.zero? || limit.to_i > 9999) ? 9999 : limit.to_i page = params[:page].to_i.zero? ? 1 : params[:page].to_i From 29217ff3453d9a43655f8abf689e337971692eef Mon Sep 17 00:00:00 2001 From: yystopf Date: Fri, 24 Mar 2023 23:05:01 +0800 Subject: [PATCH 09/12] =?UTF-8?q?=E6=96=B0=E5=A2=9E=EF=BC=9A=E8=B4=A1?= =?UTF-8?q?=E7=8C=AE=E5=8D=A0=E6=AF=94=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/concerns/watchable.rb | 12 +++++++----- .../gitea/repository/contributors/get_service.rb | 9 ++++++--- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/app/models/concerns/watchable.rb b/app/models/concerns/watchable.rb index 3ca9f04e3..f152124a8 100644 --- a/app/models/concerns/watchable.rb +++ b/app/models/concerns/watchable.rb @@ -31,7 +31,7 @@ module Watchable following.size end - def mindspore_contribution_perc(project) + def simple_contribution_perc(project) @project = project @user = self @@ -39,14 +39,16 @@ module Watchable (count_user * 1.0 / (count_all + 0.000000001)).round(5) end - if @project['use_blockchain'] == true or @project['use_blockchain'] == 1 + if (@project['use_blockchain'] == true or @project['use_blockchain'] == 1) && @user.id.present? balance_user = Blockchain::BalanceQueryOneProject.call({"user_id": @user.id, "project_id": @project.id}) balance_all = Blockchain::RepoBasicInfo.call({"project_id": @project.id})["cur_supply"] score = cal_perc(balance_user, balance_all) else - commits_all = Project.mindspore_contributors.map{|i| i['contributions']}.sum - commit_user = Project.mindspore_contributors.select{|i| i['login'] == @user.login}.map{|i| i['contributions']}.sum - score = cal_perc(commit_user, commits_all) + contributors = [] + result = Gitea::Repository::Contributors::GetService.call(@owner, @repository.identifier,{q_name: self.login, q_email: self.mail}) + user_contribution = result[:body][0] + commits_all = result[:total_contributions] + score = cal_perc(user_contribution["contributions"], commits_all) end end diff --git a/app/services/gitea/repository/contributors/get_service.rb b/app/services/gitea/repository/contributors/get_service.rb index ea121a50d..cfc2e9340 100644 --- a/app/services/gitea/repository/contributors/get_service.rb +++ b/app/services/gitea/repository/contributors/get_service.rb @@ -1,11 +1,13 @@ class Gitea::Repository::Contributors::GetService < Gitea::ClientService - attr_reader :owner, :repo_name, :page, :limit + attr_reader :owner, :repo_name, :page, :limit, :q_name, :q_email def initialize(owner, repo_name, params) @owner = owner @repo_name = repo_name @page = params[:page] || 1 @limit = params[:limit] || 20 + @q_name = params[:q_name] || "" + @q_email = params[:q_email] || "" end def call @@ -15,7 +17,7 @@ class Gitea::Repository::Contributors::GetService < Gitea::ClientService private def params - Hash.new.merge(token: owner.gitea_token, page: page, limit: limit) + Hash.new.merge(token: owner.gitea_token, page: page, limit: limit, q_name: q_name, q_email: q_email) end def url @@ -29,7 +31,8 @@ class Gitea::Repository::Contributors::GetService < Gitea::ClientService headers = response.headers.to_hash body = JSON.parse(response.body) total_count = headers["x-total"] - result.merge(total_count: total_count.to_i, body: body) + total_contributions = headers["x-total-contributions"] + result.merge(total_count: total_count.to_i, total_contributions: total_contributions.to_i, body: body) else nil # {status: -1, message: "#{body['message']}"} From 4b5df918fcea69345597f2791be77299883f5f22 Mon Sep 17 00:00:00 2001 From: yystopf Date: Fri, 24 Mar 2023 23:35:41 +0800 Subject: [PATCH 10/12] =?UTF-8?q?=E6=9B=B4=E6=94=B9=EF=BC=9A=E8=B4=A1?= =?UTF-8?q?=E7=8C=AE=E5=8D=A0=E6=AF=94=E5=B1=95=E7=A4=BA=E5=9C=A8=E8=B4=A1?= =?UTF-8?q?=E7=8C=AE=E8=80=85=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/concerns/watchable.rb | 4 +++- app/views/repositories/_contributor.json.jbuilder | 9 ++------- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/app/models/concerns/watchable.rb b/app/models/concerns/watchable.rb index f152124a8..a6a89881f 100644 --- a/app/models/concerns/watchable.rb +++ b/app/models/concerns/watchable.rb @@ -45,11 +45,13 @@ module Watchable score = cal_perc(balance_user, balance_all) else contributors = [] - result = Gitea::Repository::Contributors::GetService.call(@owner, @repository.identifier,{q_name: self.login, q_email: self.mail}) + result = Gitea::Repository::Contributors::GetService.call(@user, @project.identifier,{q_name: @user.login, q_email: @user.mail}) user_contribution = result[:body][0] commits_all = result[:total_contributions] score = cal_perc(user_contribution["contributions"], commits_all) end + + (score * 100).round(1).to_s + "%" end def contribution_perc(project) diff --git a/app/views/repositories/_contributor.json.jbuilder b/app/views/repositories/_contributor.json.jbuilder index dca0a93bf..d1bc16024 100644 --- a/app/views/repositories/_contributor.json.jbuilder +++ b/app/views/repositories/_contributor.json.jbuilder @@ -6,12 +6,7 @@ if user.blank? json.type nil json.name contributor["login"] json.image_url User::Avatar.get_letter_avatar_url(contributor["login"]) - if @cache_result.present? - db_user = User.find_by_id(contributor["id"]) - if db_user.present? - json.contribution_perc db_user.contribution_perc(project) - end - end + json.contribution_perc User.new(login: contributor["login"], mail: contributor["email"]).simple_contribution_perc(project) else json.contributions contributor["contributions"] # json.gid contributor["id"] @@ -21,6 +16,6 @@ else json.image_url user["avatar_url"] db_user = User.find_by_id(user["id"]) if db_user.present? - json.contribution_perc db_user.contribution_perc(project) + json.contribution_perc db_user.simple_contribution_perc(project) end end From c7f21fed4fcdf36962c62db797e74971bad19efa Mon Sep 17 00:00:00 2001 From: yystopf Date: Fri, 24 Mar 2023 23:40:20 +0800 Subject: [PATCH 11/12] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=EF=BC=9Awatchable?= =?UTF-8?q?=E4=BD=BF=E7=94=A8project.owner?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/concerns/watchable.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/models/concerns/watchable.rb b/app/models/concerns/watchable.rb index a6a89881f..a8a19a40a 100644 --- a/app/models/concerns/watchable.rb +++ b/app/models/concerns/watchable.rb @@ -45,7 +45,7 @@ module Watchable score = cal_perc(balance_user, balance_all) else contributors = [] - result = Gitea::Repository::Contributors::GetService.call(@user, @project.identifier,{q_name: @user.login, q_email: @user.mail}) + result = Gitea::Repository::Contributors::GetService.call(@project.owner, @project.identifier,{q_name: @user.login, q_email: @user.mail}) user_contribution = result[:body][0] commits_all = result[:total_contributions] score = cal_perc(user_contribution["contributions"], commits_all) From 3bfc6e1c2a7f713c99370bf7764aa06ab88cc2c2 Mon Sep 17 00:00:00 2001 From: yystopf Date: Fri, 24 Mar 2023 23:44:24 +0800 Subject: [PATCH 12/12] =?UTF-8?q?=E6=9B=B4=E6=94=B9=EF=BC=9A=E8=B4=A1?= =?UTF-8?q?=E7=8C=AE=E8=80=85=E7=A7=BB=E9=99=A4=E8=8E=B7=E5=8F=96cache?= =?UTF-8?q?=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/repositories_controller.rb | 18 ++++++------------ .../repositories/_contributor.json.jbuilder | 4 ++-- 2 files changed, 8 insertions(+), 14 deletions(-) diff --git a/app/controllers/repositories_controller.rb b/app/controllers/repositories_controller.rb index d7fdb51ac..1d98b17f4 100644 --- a/app/controllers/repositories_controller.rb +++ b/app/controllers/repositories_controller.rb @@ -169,18 +169,12 @@ class RepositoriesController < ApplicationController end def contributors - @cache_result = $redis_cache.get("ProjectSpecialCommit:#{@project.id}") - if @cache_result.present? - @total_count = Project.mindspore_contributors.size - @contributors = kaminari_array_paginate(Project.mindspore_contributors) - else - if params[:filepath].present? || @project.educoder? - @contributors = [] - else - result = Gitea::Repository::Contributors::GetService.call(@owner, @repository.identifier, {page: params[:page], limit: params[:limit]}) - @total_count = result[:total_count] - @contributors = result.is_a?(Hash) ? result[:body] : [] - end + if params[:filepath].present? || @project.educoder? + @contributors = [] + else + result = Gitea::Repository::Contributors::GetService.call(@owner, @repository.identifier, {page: params[:page], limit: params[:limit]}) + @total_count = result[:total_count] + @contributors = result.is_a?(Hash) ? result[:body] : [] end rescue @contributors = [] diff --git a/app/views/repositories/_contributor.json.jbuilder b/app/views/repositories/_contributor.json.jbuilder index d1bc16024..e93bdf370 100644 --- a/app/views/repositories/_contributor.json.jbuilder +++ b/app/views/repositories/_contributor.json.jbuilder @@ -2,9 +2,9 @@ user = $redis_cache.hgetall("v2-owner-common:#{contributor["login"]}-#{contribut if user.blank? json.contributions contributor["contributions"] # json.gid contributor["id"] - json.login contributor["login"] + json.login contributor["login"].downcase json.type nil - json.name contributor["login"] + json.name contributor["login"].downcase json.image_url User::Avatar.get_letter_avatar_url(contributor["login"]) json.contribution_perc User.new(login: contributor["login"], mail: contributor["email"]).simple_contribution_perc(project) else