Differences between revisions 2 and 3
Revision 2 as of 2010-04-22 11:23:09
Size: 14147
Editor: kanika vats
Comment:
Revision 3 as of 2010-04-26 07:17:36
Size: 14970
Editor: kanika vats
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
#pragma page-filename DEV/versions/10715196 #pragma page-filename DEV/versions/10715198
Line 26: Line 26:
 * h6. '''Create Dlist'''  * h6. '''Create List'''
Line 28: Line 28:
          '''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.         
          '''Goal'''          :    To create a list with Dynamic Sublist feature enabled.
Line 33: Line 32:
 1. Same as that of Non-Dlist except that the database required to support the functionality of a dlist is also created
 * h6. '''Delete Dlist'''
 1. Use Case begins when Owner wants to create a new list.
 1. Owner goes to the list creation page(or can also use command line utility to create a list)
 1. He/She chooses the Dlist option as 'yes' and also whether to have the 'Essay' feature enabled or not during the list creation process.
 1. System creates the list with Dynamic Sublist feature enabled and also creates the database required for that list.
 * h6. '''Delete List'''
Line 36: Line 38:
          '''Goal'''          :    To delete a list with Dlist feature enabled.
          '''Trigger'''
      :    Executing the 'rmlist' command.        
          '''Goal'''          :    To delete a list      
Line 41: Line 42:
 1. Same as that of Non-Dlist except that the database associated with it is also deleted.
 * h6. '''SubscribeTo Dlist'''
 1. List Owner decides to delete one of the existing lists.
 1. He/She Executes the rmlist command on terminal and can also mention whether they want to delete the Archives or not. 
 1. System checks whether the list is a Dlist or not,if yes then it deletes all dynamic list related info including the database associated with it.If not then it deletes the Non-dlist.    
 * h6. '''SubscribeTo List'''
Line 44: Line 47:
          '''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.
          '''Goal'''          :    To subscribe to a list with Dynamic Sublist feature enabled.
Line 49: Line 51:
 1. Depends on subscription process(moderate,confirm etc) selected.
 1. Subscriber info updated in Subscriber table of the database for Dlist.
 1. Rest same as Non-Dlist.
 * h6. '''UnsubscribeFrm Dlist'''
 1. Moderator decides to invite a person(or a group) to a list.
 1. Moderator selects whether he/she wants to send an invitation message or not and sends invites by entering the email id(or list of email id) through the Mass Subscription page.
 1. Or if a user wants to subscribe then he/she fills all details including the 'ESSAY' portion(if the essay feature was enabled during List Creation) on the ListInfo page.
 1. System subscribes the Person(or group) to the mailing list.
 1. If the list is a Dlist then system also updates the subscriber info in the database associated with the Dlist. 
 * h6. '''UnsubscribeFrm List'''
Line 54: Line 58:
          '''Goal'''          :    To unsubscribe from a list with Dlist feature enabled.
          '''Trigger'''      :    Same as that for Non-Dlist 
          '''Goal'''          :    To unsubscribe from a list with Dlist feature enabled. 
Line 59: Line 62:
 1. Subscriber table of the database for Dlist updated.
 1. Rest same as Non-Dlist.
 * h6. '''SubscribeToNew Cnvrstn'''
 1. Moderator decides to unsubscribe a spammer or a subscriber not abiding to the rules of the list.
 1. He unsubcribes the person by entering the person's email id on the mass removal page.
 1. System unsubscribes the Person(or group).
 1. Or a List user decides to unsubscribe from a List due to some reason.
 1. List User goes to the member Options page.
 1. Selects the unsubscription option.
 1. System unsubscribes the user from the List.
 1. In both the cases If the list is a Dlist then the System automatically updates the database associated with the list. 
 * h6. GetAllConversationTrafficOf List
