summaryrefslogtreecommitdiff
path: root/Mailman
Commit message (Collapse)AuthorAgeFilesLines
...
* Update a comment.bwarsaw2002-11-191-0/+2
|
* dequeue(): "rejection-notice" (i.e. the dash) doesn't play nice whenbwarsaw2002-11-191-0/+6
| | | | | | METADATA_FORMAT = METAFMT_ASCII. Because of patch #567288 by Maximillian Dornseif, we have to upgrade the schema of any metadata files (i.e. rejection-notice -> rejection_notice).
* hold_for_approval(): "rejection-notice" (i.e. the dash) doesn't playbwarsaw2002-11-191-1/+1
| | | | | nice when METADATA_FORMAT = METAFMT_ASCII. This is part of patch #567288 by Maximillian Dornseif.
* show_post_requests(): "rejection-notice" (i.e. the dash) doesn't playbwarsaw2002-11-191-1/+1
| | | | | nice when METADATA_FORMAT = METAFMT_ASCII. This is part of patch #567288 by Maximillian Dornseif.
* process(): Patch #625482 by Tokio Kikuchi to properly MIME encode thebwarsaw2002-11-191-23/+33
| | | | | | List-Id header when we add the mailing list's description. uheader(), prefix_subject(): Refactored.
* GetConfigInfo(): "addrs" -> "addresses" in the obscure_addressesbwarsaw2002-11-191-2/+2
| | | | | description. This will require catalog updates. Patch #605146 by Jon Parise.
* RestrictedListMessage(), RosterOption(), GetStandardReplacements():bwarsaw2002-11-191-5/+6
| | | | | Applied patch #600368 by Simone Piunno to ease translations for some languages.
* quick_maketext(): Copy the body of the try: from Utils.maketext() forbwarsaw2002-11-181-8/+14
| | | | | | | | | | | | completeness (this really needs to be refactored). Article.as_html(): Set the encoding of the page to the list's preferred encoding, which seems to make the headers and bodies come out okay when mixing languages -- at least as in the minimal testing I've been able to do. Woo boy, I'm really not positive about this change and would love a second opinion. Martin?
* Simplification and fixes for i18n in the archives. This is related tobwarsaw2002-11-181-62/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | SF patch #634303, but I think it's better because it actually removes code instead of adding it. We'll see what kind of holes Martin shoots through my optimism. ;) Specifically, unicode_quote() -> Utils.uquote() everywhere quick_maketext(): We can get rid of the `raw' argument since we're never going to wrap html text here. Also, put in a defense for lang=None and mlist=None (although in practice that doesn't happen). Finally -- and this is the key -- pass the interpolated text through Utils.uncanonstr() so that what we get back will be a unicode, with any characters outside the lang's charset html-ified. I think this simplifies matters by always encoding the indices to the charset of the list's preferred language, at the expense of potentially larger pages (which I don't care about). html_TOC(): Add a http-equiv meta tag indicating the charset of this page, which should fix display for the table of contents. Note that the various archtoc.html templates need updating but I will check those changes in next. HyperArchive.add_article(), .choose_charset(), .update_dirty_archives(): Removed.
* uquote(): Factored out the html-ifying of a string from uncanonstr()bwarsaw2002-11-181-9/+12
| | | | since the same code was essentially shared in the archiver.
* membership_options(): Don't assume the environment has QUERY_STRING.bwarsaw2002-11-181-28/+30
|
* maketext(): If the interpolation fails with a UnicodeError, we try tobwarsaw2002-11-181-1/+7
| | | | | | | | | unicode-ify the template and try the interpolation again. The error can occur if the template has non-ascii characters in it and one of the interpolation values is a unicode. This was getting swallowed because UnicodeError is a subclass of ValueError.
* SafeDict.interpolate(): Added for convenience.bwarsaw2002-11-181-4/+7
|
* process(): Implement a header/footer MIME wrapper for problematicbwarsaw2002-11-171-13/+52
| | | | | | | | | | message types. For compatible text/plain and multipart/mixed message, we still attach in the easiest way. For other types we'll wrap the whole message in a MIME multipart/mixed encapsulation. The outstanding question is which headers to copy from the outer message to the inner message. Currently we do just the Content-* headers.
* list_listinfo(): Fix a u/i buglet for when no choice is given betweenbwarsaw2002-11-161-0/+4
| | | | | | | | digest and non-digest delivery. listinfo.html now has <mm-digest-question-start> and <mm-digest-question-end> tags which get comment start/enders if the question is meaningless. Requires template changes to all langauge's listinfo.html files.
* change_options(): Display the fullname and address of the member justbwarsaw2002-11-161-1/+2
| | | | subscribed, web-safe-ifying and uncanonstr'ing.
* main(): Watch out for unsubscription confirmations on addresses thatbwarsaw2002-11-151-7/+14
| | | | | have already been unsub'd, e.g. by the list administrator. Log an error message and throw the cookie away.
* Martin v. Loewis's SF patch #634109 for better scrubbing of multipartbwarsaw2002-11-131-22/+52
| | | | | | | | | | | | | | | | | messages. Specifically, process(): Each part that we're scrubbing, we'll set the content type explicity to text/plain (since that's what it is now). We also record the character set of each part and if that's shared by all the subparts, we'll just use that. But, if we don't know the charset of any of the parts then we'll use the list's preferred language's charset. Then we'll make sure all the text/plain parts have the same character set, using 'replace' if necessary. (We may eventually want to utf-8-ify or html-entity-ify them in this case). Patch slightly modified by Barry for i18n and style.
* email.Header does everything this module used to do for us, so webwarsaw2002-11-121-171/+0
| | | | don't need it anymore.
* decode_charset(): We no longer need the EncWord module, sincebwarsaw2002-11-121-16/+23
| | | | | | email.Header should be sufficient. This change uses decode_header() from email.Header instead of EncWord.decode(). The EncWord.py module will be removed.
* ArchiveMail(): Get rid of the try/bare-except wrapper around thebwarsaw2002-11-121-23/+15
| | | | | mailbox processing. It's good enough for the caller of this code to do the exception handling.
* __get_f(): LookupError is built-in. Bug reported by Carson Gaspar.bwarsaw2002-11-111-1/+1
|
* Results.__init__(): Give default argument of an empty string whenbwarsaw2002-11-081-1/+1
| | | | | | | pulling the Subject out of the command message. That's so later (e.g. in cmd_confirm.py) we won't try to .lower() a None. Closes SF bug report # 620032 by Ron Jarrell.
* Must import sys for signal handlers to work. Patch by Terry Hardie,bwarsaw2002-11-071-5/+6
| | | | | | closes SF patch # 635227. Also, whitespace normalization.
* __getstate__(), __setstate__(): Be slightly more defensive.bwarsaw2002-11-071-6/+14
|
* show_pending_subs(): Always uncanonstr() the fullname, even if it'sbwarsaw2002-11-061-2/+1
| | | | | just an empty string. This avoids seeing the u'' when no real name was given.
* verpdeliver(): Re-enable To header hacking, but only if doing "Fullbwarsaw2002-11-061-27/+27
| | | | Personalization".
* process(): Re-enable the Cc header hacking, but only if personalize ==bwarsaw2002-11-061-21/+17
| | | | 2, meaning "Full Personalization".
* GetConfigInfo(): Allow `personalized' to be 3-way valued, with "Fullbwarsaw2002-11-061-9/+13
| | | | | Personalization" meaning to additionally munge the To field. Update the details for this option.
* GLOBAL_PIPELINE: Re-ordering once again so that Moderate comes beforebwarsaw2002-11-041-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | Hold. Chuq says: looks like 2.1b4 is evaluating messages slightly out of order. If I get a large piece of spam (my message limit is 30K, the spam is, say, 60k), it gets held as too large, before the evaluation can take place that should reject it as being from a non-subscriber. Seems to me these evaluations ought to be reversed... But I must have had a good reason for changing this in rev 2.102: ---------------------------- revision 2.102 date: 2002/08/23 19:56:08; author: bwarsaw; state: Exp; lines: +1 -1 GLOBAL_PIPELINE: Reordering the modules so that Hold comes before Moderate. ---------------------------- Unfortunately, the checkin message doesn't give me a clue as to why I made this change. I'm sure the reason will become evident soon enough. :(
* Whitespace normalizationbwarsaw2002-11-041-3/+3
|
* GetConfigInfo(): Only allow the list administrator to choose languagesbwarsaw2002-11-041-1/+14
| | | | | for which we actually have the charset support built into the system. I think codecs.lookup() is the best way to determine this.
* request_creation(): Sort the languages by long (human readable) namebwarsaw2002-11-041-4/+12
| | | | in the language of the create page.
* GetConfigInfo(): Make the `emergency' option a normal attribute bybwarsaw2002-11-041-0/+7
| | | | giving it some text and a detail.
* show_results(): Because of some html form peculiarities, especially onbwarsaw2002-11-041-10/+5
| | | | | | | | | | | the membership management pages, the u/i for emergency moderation is changed. Now, if the list is not being moderated, no indication under the categories is made (we can change this if people want). To turn on emergency moderation, you need to go to the General category under Additional Settings. If you enable emergency moderation, you will get the big red sign, but no checkbox -- the sign will be linked to the VARHELP for the emergency option.
* process(): Comment out the rewriting of the CC header for personalizedbwarsaw2002-11-041-10/+14
| | | | | | messages. It was too controversial to do To header rewriting by default, but we might want to re-enabled this for a future version, probably controlled by a configuration variable.
* verpdeliver(): Comment out the rewriting of the To header forbwarsaw2002-11-041-27/+27
| | | | | | personalized messages. It was too controversial to do this by default, but we might want to re-enabled this for a future version, probably controlled by a configuration variable.
* as_html(): Add a link to the listinfo page for the mailing list.bwarsaw2002-11-041-0/+2
|
* Whitespace normalization and pycheckerfication.bwarsaw2002-11-041-113/+111
|
* Fixes for terrible performance hits after the i18n patches werebwarsaw2002-11-041-22/+79
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | applied. The problems were twofold: - The _mlist attribute of Article objects was being pickled, causing the *-article pickles to be around 10x too big. - The article template files were being opened and re-read for each article. Fixes include pickling only a reference to the mailing list (i.e its internal name), and caching both the MailList objects and the template files. Specifically, quick_maketext(): Front-end to the template cache, this has the same signature as Utils.maketext(), but it caches as much of the results as possible. Article._open_list(): A MailList cache, stolen from Runner.py. Can you say "re-factor"? Article.__getstate__(): Don't pickle the _mlist instance, instead, return an __listname key which contains the internal name of the mailing list. Article.__setstate__(): Watch for __listname and call _open_list() to get a real MailList object. Everywhere: Use quick_maketext() instead of Utils.make_text() to take advantage of the template cache.
* __getstate__(), __setstate__(): Remove the hackery to avoid picklingbwarsaw2002-11-041-17/+0
| | | | | | | | | | the lock object. The real problem, as sleuthed out by Dan Mick, was that the archiver i18n patches added a _mlist attribute to Article objects, which caused the MailList instances to get pickled into the *-article pickles. See fixes to HyperArch.py and HyperDatabase.py for additional important fixes.
* Style.bwarsaw2002-11-041-1/+1
|
* to_dollar(): We have to not only escape $'s but we have to unescapebwarsaw2002-10-291-2/+2
| | | | | | double %'s. to_percent(): Vice versa.
* _dispose(): I think this fixes a bug we are seeing on mailman-users,bwarsaw2002-10-291-5/+10
| | | | | | | | | where if the list lock couldn't be obtained, we couldn't register the bounce and the message would get forwarded to the list owners. Instead, let's just requeue it and try again later. Note: untested! I'm checking this into cvs so I can test it on python.org... yes on a live system. ;/
* show_pending_subs(): Another place where we have to uncanonstr() abwarsaw2002-10-291-0/+2
| | | | full name.
* Bump version number.bwarsaw2002-10-281-1/+1
|
* add_options_table_item(): Pass the elaboration tobwarsaw2002-10-281-3/+7
| | | | | | | get_item_gui_description(). get_item_gui_description(): If the description is different than the elaboration, use the term "Details", otherwise use the term "Edit".
* Prepare for beta4bwarsaw2002-10-251-2/+2
|
* DEFAULT_PASS_MIME_TYPES: Set the default to something that seemsbwarsaw2002-10-251-1/+3
| | | | sensible based on Chuq's (and my) experience with MimeDel.
* show_helds_overview(), show_post_requests(): Suggestion by Peerbwarsaw2002-10-251-3/+16
| | | | | | Heinlein, show the received time of the held message, if available. Also, some minor u/i tweaking.