summaryrefslogtreecommitdiff
path: root/Mailman/HTMLFormatter.py (follow)
Commit message (Collapse)AuthorAgeFilesLines
* ParseTags(): Python will barf when trying to string-join a sequence ifbwarsaw2002-09-171-1/+8
| | | | | | | all the strings aren't properly encoded. To make life as easy as possible, make sure that all the items in the split sequence are 8-bit strings, encoded if necessary in the charset of the language given in the argument list.
* FormatDisabledNotice(): Include in bounce reasons, the date of thebwarsaw2002-08-021-1/+5
| | | | last received bounce.
* GetStandardReplacements(): Patch by Juan Carlos Rey Anaya to fix i18nbwarsaw2002-07-031-1/+1
| | | | display when only one language is available.
* FormatSubscriptionMsg(): Fix missing space. Closes bug #555065 bybwarsaw2002-05-281-2/+4
| | | | Simone Piunno.
* GetStandardReplacements(), MailmanLogo(), IMAGE_LOGOS, SHORTCUT_ICON:bwarsaw2002-04-211-2/+4
| | | | | | | | | Clarify the semantics of all these settings. Setting IMAGE_LOGOS to 0 is the only way to suppress the sponsor images, but this also suppresses the favicon. You should now never set SHORTCUT_ICON to 0 (it should always be the string naming the favicon file). Closes SF bugs # 546421 and 546418.
* GetStandardReplacements(): If there's just one choice of language,bwarsaw2002-04-111-1/+1
| | | | return the lang description as a non-selectable string.
* GetAdminEmail() eradication campaign.bwarsaw2002-03-261-1/+1
| | | | | | | | GetStandardReplacements(): Expand <mm-owner> tags to the -owner address. This is more appropriate than the -bounces address because it reaches the human without going through the bounce processor. Since this ends up in a message that a human will act on, it's the correct address to use.
* Feedback from Guido...bwarsaw2002-03-231-1/+7
| | | | | | | | | | | | | | | | | | | | listinfo.py list_listinfo(): If the list only has one language enabled, omit the language choice box. It's a waste of screen real-estate. HTMLFormatter GetStandardReplacements(): ditto options.py loginpage(): ditto. Also omit the paragraph that talks about session cookies. It's probably over the heads of most users. main(): Don't print the "No address given" if we're traveling here from the listinfo page and they left the address field blank, as per the instructions.
* GetStandardReplacements(): Add <mm-favicon> for a url replacement inbwarsaw2002-03-221-0/+1
| | | | the head's LINK SHORTCUT ICON.
* Patches to support duplicate suppression for explicit recipients,bwarsaw2002-03-051-1/+2
| | | | | | | | | | | written by Ben Gertzfield, ported to MM2.1 by Marc MERLIN. Specifically, FormatOptionButton(): Add DontReceiveDuplicates to the list of options names. (Also, untabbification)
* GetStandardReplacements(): Be sure to pass the lang argument to thebwarsaw2002-02-051-2/+2
| | | | | | GetLangSelectBox() call for the <mm-list-langs> replacement, otherwise a user's option page will always reset the user's language to the list's preferred language.
* 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
|