Revision 2 as of 2010-04-22 11:23:09

Clear message

'''ABOUT DYNAMIC SUBLISTS'''''':'''

Dynamic Sublists or dlists,is a feature added by Systers to the Mailman-2.1.10 version they use.This feature was implemented with the aim of providing flexibility to the list subscribers and has been in our production branch for more than 6 years now.In between Systers have carried out various discussions with Mailman team regarding Dlist.We aim to upstream/integrate this feature with the upcoming Mailman3 version so that the larger Open Source world can benefit from it.

__Flexibilty provided by Dynamic Sub-lists to Subscribers__:

  • h6. Subscribe/Unsubcribe from *new\ conversations:*

List subscribers can decide whether to be a part of new conversations or not.If the users decide to subscribe to new conversations,then they will recieve all the messages of a new conversation unless they explicitly unsubscribe from it.If they otherwise decide to unsubscribe from new conversations,then they will receive only the first message of every new conversation unless they explicitly subscribe to it. Advantages Served:

  1. List Users depending upon the conversation can anytime opt to be a part of conversation or not.
  2. It prevents the inbox to get unecessary filled up with conversations that are of no interest.
  3. It prevents List Users to either switch over to Digest or worst Unsubscribe from the entire list if many uninteresting conversations start hitting their mailbox at some point of time.   

  4. h6. Other incoming Email-Address/Alias

The list subscribers can like to be able to send messages to the list from 1 or more email addresses other than the one with which they subscribed. Advantage Served:

  1. One situation that I think this feature can be of great imporatance is the one where a list user wants to send a message to the list but also wants to hide his/her identity at the same time(This is achieved as he/she can send that message from an annonymous email-address entered as alias and not otherwise known to the list).

'''List Administrator and Dlists'''''':'''

  • h6. Create a list as DLIST or Non-Dlist:

While creating a list the List Administrator can choose to define a list as either a Dlist(Original Mailman list with Systers added features) or Non-Dlist(original Mailman list).

  • h6. Essay:

An essay is a set of questions that can be asked by the listadmin, which has to be answered by the subscriber in order to subscribe. The essay feature can be enabled by the list creator when creating the list, and at the same time the list creator can choose which questions to ask.The default when enabling this feature are the questions used for the Systers maillist at present(during integration this Default will be changed to NULL string) but by simply editing the field with the questions the list creator can choose to have other questions instead.The field takes markdown syntax and if only plain text is entered, it will appear as just such. If the essay feature is enabled the subscribers can't subscribe to the list without entering at least some text in the appropriate field. Should list creators not want to have an essay, they can simply mark this when creating the list and ignore the questions field.

