예제 #1
0
파일: set.py 프로젝트: EdererK/helfertool
def edit_gift_set(request, event_url_name, gift_set_pk=None):
    event = get_object_or_404(Event, url_name=event_url_name)

    # check permission
    if not is_involved(request.user, event_url_name, admin_required=True):
        return nopermission(request)

    # check if active
    if not event.gifts:
        return notactive(request)

    gift_set = _validate_gift_set(event, gift_set_pk)

    # form
    form = GiftSetForm(request.POST or None, instance=gift_set, event=event)

    if form.is_valid():
        form.save()

        return HttpResponseRedirect(
            reverse('gifts:list', args=[
                event.url_name,
            ]))

    context = {'event': event, 'form': form}
    return render(request, 'gifts/edit_gift_set.html', context)
예제 #2
0
def settings(request, event_url_name):
    event = get_object_or_404(Event, url_name=event_url_name)

    # check permission
    if not is_involved(request.user, event_url_name, admin_required=True):
        return nopermission(request)

    # check if badge system is active
    if not event.badges:
        return notactive(request)

    # roles
    roles = event.badge_settings.badgerole_set.all()

    # designs
    designs = event.badge_settings.badgedesign_set.all()

    # forms for defaults
    defaults_form = BadgeDefaultsForm(request.POST or None,
                                      instance=event.badge_settings.defaults,
                                      settings=event.badge_settings,
                                      prefix='event')
    job_defaults_form = BadgeJobDefaultsForm(request.POST or None,
                                             event=event,
                                             prefix='jobs')

    if defaults_form.is_valid() and job_defaults_form.is_valid():
        defaults_form.save()
        job_defaults_form.save()

        return HttpResponseRedirect(
            reverse('badges:settings', args=[
                event.url_name,
            ]))

    context = {
        'event': event,
        'roles': roles,
        'designs': designs,
        'defaults_form': defaults_form,
        'job_defaults_form': job_defaults_form
    }
    return render(request, 'badges/settings.html', context)
예제 #3
0
def edit_gift(request, event_url_name, gift_pk=None):
    event = get_object_or_404(Event, url_name=event_url_name)

    # check permission
    if not is_involved(request.user, event_url_name, admin_required=True):
        return nopermission(request)

    # check if active
    if not event.gifts:
        return notactive(request)

    gift = _validate_gift(event, gift_pk)

    # form
    form = GiftForm(request.POST or None, instance=gift, event=event)

    if form.is_valid():
        gift = form.save()

        log_msg = "gift created"
        if gift_pk:
            log_msg = "gift changed"
        logger.info(log_msg,
                    extra={
                        'user': request.user,
                        'event': event,
                        'gift_pk': gift.pk,
                        'gift': gift.name,
                    })

        return HttpResponseRedirect(
            reverse('gifts:list', args=[
                event.url_name,
            ]))

    context = {'event': event, 'form': form}
    return render(request, 'gifts/edit_gift.html', context)