Mercurial > public > sg101
view gpp/core/functions.py @ 286:72fd300685d5
For #95. You can now make posts with no text in the body if you have attachments. And now if you create a new topic with an attachment, and the POST fails (say you forgot the topic title), we will now re-attach attachments. Also fixed a bug in the smiley code that would arise if it was asked to markup an empty string.
author | Brian Neal <bgneal@gmail.com> |
---|---|
date | Sat, 23 Oct 2010 20:19:46 +0000 |
parents | e3958aacd8dd |
children | 767cedc7d12a |
line wrap: on
line source
"""This file houses various core utility functions for GPP""" import datetime import re import django.core.mail from django.contrib.sites.models import Site from django.conf import settings import mailer def send_mail(subject, message, from_email, recipient_list, fail_silently=False, auth_user=None, auth_password=None, expedite=False): """The main gpp send email function. Use this function to send email from the site. It will obey debug settings and log all emails. The expedite flag, when True, will bypass the mail queue. """ if settings.MAILER_ENQUEUE_MAIL and not expedite: mailer.enqueue_mail(subject, message, from_email, recipient_list) elif settings.GPP_SEND_EMAIL: django.core.mail.send_mail(subject, message, from_email, recipient_list, fail_silently, auth_user, auth_password) import logging logging.debug('EMAIL:\nFrom: %s\nTo: %s\nSubject: %s\nMessage:\n%s' % (from_email, str(recipient_list), subject, message)) def email_admins(subject, message): """Emails the site admins. Goes through the site send_mail function.""" site = Site.objects.get_current() subject = '[%s] %s' % (site.name, subject) send_mail(subject, message, '%s@%s' % (settings.GPP_NO_REPLY_EMAIL, site.domain), [mail_tuple[1] for mail_tuple in settings.ADMINS]) def email_managers(subject, message): """Emails the site managers. Goes through the site send_mail function.""" site = Site.objects.get_current() subject = '[%s] %s' % (site.name, subject) send_mail(subject, msg, '%s@%s' % (settings.GPP_NO_REPLY_EMAIL, site.domain), [mail_tuple[1] for mail_tuple in settings.MANAGERS]) def get_full_name(user): """Returns the user's full name if available, otherwise falls back to the username.""" full_name = user.get_full_name() if full_name: return full_name return user.username BASE_YEAR = 2010 def copyright_str(): curr_year = datetime.datetime.now().year if curr_year == BASE_YEAR: year_range = str(BASE_YEAR) else: year_range = "%d - %d" % (BASE_YEAR, curr_year) return 'Copyright (C) %s, SurfGuitar101.com' % year_range IP_PAT = re.compile('(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})') def get_ip(request): """Returns the IP from the request or None if it cannot be retrieved.""" ip = request.META.get('HTTP_X_FORWARDED_FOR', request.META.get('REMOTE_ADDR')) if ip: match = IP_PAT.match(ip) ip = match.group(1) if match else None return ip def get_page(qdict): """Attempts to retrieve the value for "page" from the given query dict and return it as an integer. If the key cannot be found or converted to an integer, 1 is returned. """ n = qdict.get('page', 1) try: n = int(n) except ValueError: n = 1 return n