Mailman Customization Guide?

Hi all,
First, Mailman is great. Thanks for the work.
Next, I want to customize Mailman by adding a "poll" and a "document/url archive" option to mailing lists. "Poll", similar to what eGroups does with this (though they do some dumb stuff here) allows a list member or admin to define an issue and some "multiple-choice-style" options, and then list members register their vote, all of which are tracked. Interface would be something like: "http://foo.org/mailman/listinfo/<list-name>/poll/<polls-by-name or id>/vote" and "http://foo.org/mailman/listinfo/<list-name>/poll/<polls-by-name or id>/results"
By "document/url archive" I'd like to be able to define a "library" for a list, a form for submission (even better: a little xml language that could be cherry-picked from the text of list messages themselves; but that's "version 2" feature :> ) of URLs and plain text documents; the url "http://foo.org/mailman/listinfo/<list-name>/archive would return a page of the archived links and links to the plain text documents. Yes, this is a bit duplicative of Pipermail, but it's also very handy to have stuff organized in a non-archival way (not thread or time or subject based). I imagine the best way to do this is to store URLs and glob.glob(<the archive directory>) pickled and then read them off the disk and build the page.
I know how to write Python, but I'm not really sure where to dive into Mailman first; what is the preferred way of doing extension work like this is?
In other words, I could probably hack at it long enough to get something working for me, but maybe, with a bit of guidance for what these features should look like to be consistent with Mailman's design, I can manage to do good enough work to submit some patches.
Thanks.
<Kendall/>
I'll get a bunch of monkeys, dress 'em up, and make 'em reenact the Civil War! Heh, heh, heh!
-- Homer Simpson
Homer The Great
participants (1)
-
Kendall Clark