X-Git-Url: http://git.ithinksw.org/~kgodey/maayanwich.git/blobdiff_plain/1964943395e77b097c3a252c111a149b4d6ed2a3..d70badd3a28a3b951b32e4cf36562ec3cfd9dd41:/views.py?ds=sidebyside diff --git a/views.py b/views.py index 23f9269..cb8e7e6 100644 --- a/views.py +++ b/views.py @@ -1,9 +1,12 @@ from django.http import HttpResponse -from forms import SandwichForm, IngredientForm +from django.contrib.auth.models import User +from forms import SandwichForm, IngredientForm, NewUserForm 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.forms import AuthenticationForm import datetime @@ -18,10 +21,19 @@ def add_sandwich(request): else: form = SandwichForm() # An unbound form - return render_to_response('sandwich.html', {'sform': form,}) + if Sandwich.objects.count() > 5: + sandwiches = Sandwich.objects.order_by('date_made')[:5] + else: + sandwiches = Sandwich.objects.order_by('date_made') + + return render_to_response('sandwich.html', {'sform': form, 'sandwiches': sandwiches,}) def add_ingredient(request): + 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 @@ -32,12 +44,106 @@ def add_ingredient(request): else: form = IngredientForm() # An unbound form - return render_to_response('ingredient.html', {'iform': form,}) + return render_to_response('ingredient.html', {'iform': form, 'sandwiches': sandwiches}) def all_sandwich(request): try: - sandwiches = Sandwich.objects.all() + 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, 'sandwiches': sandwiches}) + + +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 + return render_to_response('base.html', {'sandwiches': sandwiches, 'all': allsandwiches,}) + + +def sandwich_month(request, year, month): + try: + sandwiches = Sandwich.objects.filter(date_made__month=month, date_made__year=year) except Sandwich.DoesNotExist: raise Http404 - return render_to_response('allsandwiches.html', {'sandwiches': sandwiches,}) \ No newline at end of file + return render_to_response('allsandwiches.html', {'sandwiches': sandwiches,}) + + +def specific_sandwich(request, slug): + try: + s = Sandwich.objects.get(slug=slug) + 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('onesandwich.html', {'s': s, 'sandwiches': sandwiches,}) + + +def login_view(request): + if Sandwich.objects.count() > 5: + sandwiches = Sandwich.objects.order_by('date_made')[:5] + else: + sandwiches = Sandwich.objects.order_by('date_made') + try: + username = request.POST['username'] + password = request.POST['password'] + user = authenticate(username=username, password=password) + if user is not None: + if user.is_active: + login(request, user) + thankshtml = "

You have been logged in

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

Disabled account. Sorry.

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

Invalid login!

" + return HttpResponse(thankshtml) + except KeyError: + aform = AuthenticationForm() + return render_to_response('login.html', {'aform': aform, 'sandwiches': sandwiches,}) + +def create_user(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(): + thankshtml = "

You are already logged in!

" + return HttpResponse(thankshtml) + elif request.method == 'POST': # If the form has been submitted... + form = NewUserForm(request.POST) # A form bound to the POST data + if form.is_valid(): # All validation rules pass + username = form.cleaned_data['username'] + first_name = form.cleaned_data['first_name'] + last_name = form.cleaned_data['last_name'] + password = form.cleaned_data['password'] + cpassword = form.cleaned_data['confirm_password'] + email = form.cleaned_data['email'] + if password == cpassword: + user = User.objects.create_user(username, email, password) + user.save() + user.first_name = first_name + user.last_name = last_name + user.save() + thankshtml = "

Thanks! You are now a new user!

" + return HttpResponse(thankshtml) # Redirect after POST + else: + thankshtml = "

Your passwords don't match!

" + 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