1
0
mirror of https://github.com/creyD/asiimov.git synced 2026-06-13 09:32:23 +02:00

Profile and Settings Work

- Added logout button + url
- Added redirect urls
- Fixed bug where the steam name wouldn't show in template
- Added tradeurl to model
- Added simple profile
- Added ability to change own trade url
This commit is contained in:
2020-01-19 11:14:34 +01:00
parent 1f8aaa7277
commit 9d32b12b05
14 changed files with 167 additions and 19 deletions

View File

@@ -17,6 +17,8 @@ from .steam_api import getUserInfo
# Import for manually logging in user after creation
from django.contrib.auth import login
from .forms import ChangeTradeUrl
# HELPER
def validate_steam_login(params):
@@ -92,14 +94,14 @@ def signup_confirm(request):
Gamer.objects.create(
steamid=claimed_id,
system_user=new_user,
communityvisibilitystate=(True if info['response']['players'][0]['communityvisibilitystate'] == 3 else False),
profilestate=info['response']['players'][0]['profilestate'],
personaname=info['response']['players'][0]['personaname'],
profileurl=info['response']['players'][0]['profileurl'],
avatar=info['response']['players'][0]['avatar'],
commentpermission=info['response']['players'][0]['commentpermission'],
timecreated=info['response']['players'][0]['timecreated'] or None,
loccountrycode=info['response']['players'][0]['loccountrycode'] or None
communityvisibilitystate=(True if info['communityvisibilitystate'] == 3 else False),
profilestate=info['profilestate'],
personaname=info['personaname'],
profileurl=info['profileurl'],
avatar=info['avatar'],
commentpermission=info['commentpermission'],
timecreated=info['timecreated'] or None,
loccountrycode=info['loccountrycode'] or None
)
login(request, new_user)
return redirect(me)
@@ -132,16 +134,41 @@ def offer_create(request):
@login_required
def profile(request, steamID):
dude = get_object_or_404(Gamer, steamid=steamID)
return render(request, 'core/profile.html', {'gamer': dude})
return render(request, 'profile/profile.html', {'gamer': dude, 'live_offers': Offer.objects.filter(offeror=dude).count()})
@login_required
def profile_update(request, steamID):
if (request.user.steamid == steamID and request.user.gamer.API_KEY) or request.user.is_staff:
the_gamer = get_object_or_404(Gamer, steamid=steamID)
info = getUserInfo(steamID, API_KEY=request.user.gamer.API_KEY or None)
the_gamer.communityvisibilitystate = (True if info['communityvisibilitystate'] == 3 else False)
the_gamer.profilestate = info['profilestate']
the_gamer.personaname = info['personaname']
the_gamer.profileurl = info['profileurl']
the_gamer.avatar = info['avatar']
the_gamer.commentpermission = info['commentpermission']
if 'timecreated' in info:
the_gamer.timecreated = info['timecreated']
if 'loccountrycode' in info:
the_gamer.loccountrycode = info['loccountrycode']
the_gamer.save()
return redirect(profile, steamID=steamID)
else:
return HttpResponseForbidden()
# PRIVATE AREA
@login_required
def me(request):
return render(request, 'core/profile.html', {'gamer': Gamer.objects.get(system_user=request.user)})
dude = get_object_or_404(Gamer, steamid=request.user.gamer.steamid)
return render(request, 'profile/profile.html', {'gamer': dude, 'live_offers': Offer.objects.filter(offeror=dude).count()})
@login_required
def me_settings(request):
dude = get_object_or_404(Gamer, system_user=request.user)
return render(request, 'core/settings.html', {'gamer': dude})
trade_form = ChangeTradeUrl(request.POST or None, instance=dude)
if trade_form.is_valid() and request.method == 'POST':
dude.tradeurl = trade_form.cleaned_data['trade_url']
dude.save()
return render(request, 'profile/settings.html', {'gamer': dude, 'form': trade_form})