1 from django.http import HttpResponse
2 from django.contrib.auth.models import User
3 from forms import SandwichForm, IngredientForm, NewUserForm
4 from django.shortcuts import render_to_response
5 from django.core.files.uploadedfile import SimpleUploadedFile
6 from models import Sandwich, Ingredient
7 from django.http import Http404
8 from django.contrib.auth import authenticate, login
9 from django.contrib.auth.forms import AuthenticationForm
13 def add_sandwich(request):
14 if request.method == 'POST': # If the form has been submitted...
15 form = SandwichForm(request.POST, request.FILES) # A form bound to the POST data
16 if form.is_valid(): # All validation rules pass
17 newsandwich = form.save()
19 thankshtml = "<p class=\"formthanks\">Thanks! Your sandwich has been added!</p>"
20 return HttpResponse(thankshtml) # Redirect after POST
22 form = SandwichForm() # An unbound form
24 if Sandwich.objects.count() > 5:
25 sandwiches = Sandwich.objects.order_by('date_made')[:5]
27 sandwiches = Sandwich.objects.order_by('date_made')
29 return render_to_response('sandwich.html', {'sform': form, 'sandwiches': sandwiches,})
32 def add_ingredient(request):
33 if Sandwich.objects.count() > 5:
34 sandwiches = Sandwich.objects.order_by('date_made')[:5]
36 sandwiches = Sandwich.objects.order_by('date_made')
37 if request.method == 'POST': # If the form has been submitted...
38 form = IngredientForm(request.POST) # A form bound to the POST data
39 if form.is_valid(): # All validation rules pass
40 newsandwich = form.save()
42 thankshtml = "<p class=\"formthanks\">Thanks! Your ingredient has been saved!</p>"
43 return HttpResponse(thankshtml) # Redirect after POST
45 form = IngredientForm() # An unbound form
47 return render_to_response('ingredient.html', {'iform': form, 'sandwiches': sandwiches})
50 def all_sandwich(request):
52 allsandwiches = Sandwich.objects.all()
53 if Sandwich.objects.count() > 5:
54 sandwiches = Sandwich.objects.order_by('date_made')[:5]
56 sandwiches = Sandwich.objects.order_by('date_made')
57 except Sandwich.DoesNotExist:
59 return render_to_response('allsandwiches.html', {'allsandwiches': allsandwiches, 'sandwiches': sandwiches})
62 def baseview(request):
64 if Sandwich.objects.count() > 5:
65 sandwiches = Sandwich.objects.order_by('date_made')[:5]
66 allsandwiches = Sandwich.objects.all()
68 sandwiches = Sandwich.objects.order_by('date_made')
69 allsandwiches = Sandwich.objects.all()
70 except Sandwich.DoesNotExist:
72 return render_to_response('base.html', {'sandwiches': sandwiches, 'all': allsandwiches,})
75 def sandwich_month(request, year, month):
77 sandwiches = Sandwich.objects.filter(date_made__month=month, date_made__year=year)
78 except Sandwich.DoesNotExist:
80 return render_to_response('allsandwiches.html', {'sandwiches': sandwiches,})
83 def specific_sandwich(request, slug):
85 s = Sandwich.objects.get(slug=slug)
86 if Sandwich.objects.count() > 5:
87 sandwiches = Sandwich.objects.order_by('date_made')[:5]
89 sandwiches = Sandwich.objects.order_by('date_made')
90 except Sandwich.DoesNotExist:
92 return render_to_response('onesandwich.html', {'s': s, 'sandwiches': sandwiches,})
95 def login_view(request):
96 if Sandwich.objects.count() > 5:
97 sandwiches = Sandwich.objects.order_by('date_made')[:5]
99 sandwiches = Sandwich.objects.order_by('date_made')
101 username = request.POST['username']
102 password = request.POST['password']
103 user = authenticate(username=username, password=password)
107 thankshtml = "<p class=\"formthanks\">You have been logged in</p>"
108 return HttpResponse(thankshtml)
110 thankshtml = "<p class=\"formthanks\">Disabled account. Sorry.</p>"
111 return HttpResponse(thankshtml)
113 thankshtml = "<p class=\"formthanks\">Invalid login!</p>"
114 return HttpResponse(thankshtml)
116 aform = AuthenticationForm()
117 return render_to_response('login.html', {'aform': aform, 'sandwiches': sandwiches,})
119 def create_user(request):
120 if Sandwich.objects.count() > 5:
121 sandwiches = Sandwich.objects.order_by('date_made')[:5]
123 sandwiches = Sandwich.objects.order_by('date_made')
124 if request.user.is_authenticated():
125 thankshtml = "<p class=\"formthanks\">You are already logged in!</p>"
126 return HttpResponse(thankshtml)
127 elif request.method == 'POST': # If the form has been submitted...
128 form = NewUserForm(request.POST) # A form bound to the POST data
129 if form.is_valid(): # All validation rules pass
130 username = form.cleaned_data['username']
131 first_name = form.cleaned_data['first_name']
132 last_name = form.cleaned_data['last_name']
133 password = form.cleaned_data['password']
134 cpassword = form.cleaned_data['confirm_password']
135 email = form.cleaned_data['email']
136 if password == cpassword:
137 user = User.objects.create_user(username, email, password)
139 user.first_name = first_name
140 user.last_name = last_name
142 thankshtml = "<p class=\"formthanks\">Thanks! You are now a new user!</p>"
143 return HttpResponse(thankshtml) # Redirect after POST
145 thankshtml = "<p class=\"formthanks\">Your passwords don't match!</p>"
146 return HttpResponse(thankshtml) # Redirect after POST
148 form = NewUserForm() # An unbound form
149 return render_to_response('newuser.html', {'cform': form, 'sandwiches': sandwiches,})