'''USE CASES:+'''

  • h6. Create Dlist

          Actor         :    List Owner           Goal          :    To create a list with Dlist feature enabled.           Trigger      :    Owner chooses the Dlist option as 'yes' and also whether to have the 'Essay' feature enabled or not during the list creation process.         

          Basic course of events:   

  1. Same as that of Non-Dlist except that the database required to support the functionality of a dlist is also created
  2. h6. Delete Dlist

          Actor         :    List Owner           Goal          :    To delete a list with Dlist feature enabled.           Trigger      :    Executing the 'rmlist' command.        

          Basic course of events:

  1. Same as that of Non-Dlist except that the database associated with it is also deleted.
  2. h6. SubscribeTo Dlist

          Actor         :    List User,Moderator           Goal          :    To subscribe a list with Dlist feature enabled.           Trigger      :    Either Moderator sends invites through Mass Subscription or if a user wants to subscribe then fill all details including the 'ESSAY' portion(if the essay feature was enabled during List Creation)on the listinfo page.

          Basic course of events:    

  1. Depends on subscription process(moderate,confirm etc) selected.
  2. Subscriber info updated in Subscriber table of the database for Dlist.
  3. Rest same as Non-Dlist.
  4. h6. UnsubscribeFrm Dlist

          Actor         :    List User,Moderator           Goal          :    To unsubscribe from a list with Dlist feature enabled.           Trigger      :    Same as that for Non-Dlist 

          Basic course of events:    

  1. Subscriber table of the database for Dlist updated.
  2. Rest same as Non-Dlist.
  3. h6. SubscribeToNew Cnvrstn

          Actor         :    List User           Goal          :    To subscribe to all new conversation always(unless user wants to explicitly unsubscribe from a particular conversation).           Trigger      :    List user sets the 'Subscribed to new conversations?' option to 'Yes' in Options page for members.

          Basic course of events:

  1. Override table updated.
  2. After that all conversations and their corresponding replies received.
  3. h6. StartNew Cnvrstn

          Actor         :    List User           Goal          :    To start a new conversation thread on Dlist           Trigger      :    Start new conversation,send email to listname+new@domain or listname+new+name@domain where the name is the 'name you will like to give the conversation'.

          Basic course of events:

  1. newThread() function of DlistUtils.py executed.

  2. Message,Thread table of the Dlist database updated.
  3. Rest same as Non-Dlist.  

  4. h6. ReplyToExstng Cnvrstn

          Actor         :    List User           Goal          :    To reply to an existing conversation thread of a Dlist.           Trigger      :    Replying back to a conversation by using mailers Reply-all option or by simply replying to address listname+subject@domain.

          Basic course of events:

  1. continueThread() function od DlistUtils.py executed.

  2. Message table updated.
  3. Rest same as Non-Dlist
  4. h6. UnsubscribeFrmExstng Cnvrstn

          Actor         :    List User           Goal          :    To unsubscribe from an ongoing Dlist conversation.           Trigger      :    Sending email to listname+subject+unsubscribe@domain or going to a link as mentioned in the footer of each conversation message.

          Basic course of events:

  1. Override table of the database for the Dlist updated with subscriber id,thread id and preference information of the subscriber who opts to unsubscribe from a particular thread.
  2. Later if any mail is send to that conversation,users who have unsubscribed will not recieve any mail.
  3. h6. UnsubscribeFrmNew Cnvrstn

          Actor        :    List User           Goal         :    To unsubscribe from all new conversation always(unless user wants to explicitly subcribe to a particular conversation),ie to get only the \1st\ mail of every new conversation started and not the corresponding replies.           Trigger     :    List user sets the 'Subscribed to new conversations?' option to 'no' in Options page for members.

          Basic course of events:

  1. Override table updated with corresponding info.
  2. Later if any \new\ conversation is started,the list user will get only the first mail of each conversation.

  3. h6. SubscribeToExstng Cnvrstn

          Actor       :    List User           Goal        :    To subscribe back to an ongoing Dlist conversation.           Trigger    :    Sending email to listname+subject+subscribe@domain or going to a link as mentioned in the footer of the conversation mail received.

          Basic course of events:

  1. Override table updated.
  2. Later if any mail is send to that conversation,user will receive all corresponding mails.  

  3. h6. Enter Alias

          Actor        :    List User           Goal         :    To be able to send mail from an email-address other than the one from which the list user had subscribed to the Dlist.           Trigger     :    List user enters the email-id to 'Other incoming email addresses' option in Options page for members.

          Basic course of events:

  1. Alias table in the database for that Dlist updated with other incoming email-address.
  2. Later on if the List user tries to send a mail via the alias address then  a check is performed to ensure that the sender exists in list of subscribers or their respective aliases,If yes then his mail is processed further and send to all list users otherwise he/she gets an automated reply and the mail is dropped or sent to the moderator(depending on the list settings).

  3. h6. ChngOrRmv Alias:

          Actor       :    List Owner           Goal        :    To be able to change or Remove the Alias email address.           Trigger     :    List user can change the list of Aliases in 'Other incoming email addresses' option in Options page for members.He/She can set it to blank for removing all aliases.

          Basic course of events:

  1. Alias table updated.

'''HOW DLIST WAS IMPLEMENTED IN MAILMAN (A brief insight into technical details):'''

http://wiki.list.org/display/DEV/Brief+Technical+Details