Differences between revisions 11 and 26 (spanning 15 versions)
Revision 11 as of 2006-06-21 15:09:32
Size: 3620
Editor: mindlace
Comment:
Revision 26 as of 2015-01-12 00:48:38
Size: 67
Comment: linkfix
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
#pragma page-filename DEV/versions/170
[[http://mindlace.net|Ethan Fremen]] is working on mailman for his [[http://code.google.com/soc/psf/appinfo.html?csaid=7124F8A458101E5A|Summer of Code Project]]. The project will use web standards, kid and mod_python to deliver a superior HTTP user experience with enhanced internationalization.

== Status June 21, 2006 ==
After realizing how utterly horked the current templating situation is, I've started redoing the templates as xhtml/kid. Once I'm done with that, I'll write the glue code that connects it into mailman, leveraging the existing work in Gui/ .

As this is my first i18n project, I wasn't quite aware of what it entailed. Right now I'm focusing on making it so a simple iteration over all elements in the pre-rendered DOM constitutes the entirety of the text that needs to be internationalized for the web UI.

== Technical Plan ==
 * Build a fully [[http://www.w3.org/WAI/|accessible]] web interface using xhtml without CSS or JavaScript.
 * Enhance that interface with CSS to make it visually intuitive.
 * Add JavaScript that provides additional ease of use.
 * Modules/Supporting logic modules, to be implemented or borrowed:
  * Converters
   * RFC-8222 into an ElementTree
   * .mbox files into an ElementTree
   * Elemental RFC-8222, mbox into xhtml
   * Elemental mbox into xhtml
  * Handlers
   * feed handler
   * authentication handler
  * Modules
   * glue code to patch the 1-user-per-list situation
== Notes ==
I've had to move away from the incremental approach and towards a reimplementation. I'm still working strictly from the existing implementation for feature-set, but because of the templating situation, I'll get there faster if I re-write the templates.

The decision to move to mod_python is based on the need for feed handlers that can maintain a semi-persistent cache and because I get access to Apache's internals. The existing CGI interface will be untouched, with the idea that eventually a wrapper will be found/written that provides backwards compatibility.

=== Existing templating situation ===
 * There's a mismash of MM- pseudo tags and python str/dict replacement for variable substitutions.
 * Many pages are generated by a sort of proto-dom.
 * All the pages are mid-90's tag soup, with upper case and lower case tags and invalid html attributes.
 * Many pieces of code generate strings with html markup. This is bad form and makes i18n/multiple interfaces harder.
== Timeline ==
 * May 23 - June 21: Rewrite mailman interface using xhtml templates with the following attributes:
  * Provide consistent navigation throughout the Mailman interface
  * Enhance the Administrator's user listing to allow for bulk modification and to highlight users that have been set nomail.
  * Collapse duplicate pages
  * Write pages in seperable, embeddable pieces.
 * June 23- June 30: Establish the scope of the glue modules, and write interfaces/stub classes.
 * July 3 --( 14: Write handlers and RFC8222/ mbox \)--> ElementTree converter
 * July 17 - 21: Fill in glue modules, with knowledge of how the (user)db-in-SQLAlchemy project is going.
 * July 24 - 31: Add page-editing, easy support for stylesheet changes, site and list specific themes.
 * August 1 - 4: Update documentation to reflect changes.
 * August 7 - 11: Add ease-of-use JavaScript/CSS.
 * August 14 - 21: Accommodate schedule slippage and add additional documentation / release / integration / upgrade code as necessary.
''"a plan is just a list of things that never happen" - Benecio del Torro in The Way of the Gun''
#REDIRECT DEV/Tips for Prospective Google Summer of Code Students

MailmanWiki: DEV/Summer of Code (last edited 2015-01-12 00:48:38 by SumanaHarihareswara)