Ingredients auto complete, adding ingredients works. Some template tweaks.
[~kgodey/maayanwich.git] / views.py
index 430446c..51be20d 100644 (file)
--- a/views.py
+++ b/views.py
@@ -7,21 +7,21 @@ from models import Sandwich, Ingredient
 from django.contrib.auth import authenticate, login, logout
 from django.contrib.auth.forms import AuthenticationForm
 from django.template import RequestContext
 from django.contrib.auth import authenticate, login, logout
 from django.contrib.auth.forms import AuthenticationForm
 from django.template import RequestContext
+from django.core import serializers
 import datetime
 import datetime
+import django.utils.simplejson as json
 
 def sidebar_context(request):
 
 def sidebar_context(request):
-       if Sandwich.objects.count() > 5:
-               sandwiches = Sandwich.objects.order_by('-date_made')[:5]
+       x = Sandwich.objects.order_by('-date_made')
+       if x.count() > 5:
+               sandwiches = x[:5]
        else:
        else:
-               sandwiches = Sandwich.objects.order_by('-date_made')
-       return {'sandwiches': sandwiches}
+               sandwiches = x
+       monthly = Sandwich.objects.dates('date_made', 'month')
+       return {'sandwiches': sandwiches, 'monthly': monthly, 'user': request.user}
 
 
 def add_sandwich(request):
 
 
 def add_sandwich(request):
-       if Sandwich.objects.count() > 5:
-               sandwiches = Sandwich.objects.order_by('-date_made')[:5]
-       else:
-               sandwiches = Sandwich.objects.order_by('-date_made')
        if request.user.is_authenticated():
                if request.method == 'POST': # If the form has been submitted...
                        form = SandwichForm(request.POST, request.FILES) # A form bound to the POST data
        if request.user.is_authenticated():
                if request.method == 'POST': # If the form has been submitted...
                        form = SandwichForm(request.POST, request.FILES) # A form bound to the POST data
@@ -29,21 +29,24 @@ def add_sandwich(request):
                                newsandwich = form.save(commit=False)
                                newsandwich.user = request.user
                                newsandwich.save()
                                newsandwich = form.save(commit=False)
                                newsandwich.user = request.user
                                newsandwich.save()
+                               x = request.POST['ing']
+                               x = x.strip()
+                               y = x.split(',')
+                               for n in y:
+                                       if n.isdigit():
+                                               newsandwich.ingredients.add(Ingredient.objects.get(id=n))
+                               newsandwich.save()
                                thankshtml = "<p class=\"formthanks\">Thanks! Your sandwich has been added!</p>"
                                return HttpResponse(thankshtml) # Redirect after POST
                else:
                        form = SandwichForm(initial={'user': request.user}) # An unbound form
                                thankshtml = "<p class=\"formthanks\">Thanks! Your sandwich has been added!</p>"
                                return HttpResponse(thankshtml) # Redirect after POST
                else:
                        form = SandwichForm(initial={'user': request.user}) # An unbound form
-               return render_to_response('sandwich.html', {'sform': form, 'user': request.user,}, context_instance=RequestContext(request))
+               return render_to_response('sandwich.html', {'sform': form,}, context_instance=RequestContext(request))
        else:
                thankshtml = "<p class=\"formthanks\">You are not logged in.</p>"
                return HttpResponse(thankshtml) # Redirect after POST
 
 def add_ingredient(request):
        if request.user.is_authenticated():
        else:
                thankshtml = "<p class=\"formthanks\">You are not logged in.</p>"
                return HttpResponse(thankshtml) # Redirect after POST
 
 def add_ingredient(request):
        if request.user.is_authenticated():
-               if Sandwich.objects.count() > 5:
-                       sandwiches = Sandwich.objects.order_by('-date_made')[:5]
-               else:
-                       sandwiches = Sandwich.objects.order_by('-date_made')
                if request.method == 'POST': # If the form has been submitted...
                        form = IngredientForm(request.POST) # A form bound to the POST data
                        if form.is_valid(): # All validation rules pass
                if request.method == 'POST': # If the form has been submitted...
                        form = IngredientForm(request.POST) # A form bound to the POST data
                        if form.is_valid(): # All validation rules pass
@@ -54,7 +57,7 @@ def add_ingredient(request):
                else:
                        form = IngredientForm() # An unbound form
 
                else:
                        form = IngredientForm() # An unbound form
 
-               return render_to_response('ingredient.html', {'iform': form, 'user': request.user,}, context_instance=RequestContext(request))
+               return render_to_response('ingredient.html', {'iform': form,}, context_instance=RequestContext(request))
        else:
                thankshtml = "<p class=\"formthanks\">You are not logged in.</p>"
                return HttpResponse(thankshtml) # Redirect after POST
        else:
                thankshtml = "<p class=\"formthanks\">You are not logged in.</p>"
                return HttpResponse(thankshtml) # Redirect after POST
@@ -62,38 +65,17 @@ def add_ingredient(request):
 def all_sandwich(request):
        try:
                allsandwiches = Sandwich.objects.all()
 def all_sandwich(request):
        try:
                allsandwiches = Sandwich.objects.all()
