Revision 2ecbbc70 snf-astakos-app/astakos/im/backends.py

b/snf-astakos-app/astakos/im/backends.py
48 48
from astakos.im.models import AstakosUser, Invitation
49 49
from astakos.im.forms import *
50 50
from astakos.im.util import get_invitation
51
from astakos.im.settings import INVITATIONS_ENABLED, DEFAULT_CONTACT_EMAIL, DEFAULT_FROM_EMAIL, MODERATION_ENABLED, SITENAME, BASEURL
51
from astakos.im.settings import INVITATIONS_ENABLED, DEFAULT_CONTACT_EMAIL, DEFAULT_FROM_EMAIL, MODERATION_ENABLED, SITENAME, BASEURL, DEFAULT_ADMIN_EMAIL
52 52

  
53 53
import socket
54 54
import logging
......
143 143
        return False
144 144
    
145 145
    @transaction.commit_manually
146
    def signup(self, form):
146
    def signup(self, form, admin_email_template_name='im/admin_notification.txt'):
147 147
        """
148 148
        Initially creates an inactive user account. If the user is preaccepted
149 149
        (has a valid invitation code) the user is activated and if the request
......
161 161
                user.save()
162 162
                message = _('Registration completed. You can now login.')
163 163
            else:
164
                _send_notification(user, admin_email_template_name)
164 165
                message = _('Registration completed. You will receive an email upon your account\'s activation.')
165 166
            status = messages.SUCCESS
166 167
        except Invitation.DoesNotExist, e:
......
201 202
        return globals()[formclass](initial_data, ip=self.request.META['REMOTE_ADDR'])
202 203
    
203 204
    @transaction.commit_manually
204
    def signup(self, form, email_template_name='im/activation_email.txt'):
205
    def signup(self, form, email_template_name='im/activation_email.txt', admin_email_template_name='im/admin_notification.txt'):
205 206
        """
206 207
        Creates an inactive user account and sends a verification email.
207 208
        
......
226 227
        user = form.save()
227 228
        status = messages.SUCCESS
228 229
        if MODERATION_ENABLED:
229
            message = _('Registration completed. You will receive an email upon your account\'s activation.')
230
            try:
231
                _send_notification(user, admin_email_template_name)
232
                message = _('Registration completed. You will receive an email upon your account\'s activation.')
233
            except (SMTPException, socket.error) as e:
234
                status = messages.ERROR
235
                name = 'strerror'
236
                message = getattr(e, name) if hasattr(e, name) else e
230 237
        else:
231 238
            try:
232 239
                _send_verification(self.request, user, email_template_name)
......
256 263
    sender = DEFAULT_FROM_EMAIL
257 264
    send_mail('%s account activation' % SITENAME, message, sender, [user.email])
258 265
    logger.info('Sent activation %s', user)
266

  
267
def _send_notification(user, template_name):
268
    message = render_to_string(template_name, {
269
            'user': user,
270
            'baseurl': BASEURL,
271
            'site_name': SITENAME,
272
            'support': DEFAULT_CONTACT_EMAIL})
273
    sender = DEFAULT_FROM_EMAIL
274
    send_mail('%s account notification' % SITENAME, message, sender, [DEFAULT_ADMIN_EMAIL])
275
    logger.info('Sent admin notification for user %s', user)

Also available in: Unified diff