Mercurial > public > sg101
diff gpp/gcalendar/admin_views.py @ 1:dbd703f7d63a
Initial import of sg101 stuff from private repository.
author | gremmie |
---|---|
date | Mon, 06 Apr 2009 02:43:12 +0000 |
parents | |
children | 9fb8e804652b |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gpp/gcalendar/admin_views.py Mon Apr 06 02:43:12 2009 +0000 @@ -0,0 +1,47 @@ +""" +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 = [] + errors = [] + 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: + errors = e.errs + 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, + 'errors': errors, + 'events': events, + 'form': form, + }, + context_instance=RequestContext(request)) + +# vim: ts=4 sw=4