-
Notifications
You must be signed in to change notification settings - Fork 8
/
README
129 lines (97 loc) · 5.72 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
NOTE: This app is unmaintained. Feel free to use it as a reference. Fork away!
django-emailmgr
================
Django Email Manager (emailmgr) is an application that helps with post-registration email management".
``You can associate multiple email addresses to a single Django User.``
This application comes into the picture only after a user has been created, activated
and logged in.
If your requirements is for email management prior to user registration please take a
look at ``django-registration`` or ``django-email-confirmation``.
This application was inspired by bitbucket.org's email management system as well as
the mentioned applications.
Current Features:
_________________
Assumption:
* - Django user has been created
* - Either via proper registration and activation or via the admin interface or scripts
* - This application first looks for its templates in: EMAIL_MGR_TEMPLATE_PATH, then
it looks for <template_dir>/emailmgr/
* - This way, projects can place the required templates at a location of their choice
relative to the <tempalate_dir> of course
* - Three templates are found in the template directory as stated above
* - email subject template - emailmgr_activation_subject.txt
* - extra context: current_site
* - email message body template - emailmgr_activation_message.txt
* - extra context: current_site, activate_url & user
* - email list & manipulation template - emailmgr_email_list.html
* - extra context: emails_list and add_email_form
* - email_list includes all emails for this users
* - sorted by:
1. primary - set directly via django or by emailmgr
2. activated - confirmed emails and can be set primary
3. not activated but activation email sent
5. not activated and activation email not sent
* - add_email_form is a form for adding a new email address to a user
1. This app latches on the ``post_save`` signals for (user) and execute the following:
A. Creates an email address object with the following attributes
* - email = user.email (if not blank)
* - is_active = True
* - is_primary = True
* - is_activation_sent = Don't care
* - identifier = a random string (used for activation)
* - Note: user login is not required
* - Note: email is only created if user has a valid email address
* - Note: this email is automatically considered as primary and activation is skipped
2. Latch on the ``post_delete`` signals on (user) and execute the following:
A. Deletes all email addresses associated with the (just) deleted user
3. Provides URL to:
A. Adds an email address to the logged in user's account:
* - http://example.com/email/add/,
* - Email address is created and associated with the logged in user
* - Email address remains inactive and cannot be made primary
* - User is redirected to http://example.com/email/list/
* - ``email_list`` and ``email_form`` are passed into the template
B. Deletes an email address from a user account
* - http://example.com/email/delete/<identifier>/,
* - Existing email address with the above identifier is deleted
* - Primary email address cannot be delete
* - Once the email is deleted, user is redirected to http://example.com/email/list/
C. Sends activation link for a newly added email address (sendto = user's primary email address)
* - http://example.com/email/send_activation/<identifier>/,
* - An activation email is sent to the logged in user's primary address
* - Note: all emails remain inactive unless activated
* - Once the email is sent, user is redirected to http://example.com/email/list/
D. Activates an email address when user clicks on an activation link
* - http://example.com/email/activate/<identifier>/,
* - Note: link was emailed to user's primary email address
* - Matched email will be activated (then eligible to be promoted to primary)
* - Once the email is activated, user is redirected to http://example.com/email/list/
E. Makes an activated email address the primary email
* - http://example.com/email/make_primary/<identifier>/,
* - Only activated email addresses can be promoted to be the primary email address
* - User.email is set to the newly promoted primary email address
* - Note: Only one email address can be set to primary
* - Once the email is made primary, user is redirected to http://example.com/email/list/
4. More to come ... patches & enhancements are welcomed (http://github.com/un33k/django-emailmgr)
Usage
=====
A. Install django-emailmgr:
* _ Make sure you have python 2.6+ and can install from pypi
1. easy_install django-emailmgr
2. pip install django-emailmgr
3. git clone http://github.com/un33k/django-emailmgr
a. cd django-emailmgr
b. run python setup.py
4. wget https://github.com/un33k/django-emailmgr/zipball/master
a. unzip the downloaded file
b. cd into django-emailmgr directory
c. run python setup.py
* _ Stick ``"emailmgr"`` in ``INSTALLED_APPS``, right after all other Django specific Apps
* _ Follow the instruction in the ``Current Features`` at the top of this file for usage.
* _ Use the templates in test directory as an example to create your own templates
* _ Include this application's urls or create your own urls for this application
* _ Run syncdb and enjoy
ToDo
=====
clean up README
add more goodies