Size: 3620
Comment:
|
Size: 3620
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 1: | Line 1: |
#pragma page-filename DEV/versions/170 | #pragma page-filename DEV/versions/171 |
Ethan Fremen is working on mailman for his 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 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
- Converters
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