Line 63: Line 72:
          '''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.
          '''Goal'''          :    To subscribe to all new conversation always(unless user wants to explicitly unsubscribe from a particular conversation)
Line 68: Line 76:
 1. Override table updated.
 1. After that all conversations and their corresponding replies received.
 * h6. '''StartNew Cnvrstn'''
 1. List User decides to hear all conversation mails(Mail of the person who initiated a conversation and all the corresponding replies to that conversation for all List Users)
 1. List user goes to the Options page.
 1. Sets the 'Subscribed to new conversations?' option to 'Yes'
 1. System updates the user request in the Database for Dlist.
 * ====== h6. ======<<Color2({{{
GetOnlyInitialConversationMailOf List
}}}
, col=#003366)>>
<<Color2(&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;, col=#000000)>><<Color2('''&nbsp; Actor''', col=#000000)>><<Color2(&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; :&nbsp;&nbsp;&nbsp; List User, col=#000000)>><<Color2(&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;, col=#000000)>><<Color2({{{
Goal
}}}
, col=#000000)>><<Color2(&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; :&nbsp;&nbsp;&nbsp; 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.., col=#000000)>><<Color2(&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;, col=#000000)>><<Color2(Basic course of events:*, col=#000000)>> 1. List User decides to get rid off &nbsp;all conversation traffic of a list hitting the inbox except the first mail(Mail of the person who initiated the conversation)
 1. List user goes to the Options page.
 1. Sets the 'Subscribed to new conversations?' option to 'No'
 1. System updates the user request in the Database for Dlist.
 * h6. '''Star'''tNew Cnvrstn*
Line 99: Line 120:
 * h6. '''UnsubscribeFrmNew Cnvrstn'''
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'''&nbsp; Actor'''&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; :&nbsp;&nbsp;&nbsp; List User
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '''Goal'''&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; :&nbsp;&nbsp;&nbsp; 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.
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '''Trigger'''&nbsp;&nbsp; &nbsp; :&nbsp;&nbsp;&nbsp; List user sets the 'Subscribed to new conversations?' option to 'no' in Options page for members.

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '''Basic course of events:'''

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

'''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 List

          Actor         :    List Owner           Goal          :    To create a list with Dynamic Sublist feature enabled.

          Basic course of events:   

  1. Use Case begins when Owner wants to create a new list.
  2. Owner goes to the list creation page(or can also use command line utility to create a list)
  3. He/She chooses the Dlist option as 'yes' and also whether to have the 'Essay' feature enabled or not during the list creation process.
  4. System creates the list with Dynamic Sublist feature enabled and also creates the database required for that list.
  5. h6. Delete List

          Actor         :    List Owner           Goal          :    To delete a list      

          Basic course of events:

  1. List Owner decides to delete one of the existing lists.
  2. He/She Executes the rmlist command on terminal and can also mention whether they want to delete the Archives or not. 

  3. System checks whether the list is a Dlist or not,if yes then it deletes all dynamic list related info including the database associated with it.If not then it deletes the Non-dlist.    

  4. h6. SubscribeTo List

          Actor         :    List User,Moderator           Goal          :    To subscribe to a list with Dynamic Sublist feature enabled.

          Basic course of events:    

  1. Moderator decides to invite a person(or a group) to a list.
  2. Moderator selects whether he/she wants to send an invitation message or not and sends invites by entering the email id(or list of email id) through the Mass Subscription page.
  3. Or if a user wants to subscribe then he/she fills all details including the 'ESSAY' portion(if the essay feature was enabled during List Creation) on the ListInfo page.

  4. System subscribes the Person(or group) to the mailing list.

  5. If the list is a Dlist then system also updates the subscriber info in the database associated with the Dlist. 

  6. h6. UnsubscribeFrm List

          Actor         :    List User,Moderator           Goal          :    To unsubscribe from a list with Dlist feature enabled. 

          Basic course of events:    

  1. Moderator decides to unsubscribe a spammer or a subscriber not abiding to the rules of the list.
  2. He unsubcribes the person by entering the person's email id on the mass removal page.
  3. System unsubscribes the Person(or group).
  4. Or a List user decides to unsubscribe from a List due to some reason.
  5. List User goes to the member Options page.
  6. Selects the unsubscription option.
  7. System unsubscribes the user from the List.
  8. In both the cases If the list is a Dlist then the System automatically updates the database associated with the list. 

  9. h6. GetAllConversationTrafficOf List

          Actor         :    List User           Goal          :    To subscribe to all new conversation always(unless user wants to explicitly unsubscribe from a particular conversation)

          Basic course of events:

  1. List User decides to hear all conversation mails(Mail of the person who initiated a conversation and all the corresponding replies to that conversation for all List Users)
  2. List user goes to the Options page.
  3. Sets the 'Subscribed to new conversations?' option to 'Yes'
  4. System updates the user request in the Database for Dlist.
  5. ====== h6. ======<<Color2(

    GetOnlyInitialConversationMailOf List

, col=#003366)>> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

&nbsp; Actor

&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; :&nbsp;&nbsp;&nbsp; List User

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

<<Color2(

Goal

, col=#000000)>>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; :&nbsp;&nbsp;&nbsp; To unsubscribe from all new conversation always(unless user wants to explicitly subcribe to a particular conversation)

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

Basic course of events:*

1. List User decides to get rid off  all conversation traffic of a list hitting the inbox except the first mail(Mail of the person who initiated the conversation)

  1. List user goes to the Options page.
  2. Sets the 'Subscribed to new conversations?' option to 'No'
  3. System updates the user request in the Database for Dlist.
  4. 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. 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


MailmanWiki: DEV/Dynamic Sublists (last edited 2015-03-04 05:01:18 by msapiro)