From 90faaf9d014e4814a901d4af690d54a0437456f7 Mon Sep 17 00:00:00 2001 From: Kelketek Date: Thu, 18 Jul 2013 08:40:48 -0500 Subject: [PATCH] Fixed some issues with the admin interface. These changes may not be the best ones for these datatypes, but they should load now... --- src/objects/admin.py | 16 ++++++++-------- src/players/admin.py | 27 ++++++++++++++++++--------- 2 files changed, 26 insertions(+), 17 deletions(-) diff --git a/src/objects/admin.py b/src/objects/admin.py index 70ee844cb2..f55b75cea2 100644 --- a/src/objects/admin.py +++ b/src/objects/admin.py @@ -7,8 +7,8 @@ from django import forms from django.conf import settings from django.contrib import admin from src.typeclasses.models import Attribute -from src.objects.models import ObjectDB, ObjectNick, Alias -from src.utils.utils import mod_import +from src.objects.models import ObjectDB +from src.typeclasses.models import Tag, LiteAttribute class AttributeInline(admin.TabularInline): @@ -16,14 +16,14 @@ class AttributeInline(admin.TabularInline): fields = ('db_key', 'db_value') extra = 0 -class NickInline(admin.TabularInline): - model = ObjectNick - fields = ('db_nick', 'db_real', 'db_type') +class TagInline(admin.TabularInline): + model = Tag + fields = ('db_key', 'db_category', 'db_data') extra = 0 -class AliasInline(admin.TabularInline): - model = Alias - fields = ("db_key",) +class LiteAttributeInline(admin.TabularInline): + model = LiteAttribute + fields = ('db_key', 'db_category', 'db_data') extra = 0 class ObjectCreateForm(forms.ModelForm): diff --git a/src/players/admin.py b/src/players/admin.py index 5012f557f6..eeed13e340 100644 --- a/src/players/admin.py +++ b/src/players/admin.py @@ -15,17 +15,20 @@ from src.players.models import PlayerDB from src.typeclasses.models import Attribute from src.utils import logger, create -# remove User itself from admin site -admin.site.unregister(User) # handle the custom User editor -class CustomUserChangeForm(UserChangeForm): +class PlayerDBChangeForm(UserChangeForm): + + class Meta: + model = PlayerDB + username = forms.RegexField(label="Username", max_length=30, regex=r'^[\w. @+-]+$', widget=forms.TextInput(attrs={'size':'30'}), error_messages = {'invalid': "This value may contain only letters, spaces, numbers and @/./+/-/_ characters."}, help_text = "30 characters or fewer. Letters, spaces, digits and @/./+/-/_ only.") + def clean_username(self): username = self.cleaned_data['username'] if username.upper() == self.instance.username.upper(): @@ -34,7 +37,12 @@ class CustomUserChangeForm(UserChangeForm): raise forms.ValidationError('A player with that name already exists.') return self.cleaned_data['username'] -class CustomUserCreationForm(UserCreationForm): + +class PlayerDBCreationForm(UserCreationForm): + + class Meta: + model = PlayerDB + username = forms.RegexField(label="Username", max_length=30, regex=r'^[\w. @+-]+$', @@ -72,6 +80,7 @@ class PlayerForm(forms.ModelForm): class Meta: model = PlayerDB + db_key = forms.RegexField(label="Username", initial="PlayerDummy", max_length=30, @@ -117,12 +126,12 @@ class PlayerInline(admin.StackedInline): extra = 1 max_num = 1 -class UserAdmin(BaseUserAdmin): +class PlayerDBAdmin(BaseUserAdmin): "This is the main creation screen for Users/players" list_display = ('username','email', 'is_staff', 'is_superuser') - form = CustomUserChangeForm - add_form = CustomUserCreationForm + form = PlayerDBChangeForm + add_form = PlayerDBCreationForm inlines = [PlayerInline] add_form_template = "admin/players/add_form.html" change_form_template = "admin/players/change_form.html" @@ -145,7 +154,7 @@ class UserAdmin(BaseUserAdmin): # TODO! Remove User reference! def save_formset(self, request, form, formset, change): "Run all hooks on the player object" - super(UserAdmin, self).save_formset(request, form, formset, change) + super(PlayerDBAdmin, self).save_formset(request, form, formset, change) userobj = form.instance playerobj = userobj.get_profile() playerobj.name = userobj.username @@ -158,4 +167,4 @@ class UserAdmin(BaseUserAdmin): typeclass=typeclass, player_dbobj=playerobj) -admin.site.register(User, UserAdmin) +admin.site.register(PlayerDB, PlayerDBAdmin) \ No newline at end of file