You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@whimsical.apache.org by Sam Ruby <ru...@apache.org> on 2016/03/06 08:33:05 UTC

[whimsy.git] [1/1] Commit fb40f7c: cross-check names

Commit fb40f7cfa6ff55d562cea43a4238d1ca2a0278a4:
    cross-check names


Branch: refs/heads/master
Author: Sam Ruby <ru...@intertwingly.net>
Committer: Sam Ruby <ru...@intertwingly.net>
Pusher: rubys <ru...@apache.org>

------------------------------------------------------------
www/members/nominations.cgi                                  | ++++++++++ ----
------------------------------------------------------------
27 changes: 19 additions, 8 deletions.
------------------------------------------------------------


diff --git a/www/members/nominations.cgi b/www/members/nominations.cgi
index b5301a3..2af00ba 100755
--- a/www/members/nominations.cgi
+++ b/www/members/nominations.cgi
@@ -25,7 +25,7 @@ archive.each do |email|
   next unless subject.upcase.include? "MEMBER NOMINATION"
   mail = Mail.new(message)
   next if mail.subject.downcase == 'member nomination process'
-  emails << mail if mail.subject =~ /^\[?MEMBER NOMINATION]?/i
+  emails << mail if mail.subject =~ /^\[?MEMBER NOMINATION\]?/i
 end
 
 # parse nominations for names and ids
@@ -41,6 +41,10 @@ nominations.map! do |line|
   {name: line.gsub(/<.*|\(\w+@.*/, '').strip, id: line[/([.\w]+)@/, 1]}
 end
 
+# preload names
+people = ASF::Person.preload('cn', 
+  nominations.map {|nominee| ASF::Person.find(nominee[:id])})
+
 # location of svn repository
 svnurl = `cd #{meeting}; svn info`[/URL: (.*)/, 1]
 
@@ -67,26 +71,33 @@ _html do
   _div.flexbox do
     _div.flexitem do
       _h1_! do
-        _a 'Nominations', href: 'watch/nominees'
+        _a 'Nominees', href: 'watch/nominees'
         _ ' in '
         _a 'svn', href: File.join(svnurl, 'nominated-members.txt')
       end
 
       _p.count "Count: #{nominations.count}"
 
-      _ul nominations.sort_by {|person| person[:name]} do |person|
+      _ul nominations.sort_by {|nominee| nominee[:name]} do |nominee|
         _li! do
-          match = /\b#{person[:name]}\b/i
+          person = ASF::Person.find(nominee[:id])
+          match = /\b(#{nominee[:name]}|#{person.public_name})\b/i
+
           if emails.any? {|mail| mail.subject.downcase =~ match}
-            _a.present person[:name], href: "#{ROSTER}/#{person[:id]}"
+            _a.present person.public_name, href: "#{ROSTER}/#{nominee[:id]}"
           else
-            _a.missing person[:name], href: "#{ROSTER}/#{person[:id]}"
+            _a.missing person.public_name, href: "#{ROSTER}/#{nominee[:id]}"
+          end
+
+          if nominee[:name] != person.public_name
+            _span " (as #{nominee[:name]})"
           end
         end
       end
     end
 
-    nominations.map! {|person| person[:name].downcase}
+    nominees = nominations.map! {|person| person[:name]}
+    nominees += people.map {|person| person.public_name}
 
     _div.flexitem do
       _h1_.posted! do
@@ -108,7 +119,7 @@ _html do
           href = MBOX + mail.date.strftime('%Y%m') + '.mbox/' + 
             URI.escape('<' + mail.message_id + '>')
 
-          if nominations.any? {|name| mail.subject.downcase =~ /\b#{name}\b/}
+          if nominees.any? {|name| mail.subject =~ /\b#{name}\b/i}
             _a.present mail.subject, href: href
           else
             _a.missing mail.subject, href: href