From 5d7c130063aa776d8d49bbd2b7f7739ff8331594 Mon Sep 17 00:00:00 2001 From: Kriti Godey Date: Thu, 4 Mar 2010 23:13:58 -0500 Subject: [PATCH] login, signup, logout and add sandwich buttons appear according to whether a user is logged in. also, logout works. --- templates/base.html | 18 +++++++++++++----- urls.py | 1 + views.py | 29 +++++++++++++++++++++-------- 3 files changed, 35 insertions(+), 13 deletions(-) diff --git a/templates/base.html b/templates/base.html index 12d9efb..2c15dee 100644 --- a/templates/base.html +++ b/templates/base.html @@ -12,11 +12,13 @@ + +
{% block content %} diff --git a/urls.py b/urls.py index b370aff..dfab245 100644 --- a/urls.py +++ b/urls.py @@ -9,6 +9,7 @@ urlpatterns = patterns('', (r'^sandwich/(?P[-\w]+)/(?P[-\w]+)/$', views.sandwich_month), url(r'^sandwich/(?P[-\w]+)/$', views.specific_sandwich, name='sandwich_by_slug'), (r'^login/$', views.login_view), + (r'^logout/$', views.logout_view), (r'^signup/$', views.create_user), (r'', views.baseview), ) diff --git a/views.py b/views.py index 6afbe78..6395205 100644 --- a/views.py +++ b/views.py @@ -5,7 +5,7 @@ from django.shortcuts import render_to_response from django.core.files.uploadedfile import SimpleUploadedFile from models import Sandwich, Ingredient from django.http import Http404 -from django.contrib.auth import authenticate, login +from django.contrib.auth import authenticate, login, logout from django.contrib.auth.forms import AuthenticationForm import datetime @@ -25,7 +25,7 @@ def add_sandwich(request): return HttpResponse(thankshtml) # Redirect after POST else: form = SandwichForm() # An unbound form - return render_to_response('sandwich.html', {'sform': form, 'sandwiches': sandwiches,}) + return render_to_response('sandwich.html', {'sform': form, 'sandwiches': sandwiches, 'user': request.user,}) else: thankshtml = "

You are not logged in.

" return HttpResponse(thankshtml) # Redirect after POST @@ -46,7 +46,7 @@ def add_ingredient(request): else: form = IngredientForm() # An unbound form - return render_to_response('ingredient.html', {'iform': form, 'sandwiches': sandwiches}) + return render_to_response('ingredient.html', {'iform': form, 'sandwiches': sandwiches, 'user': request.user,}) else: thankshtml = "

You are not logged in.

" return HttpResponse(thankshtml) # Redirect after POST @@ -60,7 +60,7 @@ def all_sandwich(request): sandwiches = Sandwich.objects.order_by('date_made') except Sandwich.DoesNotExist: raise Http404 - return render_to_response('allsandwiches.html', {'allsandwiches': allsandwiches, 'sandwiches': sandwiches}) + return render_to_response('allsandwiches.html', {'allsandwiches': allsandwiches, 'sandwiches': sandwiches, 'user': request.user,}) def baseview(request): @@ -85,7 +85,7 @@ def sandwich_month(request, year, month): sandwiches = Sandwich.objects.order_by('date_made') except Sandwich.DoesNotExist: raise Http404 - return render_to_response('allsandwiches.html', {'allsandwiches': ms, 'sandwiches': sandwiches,}) + return render_to_response('allsandwiches.html', {'allsandwiches': ms, 'sandwiches': sandwiches, 'user': request.user,}) def specific_sandwich(request, slug): @@ -97,7 +97,20 @@ def specific_sandwich(request, slug): sandwiches = Sandwich.objects.order_by('date_made') except Sandwich.DoesNotExist: raise Http404 - return render_to_response('onesandwich.html', {'s': s, 'sandwiches': sandwiches,}) + return render_to_response('onesandwich.html', {'s': s, 'sandwiches': sandwiches, 'user': request.user,}) + +def logout_view(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(): + logout(request) + thankshtml = "

You have been logged out.

" + return HttpResponse(thankshtml) + else: + thankshtml = "

You are not logged in.

" + return HttpResponse(thankshtml) def login_view(request): @@ -122,7 +135,7 @@ def login_view(request): return HttpResponse(thankshtml) except KeyError: aform = AuthenticationForm() - return render_to_response('login.html', {'aform': aform, 'sandwiches': sandwiches,}) + return render_to_response('login.html', {'aform': aform, 'sandwiches': sandwiches, 'user': request.user,}) def create_user(request): @@ -155,4 +168,4 @@ def create_user(request): return HttpResponse(thankshtml) # Redirect after POST else: form = NewUserForm() # An unbound form - return render_to_response('newuser.html', {'cform': form, 'sandwiches': sandwiches,}) \ No newline at end of file + return render_to_response('newuser.html', {'cform': form, 'sandwiches': sandwiches, 'user': request.user,}) \ No newline at end of file -- 2.20.1