view gpp/gcalendar/admin_views.py @ 348:d1b11096595b

Fix #168; when nailing a spammer, clear their profile text fields. Guard against topics and forums that don't exist when deleting posts in the signal handler. Make the forum stats template tag only display the latest active users.
author Brian Neal <bgneal@gmail.com>
date Wed, 02 Mar 2011 02:18:28 +0000
parents 9fb8e804652b
children
line wrap: on
line source
"""
Admin views for the gcalendar application.
"""
from django.shortcuts import render_to_response
from django.template import RequestContext

from gcalendar.models import Event
from gcalendar.forms import PasswordForm
from gcalendar.calendar import Calendar
from gcalendar.calendar import CalendarError
import gcalendar.settings


def google_sync(request):
    """View to synchronize approved event changes with Google calendar."""
    events = Event.pending_events.all()
    messages = []
    err_msg = ''
    if request.method == 'POST':
        form = PasswordForm(request.POST)
        if form.is_valid():
            try:
                cal = Calendar(gcalendar.settings.EMAIL,
                        form.cleaned_data['password'],
                        gcalendar.settings.CALENDAR_ID)
                cal.sync_events(events)
            except CalendarError, e:
                err_msg = e.msg
                events = Event.pending_events.all()
                form = PasswordForm()
            else:
                messages.append('All events processed successfully.')
                events = Event.objects.none()
                form = PasswordForm()

    else:
        form = PasswordForm()

    return render_to_response('gcalendar/google_sync.html', {
        'messages': messages,
        'err_msg': err_msg,
        'events': events,
        'form': form,
        },
        context_instance=RequestContext(request))