Mercurial > public > sg101
diff gpp/core/functions.py @ 1:dbd703f7d63a
Initial import of sg101 stuff from private repository.
author | gremmie |
---|---|
date | Mon, 06 Apr 2009 02:43:12 +0000 |
parents | |
children | b3b11edf91d8 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gpp/core/functions.py Mon Apr 06 02:43:12 2009 +0000 @@ -0,0 +1,77 @@ +"""This file houses various core utility functions for GPP""" + +import django.core.mail +from django.contrib.sites.models import Site +from django.conf import settings + +from core import logging +from lxml.html.clean import Cleaner + +html_cleaner = Cleaner(scripts=True, + javascript=True, + comments=True, + style=True, + links=True, + meta=True, + page_structure=True, + processing_instructions=True, + embedded=True, + frames=True, + forms=True, + annoying_tags=True, + remove_unknown_tags=True, + safe_attrs_only=True, + host_whitelist=['www.youtube.com'], + whitelist_tags=['object', 'param', 'embed'], + ) + + +def send_mail(subject, message, from_email, recipient_list, + fail_silently = False, auth_user = None, auth_password = None): + """The main gpp send email function. + Use this function to send email from the site. It will obey debug settings and + log all emails. + """ + + if settings.GPP_SEND_EMAIL: + django.core.mail.send_mail(subject, message, from_email, recipient_list, + fail_silently, auth_user, auth_password) + + logging.info('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 clean_html(s): + """Cleans HTML of dangerous tags and content.""" + if s: + return html_cleaner.clean_html(s) + return s + + +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