Cleanup the PrimaryCharacterForm to be more "django standard"

This commit is contained in:
2011-07-08 11:14:11 +01:00
parent e201f0153e
commit 99a2c14fe6
2 changed files with 11 additions and 11 deletions

View File

@@ -125,12 +125,14 @@ class EmailChangeForm(forms.Form):
return email2 return email2
def CreatePrimaryCharacterForm(user): class PrimaryCharacterForm(forms.Form):
""" Generate a Primary Character form populated with the user's characters """
chars = EVEPlayerCharacter.objects.filter(eveaccount__user=user) character = forms.ModelChoiceField(queryset=None, required=True, empty_label=None)
class PrimaryCharacter(forms.Form): def __init__(self, *args, **kwargs):
character = forms.ModelChoiceField(queryset=chars, required=True, empty_label=None) self.user = kwargs.pop('user', None)
super(PrimaryCharacterForm, self).__init__(*args, **kwargs)
if self.user:
self.fields['character'].queryset = EVEPlayerCharacter.objects.filter(eveaccount__user=self.user)
return PrimaryCharacter

View File

@@ -22,7 +22,7 @@ from eve_api.tasks import import_apikey, import_apikey_result, update_user_acces
from eve_proxy.models import ApiAccessLog from eve_proxy.models import ApiAccessLog
from sso.models import ServiceAccount, Service, SSOUser, ExistingUser, ServiceError from sso.models import ServiceAccount, Service, SSOUser, ExistingUser, ServiceError
from sso.forms import UserServiceAccountForm, ServiceAccountResetForm, UserLookupForm, APIPasswordForm, EmailChangeForm, CreatePrimaryCharacterForm from sso.forms import UserServiceAccountForm, ServiceAccountResetForm, UserLookupForm, APIPasswordForm, EmailChangeForm, PrimaryCharacterForm
@login_required @login_required
def profile(request): def profile(request):
@@ -278,10 +278,8 @@ def email_change(request):
def primarychar_change(request): def primarychar_change(request):
""" Change the user's primary character """ """ Change the user's primary character """
clsform = CreatePrimaryCharacterForm(request.user)
if request.method == 'POST': if request.method == 'POST':
form = clsform(request.POST) form = PrimaryCharacterForm(request.POST, user=request.user)
if form.is_valid(): if form.is_valid():
profile = request.user.get_profile() profile = request.user.get_profile()
profile.primary_character = form.cleaned_data['character'] profile.primary_character = form.cleaned_data['character']
@@ -289,7 +287,7 @@ def primarychar_change(request):
messages.add_message(request, messages.INFO, "Your primary character has changed to %s." % form.cleaned_data['character']) messages.add_message(request, messages.INFO, "Your primary character has changed to %s." % form.cleaned_data['character'])
return redirect('sso.views.profile') # Redirect after POST return redirect('sso.views.profile') # Redirect after POST
else: else:
form = clsform() # An unbound form form = PrimaryCharacterForm(initial={'character': request.user.get_profile().primary_character}, user=request.user) # An unbound form
return render_to_response('sso/primarycharchange.html', locals(), context_instance=RequestContext(request)) return render_to_response('sso/primarycharchange.html', locals(), context_instance=RequestContext(request))