From 115587aa1b91a16546296cd83a3ec7fdfc367a44 Mon Sep 17 00:00:00 2001 From: Griatch Date: Mon, 30 Jun 2014 00:53:30 +0200 Subject: [PATCH] Fixed a bug with creating Player from admin. It is hard to add permissions (these are Tags with a special subsetting). This makes the admin not very useful for creating players at the moment. --- src/commands/cmdparser.py | 1 - src/players/admin.py | 42 +++++++++++++++++++++++---------------- 2 files changed, 25 insertions(+), 18 deletions(-) diff --git a/src/commands/cmdparser.py b/src/commands/cmdparser.py index cc2292d748..8b48bb84eb 100644 --- a/src/commands/cmdparser.py +++ b/src/commands/cmdparser.py @@ -262,7 +262,6 @@ def at_multimatch_cmd(caller, matches): id1 = "" id2 = "" - print "cmd.obj:", cmd, cmd.obj if (not (is_channel or is_exit) and (hasattr(cmd, 'obj') and cmd.obj != caller) and hasattr(cmd.obj, "key")): diff --git a/src/players/admin.py b/src/players/admin.py index 4dd89e684d..b96bab4e78 100644 --- a/src/players/admin.py +++ b/src/players/admin.py @@ -197,23 +197,31 @@ class PlayerDBAdmin(BaseUserAdmin): 'description': "These account details are shared by the admin " "system and the game."},),) - # TODO! Remove User reference! - def save_formset(self, request, form, formset, change): - """ - Run all hooks on the player object - """ - super(PlayerDBAdmin, self).save_formset(request, form, formset, change) - userobj = form.instance - userobj.name = userobj.username + def save_model(self, request, obj, form, change): + obj.save() 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("", "", "", - user=userobj, - typeclass=typeclass, - player_dbobj=userobj) + #calling hooks for new player + ply = obj.typeclass + ply.basetype_setup() + ply.at_player_creation() + + ## TODO! Remove User reference! + #def save_formset(self, request, form, formset, change): + # """ + # Run all hooks on the player object + # """ + # super(PlayerDBAdmin, self).save_formset(request, form, formset, change) + # userobj = form.instance + # userobj.name = userobj.username + # 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("", "", "", + # user=userobj, + # typeclass=typeclass, + # player_dbobj=userobj) admin.site.register(PlayerDB, PlayerDBAdmin)