예제 #1
0
def handler(request, event_key):
    """Handler for viewing the edit form."""

    assert request.user.is_staff

    try:
        if event_key == 'add':
            event = models.Event(created_by=request.user)
        else:
            event = shortcuts.get_object_or_404(models.Event, pk=event_key)
    except IndexError:
        return shortcuts.redirect('/events')

    template_values = {}
    if event:
        template_values['agenda'] = offers.get_event_agenda(event)
    else:
        template_values['agenda'] = None

    template_values['event'] = event
    template_values['fridays'] = lastfridays()
    template_values['templates'] = get_templates()
    template_values['offers'] = models.TalkOffer.objects.all()[:100]

    return shortcuts.render(request, 'editevent.html', template_values)
예제 #2
0
파일: event_edit.py 프로젝트: vorn/slug
def handler(request, event_key):
    """Handler for viewing the edit form."""

    assert request.user.is_staff

    try:
        if event_key == "add":
            event = models.Event(created_by=request.user)
        else:
            event = shortcuts.get_object_or_404(models.Event, pk=event_key)
    except IndexError:
        return shortcuts.redirect("/events")

    template_values = {}
    if event:
        template_values["agenda"] = offers.get_event_agenda(event)
    else:
        template_values["agenda"] = None

    template_values["event"] = event
    template_values["fridays"] = lastfridays()
    template_values["templates"] = get_templates()
    template_values["offers"] = models.TalkOffer.objects.all()[:100]

    return shortcuts.render(request, "editevent.html", template_values)
예제 #3
0
def handler_event_post(request, event_key):
    if not event_key or event_key == 'None':
        event = models.Event(created_by=request.user)
    else:
        event = shortcuts.get_object_or_404(models.Event, pk=event_key)

    assert request.user.is_staff

    start_date = datetime_tz.datetime_tz.smartparse(request.REQUEST['start'])
    end_date = datetime_tz.datetime_tz.smartparse(request.REQUEST['end'])

    event.name = request.REQUEST['name']
    event.input = request.REQUEST['input']
    event.start = start_date.asdatetime()
    event.end = end_date.asdatetime()

    event.save()

    # We can't do this template subsitution until we have saved the event.
    try:
        plaintext = str(
            template.Template(event.input).render(
                template.Context({
                    'event': event,
                    'request': request,
                    'agenda': offers.get_event_agenda(event)
                }), ))
        html = markdown.markdown(plaintext, extensions).encode('utf-8')
        event.plaintext = plaintext
        event.html = html
    except Exception:
        sio = StringIO.StringIO()
        traceback.print_exc(file=sio)
        event.plaintext = sio.getvalue()

    logging.debug("e.a %s, e.n %s", event.announcement, event.name)

    event.save()

    return shortcuts.redirect('%s/edit' % event.get_url())
예제 #4
0
파일: events.py 프로젝트: mattoc/slug
def handler_event_post(request, event_key):
    if not event_key or event_key == 'None':
        event = models.Event(created_by=request.user)
    else:
        event = shortcuts.get_object_or_404(models.Event, pk=event_key)

    assert request.user.is_staff

    start_date = datetime_tz.datetime_tz.smartparse(request.REQUEST['start'])
    end_date = datetime_tz.datetime_tz.smartparse(request.REQUEST['end'])

    event.name = request.REQUEST['name']
    event.input = request.REQUEST['input']
    event.start = start_date.asdatetime()
    event.end = end_date.asdatetime()

    event.save()

    # We can't do this template subsitution until we have saved the event.
    try:
        plaintext = str(template.Template(event.input).render(
                        template.Context({
                            'event': event,
                            'request': request,
                            'agenda': offers.get_event_agenda(event)
                        }), ))
        html = markdown.markdown(plaintext, extensions).encode('utf-8')
        event.plaintext = plaintext
        event.html = html
    except Exception:
        sio = StringIO.StringIO()
        traceback.print_exc(file=sio)
        event.plaintext = sio.getvalue()

    logging.debug("e.a %s, e.n %s", event.announcement, event.name)

    event.save()

    return shortcuts.redirect('%s/edit' % event.get_url())