def beer_new(request): if not request.user.is_superuser: return redirect('brewhouse-display') if request.method == 'POST': form = AddBeerForm(request.POST) if form.is_valid(): b = Beer() b.name = form.cleaned_data['name'] b.style = form.cleaned_data['style'] b.recipe_url = form.cleaned_data['recipe_url'] b.save() # Create some basic events based on the brewed-on date # tuple is of (event_type, days_since_brew_date) brew_date = form.cleaned_data['brew_date'] events = ( (7, 0), # brewing (1, 0), # brewed (2, 0), # primary fermentation (3, 7), # secondary fermentation (4, 21), # kegged (0, 28), # ready! ) for etype, num_days in events: event = Event() event.beer = b event.event_type = etype event.date = brew_date + datetime.timedelta(days=num_days) event.save() return redirect('beer-show', b.id) else: pass # TODO set an error else: form = AddBeerForm() return render(request, 'brewhouse/new_beer.html', locals())