-               if Sandwich.objects.count() > 5:
-                       sandwiches = Sandwich.objects.order_by('-date_made')[:5]
-               else:
-                       sandwiches = Sandwich.objects.order_by('-date_made')
-       except Sandwich.DoesNotExist:
-               raise Http404
-       return render_to_response('allsandwiches.html', {'allsandwiches': allsandwiches, 'user': request.user,}, context_instance=RequestContext(request))
-
-
-def baseview(request):
-       try:
-               if Sandwich.objects.count() > 5:
-                       sandwiches = Sandwich.objects.order_by('-date_made')[:5]
-                       allsandwiches = Sandwich.objects.all()
-               else:
-                       sandwiches = Sandwich.objects.order_by('-date_made')
-                       allsandwiches = Sandwich.objects.all()
        except Sandwich.DoesNotExist:
                raise Http404
        except Sandwich.DoesNotExist:
                raise Http404
-       return render_to_response('base.html', {'all': allsandwiches,}, context_instance=RequestContext(request))
+       return render_to_response('allsandwiches.html', {'allsandwiches': allsandwiches,}, context_instance=RequestContext(request))
 
 
 def sandwich_month(request, year, month):
        try:
                ms = Sandwich.objects.filter(date_made__month=month, date_made__year=year)
 
 
 def sandwich_month(request, year, month):
        try:
                ms = Sandwich.objects.filter(date_made__month=month, date_made__year=year)
-               if Sandwich.objects.count() > 5:
-                       sandwiches = Sandwich.objects.order_by('-date_made')[:5]
-               else:
-                       sandwiches = Sandwich.objects.order_by('-date_made')
        except Sandwich.DoesNotExist:
                raise Http404
        except Sandwich.DoesNotExist:
                raise Http404
-       return render_to_response('allsandwiches.html', {'allsandwiches': ms, 'user': request.user,}, context_instance=RequestContext(request))
+       return render_to_response('allsandwiches.html', {'allsandwiches': ms,}, context_instance=RequestContext(request))
        
 def current_home(request):
        temp = Sandwich.objects.order_by('-date_made')[0]
        
 def current_home(request):
        temp = Sandwich.objects.order_by('-date_made')[0]
@@ -101,13 +83,9 @@ def current_home(request):
        curr_year = temp.date_made.year
        try:
                ms = Sandwich.objects.filter(date_made__month=curr_month, date_made__year=curr_year)
        curr_year = temp.date_made.year
        try:
                ms = Sandwich.objects.filter(date_made__month=curr_month, date_made__year=curr_year)
-               if Sandwich.objects.count() > 5:
-                       sandwiches = Sandwich.objects.order_by('-date_made')[:5]
-               else:
-                       sandwiches = Sandwich.objects.order_by('-date_made')
        except Sandwich.DoesNotExist:
                raise Http404
        except Sandwich.DoesNotExist:
                raise Http404
-       return render_to_response('allsandwiches.html', {'allsandwiches': ms, 'user': request.user,}, context_instance=RequestContext(request))
+       return render_to_response('allsandwiches.html', {'allsandwiches': ms,}, context_instance=RequestContext(request))
 
 
 def specific_sandwich(request, slug):
 
 
 def specific_sandwich(request, slug):
@@ -119,7 +97,7 @@ def specific_sandwich(request, slug):
                        sandwiches = Sandwich.objects.order_by('-date_made')
        except Sandwich.DoesNotExist:
                raise Http404
                        sandwiches = Sandwich.objects.order_by('-date_made')
        except Sandwich.DoesNotExist:
                raise Http404
-       return render_to_response('onesandwich.html', {'s': s, 'user': request.user,}, context_instance=RequestContext(request))
+       return render_to_response('onesandwich.html', {'s': s,}, context_instance=RequestContext(request))
 
 def logout_view(request):
        if request.user.is_authenticated():
 
 def logout_view(request):
        if request.user.is_authenticated():
@@ -153,7 +131,7 @@ def login_view(request):
                        return HttpResponse(thankshtml)
        except KeyError:
                aform = AuthenticationForm()
                        return HttpResponse(thankshtml)
        except KeyError:
                aform = AuthenticationForm()
-               return render_to_response('login.html', {'aform': aform, 'user': request.user,}, context_instance=RequestContext(request))
+               return render_to_response('login.html', {'aform': aform,}, context_instance=RequestContext(request))
 
 
 def create_user(request):
 
 
 def create_user(request):
@@ -186,4 +164,18 @@ def create_user(request):
                                return HttpResponse(thankshtml) # Redirect after POST   
        else:
                form = NewUserForm() # An unbound form
                                return HttpResponse(thankshtml) # Redirect after POST   
        else:
                form = NewUserForm() # An unbound form
-               return render_to_response('newuser.html', {'cform': form, 'user': request.user,}, context_instance=RequestContext(request))
\ No newline at end of file
+               return render_to_response('newuser.html', {'cform': form,}, context_instance=RequestContext(request))
+
+
+def ajaxfun(request):
+       if request.method == 'GET':
+               if 'q' in request.GET:
+                       query = request.GET['q']
+                       ingredients = Ingredient.objects.filter(name__icontains=query).order_by('name')
+                       responselist = []
+                       for i in ingredients:
+                               responselist.append({'id': str(i.pk), 'name': i.name})
+                       response = json.dumps(responselist)
+                       return HttpResponse(response)
+               else:
+                       return HttpResponse('{}')
\ No newline at end of file