55from django .contrib .auth .decorators import login_required
66from django .shortcuts import render
77from django .views .decorators .http import require_http_methods
8+ from django .http import HttpResponseRedirect
9+ from django .core .urlresolvers import reverse
10+ from django .contrib .auth .models import User
811
912# Junction Stuff
1013from junction .conferences .models import Conference
1114
15+ # Profile Stuff
16+ from .models import Profile
17+ from .forms import ProfileForm
18+
1219
1320@login_required
1421@require_http_methods (['GET' ])
@@ -22,3 +29,36 @@ def dashboard(request):
2229 conf_proposals [conf .name ] = [proposal ]
2330 return render (request , 'profiles/dashboard.html' ,
2431 {'conf_proposals' : conf_proposals })
32+
33+
34+ @login_required
35+ def profile (request ):
36+ username = request .user
37+ detail = None
38+
39+ if request .method == "POST" and username == request .user :
40+ user = User .objects .get (pk = username .id )
41+ detail = Profile .objects .filter (user = user ).exists ()
42+ if detail :
43+ detail = Profile .objects .get (user = user )
44+ detail_form = ProfileForm (request .POST , instance = detail )
45+ if detail_form .is_valid ():
46+ detail = detail_form .save ()
47+ return HttpResponseRedirect (reverse ('profiles:dashboard' ))
48+ else :
49+ user = User .objects .get (pk = username .id )
50+ detail_form = ProfileForm (request .POST )
51+ if detail_form .is_valid ():
52+ detail_form = detail_form .save (commit = False )
53+ detail_form .user = user
54+ detail_form .save ()
55+ return HttpResponseRedirect (reverse ('profiles:dashboard' ))
56+
57+ elif request .method == "GET" :
58+ user = User .objects .get (pk = username .id )
59+ detail = Profile .objects .filter (user = user ).exists ()
60+ if detail :
61+ detail = Profile .objects .get (user = user )
62+ return render (request , 'profiles/userprofile.html' , {'detail' : detail })
63+ else :
64+ return render (request , 'profiles/userprofile.html' )
0 commit comments