Example #1
0
def edit_tap(request, tap_id):
    context = RequestContext(request)
    tap = get_object_or_404(models.KegTap, site=request.kbsite, seqn=tap_id)
    form = forms.ChangeKegForm()

    form = forms.ChangeKegForm(request.POST)
    if form.is_valid():
        current = tap.current_keg
        if current and current.status != 'offline':
            current.status = 'offline'
            current.save()
        new_keg = models.Keg()
        new_keg.site = request.kbsite
        new_keg.type = form.cleaned_data['beer_type']
        new_keg.size = form.cleaned_data['keg_size']
        new_keg.status = 'online'
        if form.cleaned_data['description']:
            new_keg.description = form.cleaned_data['description']
        new_keg.save()
        tap.current_keg = new_keg
        tap.save()
        messages.success(request, 'The new keg was activated. Bottoms up!')
        form = forms.ChangeKegForm()

    result_url = reverse('kegadmin-taps', args=[request.kbsite.url()])
    return redirect_to(request, result_url)
Example #2
0
def tap_list(request):
    context = RequestContext(request)
    taps = [{'tap': tap} for tap in request.kbsite.taps.all()]
    for tinfo in taps:
        tap = tinfo['tap']
        prefix = 'tap-%s' % tap.seqn
        tinfo['prefix'] = prefix

        # Demux multiple forms using submit button name.
        submit_name = "%s-submit" % prefix
        edit_form = None
        if request.method == 'POST' and submit_name in request.POST:
            edit_form = forms.TapForm(request.POST,
                                      site=request.kbsite,
                                      instance=tap,
                                      prefix=prefix)
            if edit_form.is_valid():
                tap = edit_form.save(commit=False)
                val = edit_form.cleaned_data['ml_per_tick']
                ml = val[0]
                if ml == '0':
                    ml = val[1]
                tap.ml_per_tick = float(ml)
                tap.save()
                messages.success(request, 'Tap "%s" was updated.' % tap.name)
            else:
                messages.error(request,
                               'Your form had errors, please correct them.')
        if not edit_form:
            edit_form = forms.TapForm(site=request.kbsite,
                                      instance=tap,
                                      prefix=prefix,
                                      initial={
                                          'ml_per_tick': (str(tap.ml_per_tick),
                                                          str(tap.ml_per_tick))
                                      })

        for field in edit_form.fields.values():
            widget = field.widget
            if widget.is_hidden:
                continue
            if isinstance(widget, widgets.Textarea) or isinstance(
                    widget, widgets.TextInput):
                new_class = widget.attrs.get('class', '') + ' span10'
                #widget.attrs['class'] = new_class.strip()

        tinfo['edit_form'] = edit_form
        if tap.current_keg and tap.current_keg.is_active():
            tinfo['end_form'] = forms.KegHiddenSelectForm(
                initial={'keg': tap.current_keg})
        else:
            tinfo['keg_form'] = forms.ChangeKegForm()

    context['all_taps'] = taps
    context['create_tap_form'] = forms.TapForm(site=request.kbsite)
    return render_to_response('kegadmin/tap-edit.html', context)
Example #3
0
def tap_list(request):
    context = RequestContext(request)

    # Create a new tap if needed.
    context['create_tap_form'] = forms.TapForm(site=request.kbsite)
    if request.method == 'POST' and 'new-tap-submit' in request.POST:
        success, form = _create_or_update_tap(None, request)
        if not success:
            context['create_tap_form'] = form

    for tap in request.kbsite.taps.all():
        submit_name = 'tap-%s-delete' % tap.seqn
        if request.method == 'POST' and submit_name in request.POST:
            tap_name = tap.name
            tap.delete()
            messages.success(request, 'Tap "%s" was deleted.' % tap_name)

    # Build/process forms for all taps.
    taps = [{'tap': tap} for tap in request.kbsite.taps.all()]
    for tinfo in taps:
        tap = tinfo['tap']
        prefix = 'tap-%s' % tap.seqn
        tinfo['prefix'] = prefix

        # Demux multiple forms using submit button name.
        submit_name = "%s-submit" % prefix
        if request.method == 'POST' and submit_name in request.POST:
            success, form = _create_or_update_tap(tap, request)
            if not success:
                tinfo['edit_form'] = form

        if 'edit_form' not in tinfo:
            tinfo['edit_form'] = forms.TapForm(site=request.kbsite,
                                               instance=tap,
                                               prefix=prefix,
                                               initial={
                                                   'ml_per_tick':
                                                   (str(tap.ml_per_tick),
                                                    str(tap.ml_per_tick))
                                               })

        if tap.current_keg and tap.current_keg.is_active():
            tinfo['end_form'] = forms.KegHiddenSelectForm(
                initial={'keg': tap.current_keg})
        else:
            tinfo['keg_form'] = forms.ChangeKegForm()

    context['all_taps'] = taps
    return render_to_response('kegadmin/tap-edit.html', context)
