Size: 1048
Comment:
|
Size: 3560
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 1: | Line 1: |
#pragma page-filename DEV/versions/160 = Summer of Code ideas = Here are some ideas in case anybody is interested in helping Mailman under Google's [[http://code.google.com/soc/|2006 Summer of Code]] program. See also the [[../Mailman 2.2|Mailman 2.2]] page for additional ideas. [[mailto:barry@python.org|Email me]] directly if you're interested. |
#pragma page-filename DEV/versions/172 [[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. |
Line 5: | Line 4: |
* Rewrite the web GUI to use a modern, standard templating toolkit like [[http://kid.lesscode.org/|Kid]] or [[http://cheetahtemplate.org/|Cheetah]]. The key thing here is that it must provide [[../Internationalization|internationalization]] support, hopefully much better than forcing translators to translate entire templates under the Mailman 2.1 system. * Provide a [[http://www.sqlite.org|SQLite]] member adaptor, either using [[http://www.pysqlite.org|PySQLite]] directly, or an abstract framework like [[http://www.sqlobject.org|SQLObject]] or [[http://sqlalchemy.org|SQLAlchemy]]. * Write a [[http://modpython.org|mod_python]] adaptor to Mailman's CGI interface. Any other ideas? |
== 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: Merge branch to trunk, and make a release of some sort. ''"a plan is just a list of things that never happen" - Benecio del Torro in The Way of the Gun'' |
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: Merge branch to trunk, and make a release of some sort.
"a plan is just a list of things that never happen" - Benecio del Torro in The Way of the Gun