Пример #1
0
    def email_user(self, request, template, subject, context={}):
        context = RequestContext(request, context)
        context['author'] = context['user']
        context['user'] = self

        email_html = render_to_string('_email/%s.html' % template,
                                      context_instance=context)
        email_text = render_to_string('_email/%s.txt' % template,
                                      context_instance=context)

        # Set message recipient
        if settings.DEBUG and settings.CATCH_ALL_EMAIL_ADDRESS:
            recipient = settings.CATCH_ALL_EMAIL_ADDRESS
        else:
            recipient = self.email

        # Set message author
        if settings.board_name:
            sender = '%s <%s>' % (settings.board_name.replace("<", "(").replace(">", ")"), settings.EMAIL_HOST_USER)
        else:
            sender = settings.EMAIL_HOST_USER

        # Build message and add it to queue
        email = EmailMultiAlternatives(subject, email_text, sender, [recipient])
        email.attach_alternative(email_html, "text/html")
        request.mails_queue.append(email)
Пример #2
0
    def email_user(self, request, template, subject, context={}):
        context = RequestContext(request, context)
        context['author'] = context['user']
        context['user'] = self

        email_html = render_to_string('_email/%s.html' % template,
                                      context_instance=context)
        email_text = render_to_string('_email/%s.txt' % template,
                                      context_instance=context)

        # Set message recipient
        if settings.DEBUG and settings.CATCH_ALL_EMAIL_ADDRESS:
            recipient = settings.CATCH_ALL_EMAIL_ADDRESS
        else:
            recipient = self.email

        # Set message author
        if settings.board_name:
            sender = '%s <%s>' % (settings.board_name.replace(
                "<", "(").replace(">", ")"), settings.DEFAULT_FROM_EMAIL)
        else:
            sender = settings.DEFAULT_FROM_EMAIL

        # Build message and add it to queue
        email = EmailMultiAlternatives(subject, email_text, sender,
                                       [recipient])
        email.attach_alternative(email_html, "text/html")
        request.mails_queue.append(email)
Пример #3
0
def clear_recent(request):
    if not request.is_ajax() or not request.method == 'POST':
        return error404(request)

    del request.session['recent_alerts']
    response_html = render_to_string('alerts/cleared.html',
                                     context_instance=RequestContext(request))
    return json_response(request,
                         json={'html': response_html})
Пример #4
0
def clear_recent(request):
    if not request.is_ajax() or not request.method == 'POST':
        return error404(request)

    try:
        del request.session['recent_alerts']
    except KeyError:
        pass

    response_html = render_to_string('alerts/cleared.html',
                                     context_instance=RequestContext(request))
    return json_response(request, json={'html': response_html})
Пример #5
0
def alerts(request):
    if request.is_ajax():
        if request.session.get('recent_alerts'):
            alerts_qs = request.user.alert_set.filter(date__gte=request.session['recent_alerts']).order_by('-id')
        else:
            alerts_qs = ()

        response_html = render_to_string('alerts/modal.html',
                                         {'alerts': alerts_qs},
                                         context_instance=RequestContext(request))

        if request.user.alerts:
            request.user.alerts = 0
            request.user.alerts_date = timezone.now()
            request.user.save(force_update=True)

        return json_response(request,
                             json={'html': response_html})

    if not request.user.alerts_date:
        request.user.alerts_date = request.user.join_date

    now = localtime(timezone.now())
    yesterday = now - timedelta(days=1)
    alerts = {}

    for alert in request.user.alert_set.order_by('-id'):
        alert.new = alert.date > request.user.alerts_date
        alert_date = localtime(deepcopy(alert.date))
        diff = now - alert_date
        if now.date() == alert_date.date():
            try:
                alerts['today'].append(alert)
            except KeyError:
                alerts['today'] = [alert]
        elif yesterday.date() == alert_date.date():
            try:
                alerts['yesterday'].append(alert)
            except KeyError:
                alerts['yesterday'] = [alert]
        elif diff.days <= 7:
            try:
                alerts['week'].append(alert)
            except KeyError:
                alerts['week'] = [alert]
        elif diff.days <= 30:
            try:
                alerts['month'].append(alert)
            except KeyError:
                alerts['month'] = [alert]
        else:
            try:
                alerts['older'].append(alert)
            except KeyError:
                alerts['older'] = [alert]

    new_alerts = request.user.alerts
    request.user.alerts = 0
    request.user.alerts_date = now
    request.user.save(force_update=True)
    return render_to_response('alerts/list.html',
                              {
                              'new_alerts': new_alerts,
                              'alerts': alerts,
                              },
                              context_instance=RequestContext(request))
Пример #6
0
def alerts(request):
    if request.is_ajax():
        if request.session.get('recent_alerts'):
            alerts_qs = request.user.alert_set.filter(
                date__gte=request.session['recent_alerts']).order_by('-id')
        else:
            alerts_qs = ()

        response_html = render_to_string(
            'alerts/modal.html', {'alerts': alerts_qs},
            context_instance=RequestContext(request))

        if request.user.alerts:
            request.user.alerts = 0
            request.user.alerts_date = timezone.now()
            request.user.save(force_update=True)

        return json_response(request, json={'html': response_html})

    if not request.user.alerts_date:
        request.user.alerts_date = request.user.join_date

    now = localtime(timezone.now())
    yesterday = now - timedelta(days=1)
    alerts = {}

    for alert in request.user.alert_set.order_by('-id'):
        alert.new = alert.date > request.user.alerts_date
        alert_date = localtime(deepcopy(alert.date))
        diff = now - alert_date
        if now.date() == alert_date.date():
            try:
                alerts['today'].append(alert)
            except KeyError:
                alerts['today'] = [alert]
        elif yesterday.date() == alert_date.date():
            try:
                alerts['yesterday'].append(alert)
            except KeyError:
                alerts['yesterday'] = [alert]
        elif diff.days <= 7:
            try:
                alerts['week'].append(alert)
            except KeyError:
                alerts['week'] = [alert]
        elif diff.days <= 30:
            try:
                alerts['month'].append(alert)
            except KeyError:
                alerts['month'] = [alert]
        else:
            try:
                alerts['older'].append(alert)
            except KeyError:
                alerts['older'] = [alert]

    new_alerts = request.user.alerts
    request.user.alerts = 0
    request.user.alerts_date = now
    request.user.save(force_update=True)
    return render_to_response('alerts/list.html', {
        'new_alerts': new_alerts,
        'alerts': alerts,
    },
                              context_instance=RequestContext(request))