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)
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)
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)
def create_tap(request): context = RequestContext(request) form = forms.ChangeKegForm()
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)
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)