Some fixes to the way the admin initiates new player objects.

This commit is contained in:
Griatch 2013-02-12 19:54:11 +01:00
parent 0b4c4feb6e
commit a1dc7451ef
2 changed files with 49 additions and 41 deletions

View file

@ -133,15 +133,22 @@ class UserAdmin(BaseUserAdmin):
def save_formset(self, request, form, formset, change): def save_formset(self, request, form, formset, change):
"Run all hooks on the player object" "Run all hooks on the player object"
super(UserAdmin, self).save_formset(request, form, formset, change) super(UserAdmin, self).save_formset(request, form, formset, change)
playerdb = form.instance.get_profile() userobj = form.instance
playerobj = userobj.get_profile()
if not change: if not change:
#uname, passwd, email = str(request.POST.get(u"username")), \
# str(request.POST.get(u"password1")), str(request.POST.get(u"email"))
typeclass = str(request.POST.get(u"playerdb_set-0-db_typeclass_path"))
create.create_player("","","", create.create_player("","","",
typeclass=playerdb.db_typeclass_path, user=userobj,
create_character=False, typeclass=typeclass,
player_dbobj=playerdb) player_dbobj=playerobj,
if playerdb.db_obj: create_character=False)
playerdb.db_obj.db_player = playerdb
playerdb.db_obj.save() # if playerdb.db_obj:
# playerdb.db_obj.db_player = playerdb
# playerdb.db_obj.save()
#assert False, (form.instance, form.instance.get_profile()) #assert False, (form.instance, form.instance.get_profile())

View file

@ -477,6 +477,7 @@ def create_player(name, email, password,
# use the typeclass from this object # use the typeclass from this object
typeclass = new_db_player.typeclass_path typeclass = new_db_player.typeclass_path
else: else:
new_user = User.objects.get(username=new_user.username)
new_db_player = _PlayerDB(db_key=name, user=new_user) new_db_player = _PlayerDB(db_key=name, user=new_user)
new_db_player.save() new_db_player.save()
# assign the typeclass # assign the typeclass
@ -521,7 +522,7 @@ def create_player(name, email, password,
player=new_player, report_to=report_to) player=new_player, report_to=report_to)
return new_character return new_character
return new_player return new_player
except Exception, e: except Exception:
# a failure in creating the character # a failure in creating the character
if not user: if not user:
# in there was a failure we clean up everything we can # in there was a failure we clean up everything we can
@ -538,7 +539,7 @@ def create_player(name, email, password,
del new_character del new_character
except Exception: except Exception:
pass pass
raise e raise
# alias # alias
player = create_player player = create_player