Revision 7 as of 2010-05-16 11:10:53

Clear message

Web UI - Status

This page should serve as a place to update everyone on the current state of development, but also to discuss the progress and/or decisions being made while developing.

Components

The Mailman Web UI consists of three components:

  1. a REST client module that handles all communication with Mailman

  2. "mailman-django": a reusable Django app that makes use of the client module and delivers the web front-end

  3. a django project/site that includes mailman-django

Why not just ship one thing? Because this way we cover a number of different scenarios, i.e.:

  • Use 1., 2. & 3. if you have Mailman installed but are not running an existing Django site.

  • Use 1. & 2. if you already have an existing Django web site and would like to entend it with a Mailman interface.

  • Use 1. if you are developing a completely different Python application that needs to communicate with Mailman.

The REST client module

A current draft contains two classes:

MailmanRESTClient: Example Methods: get_lists(), get_list(), new_list(), join_list(), etc.

MailmanRESTClientError: Exception Class

It currently uses urllib and urllib2 to talk to Mailman but this has to be changed to use httlib to make use of the DELETE and PUT request methods (since Mailman's REST server now uses Restish).

mailman-django

A reusable Django app. Lives outside the Django project folder, somewhere on the Python path. Directory structure so far:

mailman-django/
    media/
        mailman-django/
            css/
            img/
            js/
    templates/
        mailman-django/
            lists/
            members/

The "mailman-django" folders inside "media" and "templates" may seem redundant but help maintain clarity and prevent conflicts when integrating the app into an existing environment.

The Django website/project

Uses the standard set of files when doing:

django-admin.py startproject mailmanweb

Could further be reduced to only contain settings.py and urls.py.

Test Server

A test server with a basic setup of the web UI is currently being set up.

Features to be implemented first

  1. Ability for users to subscribe, manage subscriptions, unsubscribe, change emails
  2. Admin ability to create/delete lists via pre-defined styles
  3. Users ability to customize their subscirptions
  4. Moderation
  5. Aite admin ability to create domains, add and modify styles
  6. List admin ability to customize lists