summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbwarsaw2001-07-29 19:01:47 +0000
committerbwarsaw2001-07-29 19:01:47 +0000
commit4fc1513debf661abab10b41ed76a90832bddc428 (patch)
tree9558bd3366e3afed2990a9b3dd608c41b8a5a44c
parent409c2af09d5d44222d2e97de46b8adae78b385a9 (diff)
downloadmailman-4fc1513debf661abab10b41ed76a90832bddc428.tar.gz
mailman-4fc1513debf661abab10b41ed76a90832bddc428.tar.zst
mailman-4fc1513debf661abab10b41ed76a90832bddc428.zip
Another step towards conversion to MemberAdaptor API.
GetPreferredLanguage() -> getMemberLanguage(). Note this isn't finished yet since there are still some direct access to mlist.members. :( Use the UserDesc helper class. membership_options(): When calculating the length of the realname field, include the email addresses. Since this fits in the same table cell, the text box should be the max of the email addresses or realnames. Also, always include the realname TextBox, even if there is no realname for the user.
-rw-r--r--Mailman/Cgi/admin.py25
1 files changed, 11 insertions, 14 deletions
diff --git a/Mailman/Cgi/admin.py b/Mailman/Cgi/admin.py
index 4882ca5f3..4c4f4959e 100644
--- a/Mailman/Cgi/admin.py
+++ b/Mailman/Cgi/admin.py
@@ -38,6 +38,7 @@ from Mailman import MailList
from Mailman import Errors
from Mailman import MailCommandHandler
from Mailman import i18n
+from Mailman.UserDesc import UserDesc
from Mailman.htmlformat import *
from Mailman.Cgi import Auth
from Mailman.Logging.Syslog import syslog
@@ -805,17 +806,16 @@ def membership_options(mlist, cgidata, doc, form):
longest = 0
if members:
names = filter(None, [mlist.getMemberName(s) for s in members])
- if names:
- longest = max([len(s) for s in names])
+ # Make the name field at least as long as the longest email address
+ longest = max([len(s) for s in names + members])
# Now populate the rows
for addr in members:
link = Link(mlist.GetOptionsURL(addr, obscure=1),
mlist.getMemberCPAddress(addr))
fullname = mlist.getMemberName(addr)
- if fullname:
- name = TextBox(addr + '_realname', fullname, size=longest).Format()
- else:
- name = ''
+ if fullname is None:
+ fullname = ''
+ name = TextBox(addr + '_realname', fullname, size=longest).Format()
cells = [link.Format() + '<br>' +
name +
Hidden('user', urllib.quote(addr)).Format(),
@@ -831,6 +831,7 @@ def membership_options(mlist, cgidata, doc, form):
checked = 0
box = CheckBox('%s_%s' % (addr, opt), value, checked)
cells.append(Center(box).Format())
+ # FIXME: use MemberAdaptor interface
if mlist.members.has_key(addr):
cells.append(Center(CheckBox(addr + '_digest', 'off', 0).Format()))
else:
@@ -844,7 +845,7 @@ def membership_options(mlist, cgidata, doc, form):
checked = 0
cells.append(Center(CheckBox('%s_plain' % addr, value, checked)))
# User's preferred language
- langpref = mlist.GetPreferredLanguage(addr)
+ langpref = mlist.getMemberLanguage(addr)
langs = mlist.GetAvailableLanguages()
langdescs = [_(Utils.GetLanguageDescr(lang)) for lang in langs]
try:
@@ -1178,13 +1179,9 @@ def change_options(mlist, category, cgidata, doc):
subscribe_errors = []
subscribe_success = []
- # for satisfying the ApprovedAddMember() interface
- class UserDesc: pass
-
for entry in entries:
- userdesc = UserDesc()
- userdesc.fullname, userdesc.address = parseaddr(entry)
- userdesc.digest = digest
+ fullname, address = parseaddr(entry)
+ userdesc = UserDesc(address, fullname, digest=digest)
try:
mlist.ApprovedAddMember(userdesc, send_welcome_msg,
send_admin_notif)
@@ -1279,7 +1276,7 @@ def change_options(mlist, category, cgidata, doc):
mlist.setMemberName(user, newname)
newlang = cgidata.getvalue(user+'_language')
- oldlang = mlist.GetPreferredLanguage(user)
+ oldlang = mlist.getMemberLanguage(user)
if newlang and newlang <> oldlang:
mlist.setMemberLanguage(user, newlang)