Example #4
0
def create_tap(request):
    context = RequestContext(request)
    form = forms.ChangeKegForm()
Example #5
0
def tap_detail(request, tap_id):
    tap = get_object_or_404(models.KegTap, id=tap_id)
    available_kegs = models.Keg.objects.filter(online=False,
                                               finished=False).order_by('id')

    record_drink_form = forms.RecordDrinkForm()
    activate_keg_form = forms.ChangeKegForm()
    tap_settings_form = forms.TapForm(instance=tap)

    if request.method == 'POST':
        if 'submit_change_keg_form' in request.POST:
            activate_keg_form = forms.ChangeKegForm(request.POST)
            if activate_keg_form.is_valid():
                activate_keg_form.save(tap)
                messages.success(request,
                                 'The new keg was activated. Bottoms up!')
                return redirect('kegadmin-taps')

        if 'submit_keg_choice' in request.POST:
            keg_id = request.POST.get('keg_id')
            keg = models.Keg.objects.get(id=keg_id)
            d = request.backend.attach_keg(tap, keg)
            messages.success(request, 'The new keg was activated. Bottoms up!')
            return redirect('kegadmin-taps')

        elif 'submit_tap_form' in request.POST:
            tap_settings_form = forms.TapForm(request.POST, instance=tap)
            if tap_settings_form.is_valid():
                tap_settings_form.save()
                messages.success(request, 'Tap settings saved.')
                tap_settings_form = forms.TapForm(instance=tap)

        elif 'submit_delete_tap_form' in request.POST:
            delete_form = forms.DeleteTapForm(request.POST)
            if delete_form.is_valid():
                if tap.current_keg:
                    request.backend.end_keg(tap)
                tap.delete()
                messages.success(request, 'Tap deleted.')
                return redirect('kegadmin-taps')

        elif 'submit_end_keg_form' in request.POST:
            end_keg_form = forms.EndKegForm(request.POST)
            if end_keg_form.is_valid():
                old_keg = request.backend.end_keg(tap)
                messages.success(request, 'Keg %s was ended.' % old_keg.id)

        elif 'submit_record_drink' in request.POST:
            record_drink_form = forms.RecordDrinkForm(request.POST)
            if record_drink_form.is_valid():
                user = record_drink_form.cleaned_data.get('user')
                volume_ml = record_drink_form.cleaned_data.get('volume_ml')
                d = request.backend.record_drink(tap,
                                                 ticks=0,
                                                 username=user,
                                                 volume_ml=volume_ml)
                messages.success(request, 'Drink %s recorded.' % d.id)
            else:
                messages.error(request,
                               'Please enter a valid volume and user.')

        elif 'submit_record_spill' in request.POST:
            record_drink_form = forms.RecordDrinkForm(request.POST)
            if record_drink_form.is_valid():
                user = record_drink_form.cleaned_data.get('user')
                volume_ml = record_drink_form.cleaned_data.get('volume_ml')
                d = request.backend.record_drink(tap,
                                                 ticks=0,
                                                 username=user,
                                                 volume_ml=volume_ml,
                                                 spilled=True)
                messages.success(request, 'Spill recorded.')
            else:
                messages.error(request, 'Please enter a valid volume.')

        else:
            messages.warning(request, 'No form data was found. Bug?')

    end_keg_form = forms.EndKegForm(initial={'keg': tap.current_keg})

    context = RequestContext(request)
    context['tap'] = tap
    context['current_keg'] = tap.current_keg
    context['available_kegs'] = available_kegs
    context['activate_keg_form'] = activate_keg_form
    context['record_drink_form'] = record_drink_form
    context['end_keg_form'] = end_keg_form
    context['tap_settings_form'] = tap_settings_form
    context['delete_tap_form'] = forms.DeleteTapForm()
    return render_to_response('kegadmin/tap_detail.html',
                              context_instance=context)
