Deleting sandwiches works.
[~kgodey/maayanwich.git] / views.py
index 309aa2f..7db1ab5 100644 (file)
--- a/views.py
+++ b/views.py
@@ -6,6 +6,7 @@ from django.core.files.uploadedfile import SimpleUploadedFile
 from models import Sandwich, Ingredient
 from django.contrib.auth import authenticate, login, logout
 from django.contrib.auth.forms import AuthenticationForm
 from models import Sandwich, Ingredient
 from django.contrib.auth import authenticate, login, logout
 from django.contrib.auth.forms import AuthenticationForm
+from django.contrib.comments.models import Comment
 from django.template import RequestContext
 from django.core import serializers
 from slugify import SlugifyUniquely
 from django.template import RequestContext
 from django.core import serializers
 from slugify import SlugifyUniquely
@@ -38,7 +39,7 @@ def add_sandwich(request):
                                for n in y:
                                        if n.isdigit():
                                                newsandwich.ingredients.add(Ingredient.objects.get(id=n))
                                for n in y:
                                        if n.isdigit():
                                                newsandwich.ingredients.add(Ingredient.objects.get(id=n))
-                                       else:
+                                       elif n[:4] == 'new:' and len(n) > 4:
                                                n = n.lstrip('new:')
                                                newingredient = Ingredient(name=n, slug=SlugifyUniquely(n, Ingredient))
                                                newingredient.save()
                                                n = n.lstrip('new:')
                                                newingredient = Ingredient(name=n, slug=SlugifyUniquely(n, Ingredient))
                                                newingredient.save()
@@ -50,6 +51,54 @@ def add_sandwich(request):
                return render_to_response('sandwich.html', {'sform': form,}, context_instance=RequestContext(request))
        else:
                return HttpResponseRedirect(reverse('login2'))
                return render_to_response('sandwich.html', {'sform': form,}, context_instance=RequestContext(request))
        else:
                return HttpResponseRedirect(reverse('login2'))
+               
+def edit_sandwich(request, slug):
+       sedit = Sandwich.objects.get(slug=slug)
+       ingred = sedit.ingredients.all()
+       if request.user.is_authenticated():
+               if not sedit.user == request.user:
+                       return HttpResponseRedirect(reverse('all_sandwiches'))
+               else:   
+                       if request.method == 'POST':
+                               sform = SandwichForm(request.POST, request.FILES, instance=sedit)
+                               if sform.is_valid(): # All validation rules pass
+                                       sedit.adjective = request.POST['adjective']
+                                       sedit.date_made = request.POST['date_made']
+                                       sedit.notes = request.POST['notes']
+                                       for ig in sedit.ingredients.all():
+                                               sedit.ingredients.remove(ig)
+                                       if request.POST['picture']:
+                                               sedit.picture = request.POST['picture']
+                                       x = request.POST['ing']
+                                       x = x.strip()
+                                       y = x.split(',')
+                                       for n in y:
+                                               if n.isdigit():
+                                                       sedit.ingredients.add(Ingredient.objects.get(id=n))
+                                               elif n[:4] == 'new:' and len(n) > 4:
+                                                       n = n.lstrip('new:')
+                                                       newingredient = Ingredient(name=n, slug=SlugifyUniquely(n, Ingredient))
+                                                       newingredient.save()
+                                                       sedit.ingredients.add(newingredient)
+                                       sedit.save()
+                                       return HttpResponseRedirect(sedit.get_absolute_url())
+                       else:
+                               sform = SandwichForm(instance=sedit)
+                       return render_to_response('editsandwich.html', {'sform': sform, 's':sedit, 'prepop': ingred, }, context_instance=RequestContext(request))
+       else:
+               return HttpResponseRedirect(reverse('login2'))
+               
+def del_sandwich(request, slug):
+       if request.user.is_authenticated():
+               if Sandwich.objects.get(slug=slug):
+                       del_sandwich = Sandwich.objects.get(slug=slug)
+                       if request.user == del_sandwich.user:
+                               del_sandwich.delete()
+                       return HttpResponseRedirect(reverse('all_sandwiches'))
+               else:
+                       return HttpResponseRedirect(reverse('all_sandwiches'))
+       else:
+               return HttpResponseRedirect(reverse('login2'))
 
 def add_ingredient(request):
        if request.user.is_authenticated():
 
 def add_ingredient(request):
        if request.user.is_authenticated():
@@ -70,7 +119,7 @@ def add_ingredient(request):
 
 def all_sandwich(request):
        try:
 
 def all_sandwich(request):
        try:
-               allsandwiches = Sandwich.objects.all()
+               allsandwiches = Sandwich.objects.order_by('-date_made')
        except Sandwich.DoesNotExist:
                raise Http404
        return render_to_response('allsandwiches.html', {'allsandwiches': allsandwiches,}, context_instance=RequestContext(request))
        except Sandwich.DoesNotExist:
                raise Http404
        return render_to_response('allsandwiches.html', {'allsandwiches': allsandwiches,}, context_instance=RequestContext(request))
@@ -193,6 +242,15 @@ def create_user(request):
        else:
                form = NewUserForm() # An unbound form
                return render_to_response('newuser.html', {'cform': form,}, context_instance=RequestContext(request))
        else:
                form = NewUserForm() # An unbound form
                return render_to_response('newuser.html', {'cform': form,}, context_instance=RequestContext(request))
+               
+
+def comment_posted(request):
+       if request.GET['c']:
+               comment_id  = request.GET['c']
+               com = Comment.objects.get( pk = comment_id )
+               post = com.content_object
+               if post:
+                       return HttpResponseRedirect( post.get_absolute_url() + '#comments' )
 
 
 def ajaxfun(request):
 
 
 def ajaxfun(request):