summaryrefslogtreecommitdiff
path: root/Mailman/HTMLFormatter.py
Commit message (Collapse)AuthorAgeFilesLines
* FormatDisabledNotice(): If the user has been disabled due to bounces,bwarsaw2001-12-271-0/+12
| | | | | | | they'll have a bounce info record, and if that record has a score above 0, we'll add a little bit of information to their options page explaining their current bounce score and some advice for fixing the problem.
* FormatUsers(), FormatOptionButton(), FormatDisabledNotice(): Usebwarsaw2001-12-191-8/+22
| | | | | | getDeliveryStatus() instead of getMemberOption(). Also, tailor the disable notification based on the actual status -- gives more detail about how the membership was actually disabled.
* FormatEditingOptions(): Let's actually /use/ the lang argument to addbwarsaw2001-11-301-14/+19
| | | | | | | | | | | | a hidden field so that the language choice can be propagated to the options page. RosterOption(): Same, for the roster page. GetLangSelectBox(): Factor out the creation of the language selection widget, since other code will need the same thing. GetStandardReplacements(): Use GetLangSelectBox().
* FormatEditingOptions(): Make the text box's name "email" so as to hookbwarsaw2001-10-121-1/+1
| | | | up with what options.py expects.
* GetMailmanFooter(): A fix by (I believe) Mikhail Sobolev to makebwarsaw2001-10-091-3/+4
| | | | Russian translation easier.
* FormatUsers(): Don't use string interpolation to pluralize the wordbwarsaw2001-10-011-13/+11
| | | | | | "member". This makes translation to some languages difficult. Instead, construct different messages based on whether num_concealed is == 1 or > 1.
* GetMailmanFooter(): Don't hyperlink each individual list owner with abwarsaw2001-08-291-8/+5
| | | | | | | mailto: to their personal email address. Instead, hyperlink the lot of them with a mailto: to the list's -owner address. That let's us do a spam detect on the message before forwarding on the owners.
* FormatSubscriptionMsg(): Use triple quoted strings instead ofbwarsaw2001-08-171-36/+25
| | | | multiline individual strings.
* GetMailmanFooter(): Add a link to the listinfo overview page for thebwarsaw2001-08-021-12/+16
| | | | | | | | | | domain. From there you can get to the admin overview. FormatEditingOption(): Remove the docstring. Also, rework the glomming up of the text local variable to be more efficient, and to emphasize that the same field/button should be used to quickly unsubscribe from the list. Also, indicate what happens if you leave the field blank.
* All membership related attribute access should use the MemberAdaptorbwarsaw2001-07-191-11/+13
| | | | | | | | | | | | | API instead, e.g. GetDigestMembers() -> getDigestMemberKeys() GetUserOption() -> getMemberOption() GetMembers() -> getRegularMemberKeys() FormatOptionButton(): Add ReceiveNonmatchingTopics flag. FormatBox(): Add optional `value' parameter, which if supplied is the default value for teh input box (default is the empty string).
* GetStandardReplacements(): When displaying the selected language,bwarsaw2001-06-271-2/+5
| | | | | first try to get the index of the explicit argument, falling back to the list's preferred language, and the server's default.
* RestrictedListMessage(): Fixed a typo (missing open paren), andbwarsaw2001-06-011-4/+5
| | | | converted to multiline strings for ease of translation.
* FormatOptionButton(): Formatting, but also change the 'passwdremind'bwarsaw2001-05-311-22/+20
| | | | | | | | value to 'remind'. FormatDisabledNotice(): Cleaned up the text message by using multi-line strings and string interpolation. This should also improve the ability for these messages to be translated into Japanese.
* FormatOptionButton(): Teach this about the SuppressPasswordReminderbwarsaw2001-05-251-9/+9
| | | | user option.
* Removed some unnecessary imports.bwarsaw2001-05-181-4/+1
|
* InitVars(): Removed, since self._template_dir is no longer necessarybwarsaw2001-05-181-43/+1
| | | | | | | | | | | | | | | | and all references to this volatile instance variable have been removed. SnarfHTMLTemplate(): Also removed, since maketext() does all this in a more general way. ParseTags(): Use Utils.maketext() instead of SnarfHTMLTemplate(). InitTemplates(): Because of the new support for expanded template searches, the only thing that's necessary for a list to support a language is for it to have a (possibly empty) directory named after the language code. Thus, the copying of template files done in this method are unnecessary.
* Porting forward from 2.0.4 a patch to replace the deprecated regsubbwarsaw2001-05-011-14/+13
| | | | | | module with re. This quiets a Python 2.1 warning. Also, de-string-module-ification.
* FormatUsers(): Use GetOptionsURL() instead of GetScriptURL() since thebwarsaw2001-03-031-2/+1
| | | | | | former does the proper urllib.quote()'ing of the email address. Close SF bug #214161 (old Jitterbug PR#198).
* InitTemplates(): Copy both the .html and the .txt files into thebwarsaw2001-03-021-2/+3
| | | | list-specific language templates directory.
* Untabification.bwarsaw2001-02-281-119/+119
|
* Next round of big i18n patches.bwarsaw2001-02-281-18/+19
| | | | | | Added some missing _() wrappers. Fix some _() wrappings to use local variables.
* SnarfHTMLTemplate(): Don't try to fall back to lists/<listname>/ tobwarsaw2001-02-231-11/+4
| | | | | | find the template if lists/<listname>/<lang> doesn't exist. The update script now creates the `en' language subdir and moves all the templates into it.
* InitTemplates(): Simply by using some Python 2.0-isms and the shutilbwarsaw2001-02-161-18/+22
| | | | | module. Also, default to getting the source templates out of $MM/templates if $MM/templates/<lang> doesn't exist.
* Some additional i18n markup, although I can't remember if this is Juanbwarsaw2001-02-151-25/+40
| | | | | | | | | | | | | | | | | | Carlos's contribution or not. Specifically, GetMailmanFooter(), FormatSubscriptionMsg(), FormatEditingOption(): Mark some strings as translatable, using the Mailman.i18n._ `auto-interpolating' function. SnarfHTMLTemplate(): Catch IOErrors which could result if a list was created in an older version of Mailman before the i18n support was added. GetStandardReplacements(): Watch out for missing list preferred language (can happen to an older list which hasn't been updated). Use DEFAULT_SERVER_LANGUAGE in that case. InitTemplates(): Some additional code reorg.
* Latest round of jcrey's I18N patches. Specifically,bwarsaw2000-12-261-100/+123
| | | | | | | | Mark lots of strings as translatable. SnarfHTMLTemplate(), FormatUsers(), FormatEditingOption(), FormatReminder(), GetStandardReplacements(), GetAllReplacements(), InitTemplates(): Accept optional `lang' argument.
* GetMailmanFooter(): Add a link to the administrative interface to eachbwarsaw2000-09-091-1/+5
| | | | | list footer. Makes it much easier to get to the admin pages from the normal user pages.
* InitVars(): Use self.internal_name()bwarsaw2000-08-011-7/+5
| | | | | GetMailmanFooter(), FormatUsers(), FormatFormStart(): GetRelativeScriptURL() => GetScriptURL()
* FormatFormStart(): Use GetScriptURL(relative=1) for calculating thebwarsaw2000-07-251-1/+1
| | | | action path. SF Patch #100556.
* Update the copyright lines to include the years 1999 & 2000.bwarsaw2000-03-211-1/+1
|
* AcknowlegePosts => AcknowledgePostsbwarsaw1999-11-241-7/+7
|
* eradicate "maillist" as a nounbwarsaw1999-05-051-3/+3
|
* GetMailmanFooter(): Factor out logo creation by using MailmanLogo()bwarsaw1999-05-021-8/+2
| | | | function.
* GetMailmanFooter(): DELIVERED_BY_URL can be false. This will justbwarsaw1999-05-021-3/+7
| | | | print the text and not include an img tag.
* GetMailmanFooter(): New HTML to include the logo image w/ link tobwarsaw1999-05-021-4/+4
| | | | | www.list.org (including alt text). Logo location comes from DELIVERED_BY_URL variable.
* RosterOption(): get rid of repeated word ("address address")bwarsaw1999-03-261-1/+3
|
* Put the listinfo URL in the footer, so it can be clicked *somewhere*klm1999-03-151-3/+4
| | | | | | 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.)
* New standard replacement, mm-host.klm1998-12-171-0/+1
|
* This is a simple change that limits the extremely expensivecotton1998-11-231-3/+11
| | | | | | | | | | | 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
* optimized FormatUsers() a bit.cotton1998-11-211-24/+23
|
* This change implements storing list members and digest members ascotton1998-11-191-8/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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%------------------------------------------- ?
* made FormatFormStart use AbsoluteScript URL because it was returning acotton1998-11-121-1/+1
| | | | | bogus url for handle_opts (one nesting level too high). scott
* integrated g. steins's mailman reminder patch, so that listinfo.htmlcotton1998-11-101-2/+12
| | | | | | now only states that "your password will be mailed to you once a month" if the list is set to do that. scott
* os.path.join -> %s/%s for urls.cotton1998-11-091-3/+7
| | | | | bug reported by greg stein scott
* .FormatUmbrellaNotice(): Cut-and-paste problem was breaking use ofklm1998-10-171-1/+1
| | | | | | 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?)
* MailList.GetMemberAdminEmail(): New routine to identify the adminklm1998-10-171-3/+2
| | | | | | | | | | | 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.
* .FormatUmbrellaNotice(): for options page, warning people hitting theklm1998-10-171-0/+17
| | | | | send-password button that the password is going to the owner address, and why...
* Fixed references to old variables that should now be subscribe_policy.viega1998-10-111-3/+11
|
* InitTempVars(): Two changes, first after our conversation at lunch, Ibwarsaw1998-07-221-3/+3
| | | | | | | believe this should be InitVars(). Second, I move the list's HTML template files into $prefix/lists/<listname>. SnarfHTMLTemplate(): Call InitVars() instead of InitTempVars()
* .InitTempVars(): Use the default templates for anonymous lists.klm1998-07-011-2/+5
| | | | | | (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.)
* Convert all module names to their new names.bwarsaw1998-06-191-5/+8
| | | | Removed RCS crud