| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
| |
on the page. (It should be available on the top, even more, but i
don't see how to do so without cluttering at the moment, and my
connection is so low band that i can't scope it out right now.)
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
| |
calculation of html user lists to the roster cgi program.
HTMLFormatter: added a .GetAllReplacements() method that does the same
thing as GetStandardRepplacements() but also calculates all the html
for users lists. Removed the calculation of all the html for the user
lists from GetStandardReplacements().
Cgi/roster.py replaced call of GetStandardReplacements() with
GetAllReplacements().
scott
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
dicts instead of lists, which optimizes Utils.FindMatchingAddresses
and general membership management, especially for large lists.
MailList.py now supplies .GetMembers() and .GetDigestMembers() to
supply the data in list form to anything that needs it that way.
An new install showed this worked fine with some cursory testing of
the cgi's and interactive poking around.
A detailed listing of the changes follows:
Mailman/Defaults.py.in: change data version to 11
Mailman/Digester.py: initvars now instantiates digest_members as {}
instead of []
lines 113-114 and 121-122 now use del
This change implements storing list members and digest members as
dicts instead of lists, which optimizes Utils.FindMatchingAddresses
and general membership management, especially for large lists.
MailList.py now supplies .GetMembers() and .GetDigestMembers() to
supply the data in list form to anything that needs it that way.
Though INSTALL shows up on the changed files section, a diff a few
seconds ago didn't show any differences in that file, so I hope nobody
changed it in the interim.
An new install showed this worked fine with some cursory testing of
the cgi's and interactive poking around.
A detailed listing of the changes follows:
Mailman/Defaults.py.in: change data version to 11
Mailman/Digester.py: initvars now instantiates digest_members as {}
instead of []
lines 113-114 and 121-122 now use del
list.[digest_]member instead of
list.[digest_]members.remove
when figuring who to actually send digests to,
use list.GetDigestMembers() instead of
list.digest_members.
Mailman/HTMLFormatter: now uses list.Get[Digest]Members to get
subscribers, and length of digested subscribers
and regular members
MailCommandHandler, SecurityManager,Cgi/handle_opts, Cgi/options: all
simple replacements of list.[digest_]members with
list.Get[Digest]Members().
Mailman/Cgi/admin.py: mostly simple replacements of
list.[digest_]members with the Get..() methods, however, the
membership management section now works much quicker and changes
digest->nodigest subscriptions via dictionary manipulations.
Mailman/versions.py: updates lists to use dicts and changed
list.[digest_]members to use the list.Get[Digest]Members() methods.
Mailman/Utils.py: added a function "GetPossibleMatchingAddresses"
which when fed an address, returns the list of addresses that "smart"
address matching would match.
changed FindMatchingAddresses(name, list) to use a new signature:
FindMatchingAddresses(name, *dicts), where dicts is a list of
dictionaries keyed by addresses. Just realized that this would better
be FindMatchingAddresses(name, dict, *dicts) so that it enforces
atleast 2 args... I'll make that change in a sec.
All uses of FindMatchingAddresses have been changed to fit the new
arguments.
scott
----:**-F1 cvs30458aaa 1:12PM 0.98 Mail (Text Fill)--L59--32%-------------------------------------------
?
|
| |
|
|
|
| |
bogus url for handle_opts (one nesting level too high).
scott
|
| |
|
|
|
|
| |
now only states that "your password will be mailed to you once a
month" if the list is set to do that.
scott
|
| |
|
|
|
| |
bug reported by greg stein
scott
|
| |
|
|
|
|
| |
umbrellafied member address, and this was hidden by the lynx web page
cache until i extended my testing to another page. (I wonder if
there's a way to reduce the rather aggressive caching that lynx does?)
|
| |
|
|
|
|
|
|
|
|
|
| |
address for a member - trivially just the members regular address
*unless* we're talking about the member of an umbrella list, in which
case it has the umbrella_member_suffix appended to the account part of
the addr.
This is used everywhere that i was duplicating the functionality in my
last round of checkins, including a few places in MailLists.py as well
as the other files.
|
| |
|
|
|
| |
send-password button that the password is going to the owner address,
and why...
|
| | |
|
| |
|
|
|
|
|
| |
believe this should be InitVars(). Second, I move the list's HTML
template files into $prefix/lists/<listname>.
SnarfHTMLTemplate(): Call InitVars() instead of InitTempVars()
|
| |
|
|
|
|
| |
(Previously, mailman would crash when InitTempVars() was trying to
construct the _template_dir setting by concatenating the TEMPLATE_DIR
with the None setting for self._internal_name.)
|
| |
|
|
| |
Removed RCS crud
|
| | |
|
| |
|
|
|
| |
relative paths, mainly GetScriptURL->the appropriate replacement.
Now I'm done w/ checkins, and I'm going to test the current snapshot.
|
| | |
|
| |
|
|
|
|
|
| |
do so.
Added a copy of the GNU GPL.
Added information about mailman-users in README, and reworded some text in there (made the credits less verbose... perhaps they should move to a credits file?)
|
| |
|
|
|
|
|
|
|
| |
prominently point out when the user's delivery is disabled. (When a
user's email is disabled due to bounces, they probably would not
notice the checked button way down the page.)
Using "from htmlformat import *" to simplify references to formatting
objects.
|
| | |
|
| |
|
|
| |
"subscriber's list".
|
| |
|
|
| |
__version__ info.
|
| |
|
|
|
| |
formatting of roster object into separate functions, so the object
could be used elsewhere.
|
| |
|
|
| |
replacement item which informs people when the archive is restricted.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The listinfo page now presents a button to get there, and
authentication blanks when the list has a private roster of
subscribers. This entailed several changes in mm_html, including new
methods:
- .FormatEditingOption() - Bound to a form replacement to provide the
html for the options editing text. Conditionalized to mention the
ability to get to user options editing via the subscriber's roster,
depending on list privacy options.
- .FormatRosterOptionForUser() - Another routine called via text
replacements, inserts the text for visiting the roster according to
list privacy settings.
One nice side effect is that now private list members *can* see the
list membership over the web, via entering their authentication info.
(Only the admin can see the members of an anonymous list, but they can
do that via the web form.)
|
| |
|
|
|
| |
storage on the list.
them before presenting an ordered list.
|
| |
|
|
| |
italicizing their entry and putting it between parens.
|
| |
|
|
|
|
|
|
| |
concurrent mm_defaults.py checkin for details.
Added FormatSubscriptionMsg(), which generates text describing the
current list's subscription approval, roster privacy, and post vetting
policies.
|
| | |
|
| |
|
|
| |
Wrap long line.
|
| |
|
|
|
|
|
|
|
| |
mode the default for digests. Added .Format{Mime,Plain}DigestsButton
methods.
Using _base_archive_url for FormatArchiveAnchor, instead of
GetScriptURL("archives"), which assumes the archives are in the
mailman hierarchy.
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
any.
|
| |
|
|
|
|
| |
the email address from web spiders, to thwart spam address scrapers.
The url passed to the options script is always transfored, but the id
presented textually only is when list.obscure_addresses is set.
|
| |
|
|
| |
Wrap some long lines.
|
| |
|