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

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


The following commit(s) were added to refs/heads/master by this push:
     new d43d842  prep for 20220615 special members meeting
d43d842 is described below

commit d43d8429921124819b5298f98190507ef8bf6a56
Author: Sam Ruby <[email protected]>
AuthorDate: Thu Mar 17 19:18:38 2022 -0400

    prep for 20220615 special members meeting
---
 www/members/meeting-util.rb |  7 ++++++-
 www/members/proxy.cgi       | 43 +++++++++++++++++++++++++++++++++++++------
 2 files changed, 43 insertions(+), 7 deletions(-)

diff --git a/www/members/meeting-util.rb b/www/members/meeting-util.rb
index d61cb11..5faaa08 100644
--- a/www/members/meeting-util.rb
+++ b/www/members/meeting-util.rb
@@ -27,7 +27,11 @@ class MeetingUtil
   # Calculate how many members required to attend first half for quorum
   def self.calculate_quorum(mtg_dir)
     begin
-      num_members = File.read(File.join(mtg_dir, 'record')).each_line.count
+      begin
+        num_members = File.read(File.join(mtg_dir, 'record')).each_line.count
+      rescue
+        num_members = ASF::Member.list.length - ASF::Member.status.length
+      end
       quorum_need = (num_members + 2) / 3
       num_proxies = Dir[File.join(mtg_dir, 'proxies-received', '*')].count
       attend_irc = quorum_need - num_proxies
@@ -118,6 +122,7 @@ class MeetingUtil
     attendance['cohorts'] = {}
     attendance['unmatched'] = []
     attendance['members'].each do |date, ary|
+      next unless date.start_with? '20' # exclude 'active'
       ary.each do |nam|
         found = iclas.select{|i| i.icla.legal_name == nam}
         found = iclas.select{|i| i.icla.name == nam} if found.empty?
diff --git a/www/members/proxy.cgi b/www/members/proxy.cgi
index c9b8414..cb94071 100755
--- a/www/members/proxy.cgi
+++ b/www/members/proxy.cgi
@@ -21,6 +21,7 @@ def emit_instructions(today, cur_mtg_dir, meeting)
         Data from the previous meeting on #{meeting} is shown below for 
debugging only.
       }
   end
+  if meeting != '20220615'
   _p %{
     This form allows you to assign a proxy for the upcoming
     Member's Meeting on #{meeting}. If there is any chance you might not be 
able
@@ -45,6 +46,28 @@ def emit_instructions(today, cur_mtg_dir, meeting)
     _code 'proxies'
     _ ' file.  The great majority of proxies assigned are for attendance only; 
not for voting.'
   end
+  else
+  _p do
+    _ "This form allows you to assign a proxy for the upcoming"
+    _ "Member's Meeting on #{meeting}. For this meeting, we encourage"
+    _strong 'every'
+    _ "ASF member to assign a proxy to the ASF Secretary."
+    _ "Attendance to the meeting is completely optional, and you can revoke a"
+    _ "proxy at any time."
+  end
+  _p %{
+    If you submit a proxy, you will still be sent ballots by email,
+    so you will still need to
+    cast your votes by checking your mail and clicking the links.
+  }
+  _p do
+    _ 'Note while the legal proxy form below states your proxy may have your 
voting rights, in practice '
+    _strong 'you will still be emailed your ballots'
+    _ ' unless you explicitly mark a \'*\' in the appropriate place in the '
+    _code 'proxies'
+    _ ' file.  The great majority of proxies assigned are for attendance only; 
not for voting.'
+  end
+  end
   num_members, quorum_need, num_proxies, attend_irc = 
MeetingUtil.calculate_quorum(cur_mtg_dir)
   if num_members
     _p do
@@ -57,7 +80,7 @@ def emit_instructions(today, cur_mtg_dir, meeting)
 end
 
 # Emit meeting data and form for user to select a proxy - GET
-def emit_form(cur_mtg_dir, _meeting, volunteers, disabled)
+def emit_form(cur_mtg_dir, meeting, volunteers, disabled)
   help, copypasta = MeetingUtil.is_user_proxied(cur_mtg_dir, $USER)
   user_is_proxy = help && copypasta
   _whimsy_panel(user_is_proxy ? "You Are Proxying For Others" : "Select A 
Proxy For Upcoming Meeting", style: 'panel-success') do
@@ -107,14 +130,18 @@ def emit_form(cur_mtg_dir, _meeting, volunteers, disabled)
               map {|name| name[/(\w+)\.\w+$/, 1]}
 
             _select.combobox.input_large.form_control name: 'proxy' do
-              _option 'Select an ASF Member', :selected, value: ''
+              if meeting != '20220615'
+                _option 'Select an ASF Member', :selected, value: ''
+              end
+
               ldap_members.sort_by(&:public_name).each do |member|
                 next if member.id == $USER               # No self proxies
                 next if exclude.include? member.id       # Not attending
                 next unless members_txt[member.id]       # Non-members
                 next if members_txt[member.id]['status'] # Emeritus/Deceased
                 # Display the availid to users to match volunteers array above
-                _option "#{member.public_name} (#{member.id})"
+                _option "#{member.public_name} (#{member.id})",
+                  selected: (meeting == '20220615' && member.id == 
'mattsicker')
               end
             end
           end
@@ -124,7 +151,11 @@ def emit_form(cur_mtg_dir, _meeting, volunteers, disabled)
               _a 'Read full procedures for Member Meeting', href: 
'https://www.apache.org/foundation/governance/members.html#meetings'
             end
             _div.button_group.text_center do
-              _button.btn.btn_primary 'Submit', disabled: disabled
+              if disabled
+                _button.btn.btn_primary 'Submit', :disabled
+              else
+                _button.btn.btn_primary 'Submit'
+              end
             end
           end
         end
@@ -141,8 +172,8 @@ def emit_form(cur_mtg_dir, _meeting, volunteers, disabled)
     // convert select into combobox
     $('.combobox').combobox();
 
-    // initially disable submit
-    $('.btn').prop('disabled', true);
+    // disable submit until a value is selected
+    if ($('.combobox').val() == '') $('.btn').prop('disabled', true);
 
     // enable submit when proxy is chosen
     $('*[name="proxy"]').change(function() {

Reply via email to