Beispiel #1
0
def add(request):
    try:
        extra_hours = int(request.GET["eh"])
    except:
        extra_hours = 7
    HourFormSet = formset_factory(HourForm, extra=extra_hours)
    if request.method == "POST":
        form = RestaurantForm(request.POST)
        hfs = HourFormSet(request.POST)       
        slug = slugify(form.data.get("name"))
        original = None
        try:
            original = Restaurant.objects.all().get(slug=slug)
        except:
            pass
        if original:
            #Add an error to the name field.
            form.errors["name"] = ErrorList(["Name has already been taken"])
        if form.is_valid() and hfs.is_valid() and original != None:
            model = form.save(commit=False)
            model.slug = slugify(model.name)
            model.user = request.user
            model.save()
            for hour in hfs.forms:
                hmodel = hour.save(commit=False)
                if not hmodel.open_time:
                    continue
                hmodel.restaurant = model
                hmodel.save()                
            return HttpResponseRedirect(model.get_absolute_url())
    else:
        form = RestaurantForm()
        hfs = HourFormSet()
    
    return render_to_response("restaurants/add.html", {'form': form, 'hfs':hfs, 'extra_hours':extra_hours+1}, context_instance=RequestContext(request))
Beispiel #2
0
    def post(self, request, *args, **kwargs):

        restaurant_form = RestaurantForm(request.POST, request.FILES, prefix='restaurant')
        address_form = AddressForm(request.POST, prefix='address')

        if not (restaurant_form.is_valid() and address_form.is_valid()):
            return render(request, 'business/signup.html',
                          {'restaurant_form': restaurant_form, 'address_form': address_form})

        restaurant = restaurant_form.save(commit=False)
        restaurant.baseUser = request.user
        restaurant.save()

        address = address_form.save(commit=False)
        address.restaurant = restaurant
        address.save()

        return HttpResponseRedirect(reverse('business:RestaurantPage'))