Edit sandwich method added - not completely working yet. Adds a new sandwich instead...
[~kgodey/maayanwich.git] / views.py
index 39ec141..554fbac 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
@@ -50,6 +51,41 @@ 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)
+       if sedit.picture:
+               savedpicture = sedit.picture.url
+       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
+                                       sform.save()
+                                       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))
+                                               else:
+                                                       n = n.lstrip('new:')
+                                                       newingredient = Ingredient(name=n, slug=SlugifyUniquely(n, Ingredient))
+                                                       newingredient.save()
+                                                       sedit.ingredients.add(newingredient)
+                                       if not sedit.picture:
+                                               if savedpicture:
+                                                       sedit.picture = savedpicture
+                                       sedit.slug = slug
+                                       sedit.save()
+                                       return HttpResponseRedirect(sedit.get_absolute_url())
+                       else:
+                               sform = SandwichForm(instance=sedit)
+                       return render_to_response('editsandwich.html', {'sform': sform, 's':sedit,}, context_instance=RequestContext(request))
+       else:
+               return HttpResponseRedirect(reverse('login2'))
 
 def add_ingredient(request):
        if request.user.is_authenticated():
 
 def add_ingredient(request):
        if request.user.is_authenticated():
@@ -193,6 +229,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):