Example #6
0
def tap_detail(request, tap_id):
    tap = get_object_or_404(models.KegTap, id=tap_id)
    available_kegs = models.Keg.objects.filter(
        status=models.Keg.STATUS_AVAILABLE).order_by("id")

    record_drink_form = forms.RecordDrinkForm()
    activate_keg_form = forms.ChangeKegForm()
    tap_settings_form = forms.TapForm(instance=tap)

    if request.method == "POST":
        if "submit_change_keg_form" in request.POST:
            activate_keg_form = forms.ChangeKegForm(request.POST)
            if activate_keg_form.is_valid():
                activate_keg_form.save(tap)
                messages.success(request,
                                 "The new keg was activated. Bottoms up!")
                return redirect("kegadmin-taps")

        if "submit_keg_choice" in request.POST:
            keg_id = request.POST.get("keg_id")
            keg = models.Keg.objects.get(id=keg_id)
            d = request.backend.attach_keg(tap, keg)
            messages.success(request, "The new keg was activated. Bottoms up!")
            return redirect("kegadmin-taps")

        elif "submit_tap_form" in request.POST:
            tap_settings_form = forms.TapForm(request.POST, instance=tap)
            if tap_settings_form.is_valid():
                tap_settings_form.save()
                messages.success(request, "Tap settings saved.")
                tap_settings_form = forms.TapForm(instance=tap)

        elif "submit_delete_tap_form" in request.POST:
            delete_form = forms.DeleteTapForm(request.POST)
            if delete_form.is_valid():
                if tap.current_keg:
                    request.backend.end_keg(tap.current_keg)
                tap.delete()
                messages.success(request, "Tap deleted.")
                return redirect("kegadmin-taps")

        elif "submit_end_keg_form" in request.POST:
            end_keg_form = forms.EndKegForm(request.POST)
            if end_keg_form.is_valid():
                old_keg = request.backend.end_keg(tap.current_keg)
                messages.success(request, "Keg %s was ended." % old_keg.id)

        elif "submit_record_drink" in request.POST:
            record_drink_form = forms.RecordDrinkForm(request.POST)
            if record_drink_form.is_valid():
                user = record_drink_form.cleaned_data.get("user")
                volume_ml = record_drink_form.cleaned_data.get("volume_ml")
                d = request.backend.record_drink(tap,
                                                 ticks=0,
                                                 username=user,
                                                 volume_ml=volume_ml)
                messages.success(request, "Drink %s recorded." % d.id)
            else:
                messages.error(request,
                               "Please enter a valid volume and user.")

        elif "submit_record_spill" in request.POST:
            record_drink_form = forms.RecordDrinkForm(request.POST)
            if record_drink_form.is_valid():
                user = record_drink_form.cleaned_data.get("user")
                volume_ml = record_drink_form.cleaned_data.get("volume_ml")
                d = request.backend.record_drink(tap,
                                                 ticks=0,
                                                 username=user,
                                                 volume_ml=volume_ml,
                                                 spilled=True)
                messages.success(request, "Spill recorded.")
            else:
                messages.error(request, "Please enter a valid volume.")

        else:
            messages.warning(request, "No form data was found. Bug?")

    end_keg_form = forms.EndKegForm(initial={"keg": tap.current_keg})

    context = {}
    context["tap"] = tap
    context["current_keg"] = tap.current_keg
    context["available_kegs"] = available_kegs
    context["activate_keg_form"] = activate_keg_form
    context["record_drink_form"] = record_drink_form
    context["end_keg_form"] = end_keg_form
    context["tap_settings_form"] = tap_settings_form
    context["delete_tap_form"] = forms.DeleteTapForm()
    return render(request, "kegadmin/tap_detail.html", context=context)