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

sebb pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/whimsy.git

commit a473219548c7c082ee309c314740c1178d075938
Author: Sebb <[email protected]>
AuthorDate: Fri Aug 11 00:12:07 2023 +0100

    Replace Person.committees call
    
    Always show committer karma (display needs it)
---
 www/roster/models/committer.rb | 31 ++++++++++++++++++++++---------
 1 file changed, 22 insertions(+), 9 deletions(-)

diff --git a/www/roster/models/committer.rb b/www/roster/models/committer.rb
index 415fc037..b1ed8301 100644
--- a/www/roster/models/committer.rb
+++ b/www/roster/models/committer.rb
@@ -74,11 +74,10 @@ class Committer
 
     response[:urls] = person.urls unless person.urls.empty?
 
-    response[:committees] = person.committees.map(&:name)
-
     response[:groups] = person.services
-    response[:committer] = []
-    response[:podlings] = []
+    response[:committer] = [] # PMC committers
+    response[:committees] = [] # PMC owners
+    response[:podlings] = [] # podling owner or committer
     pmcs = ASF::Committee.pmcs
     pmc_names = pmcs.map(&:name) # From CI
     podlings = ASF::Podling.current.map(&:id)
@@ -90,14 +89,22 @@ class Committer
       end
     end
 
+    # Get project(owner) details
+    person.project_owners.map(&:name).each do |project|
+      if pmc_names.include? project
+        response[:committees] << project
+      elsif podlings.include? project
+        response[:podlings] << project
+      else
+        # TODO should this populate anything?
+      end
+    end
+
     # Get project(member) details
     person.projects.map(&:name).each do |project|
       if pmc_names.include? project
-          # Don't show committer karma if person has committee karma
-          unless response[:committees].include? project
-            # LDAP project group
-            response[:committer] << project
-          end
+        # LDAP project group
+        response[:committer] << project
       elsif podlings.include? project
         response[:podlings] << project
       else
@@ -117,6 +124,10 @@ class Committer
     response[:groups].sort!
     response[:committer].sort!
     response[:podlings].sort!
+    response[:committees].uniq!
+    response[:groups].uniq!
+    response[:committer].uniq!
+    response[:podlings].uniq!
 
     member = {} # collect member info
 
@@ -235,6 +246,7 @@ class Committer
       response[:chairOf] << pmc.name if pmc.chairs.map{|ch| 
ch[:id]}.include?(person.id)
     end
     response[:pmcs].sort!
+    response[:pmcs].uniq!
 
     response[:nonPMCchairOf] = [] # use separate list to avoid missing 
pmc-chair warnings
     nonpmcs = ASF::Committee.nonpmcs
@@ -243,6 +255,7 @@ class Committer
       response[:nonPMCchairOf] << nonpmc.name if nonpmc.chairs.map{|ch| 
ch[:id]}.include?(person.id)
     end
     response[:nonpmcs].sort!
+    response[:nonpmcs].uniq!
 
     response
   end

Reply via email to