Fixed some issues with the admin interface. These changes may not be the best ones for these datatypes, but they should load now...

This commit is contained in:
Kelketek 2013-07-18 08:40:48 -05:00
parent aa5aeaccc3
commit 90faaf9d01
2 changed files with 26 additions and 17 deletions

View file

@ -7,8 +7,8 @@ from django import forms
from django.conf import settings from django.conf import settings
from django.contrib import admin from django.contrib import admin
from src.typeclasses.models import Attribute from src.typeclasses.models import Attribute
from src.objects.models import ObjectDB, ObjectNick, Alias from src.objects.models import ObjectDB
from src.utils.utils import mod_import from src.typeclasses.models import Tag, LiteAttribute
class AttributeInline(admin.TabularInline): class AttributeInline(admin.TabularInline):
@ -16,14 +16,14 @@ class AttributeInline(admin.TabularInline):
fields = ('db_key', 'db_value') fields = ('db_key', 'db_value')
extra = 0 extra = 0
class NickInline(admin.TabularInline): class TagInline(admin.TabularInline):
model = ObjectNick model = Tag
fields = ('db_nick', 'db_real', 'db_type') fields = ('db_key', 'db_category', 'db_data')
extra = 0 extra = 0
class AliasInline(admin.TabularInline): class LiteAttributeInline(admin.TabularInline):
model = Alias model = LiteAttribute
fields = ("db_key",) fields = ('db_key', 'db_category', 'db_data')
extra = 0 extra = 0
class ObjectCreateForm(forms.ModelForm): class ObjectCreateForm(forms.ModelForm):

View file

@ -15,17 +15,20 @@ from src.players.models import PlayerDB
from src.typeclasses.models import Attribute from src.typeclasses.models import Attribute
from src.utils import logger, create from src.utils import logger, create
# remove User itself from admin site
admin.site.unregister(User)
# handle the custom User editor # handle the custom User editor
class CustomUserChangeForm(UserChangeForm): class PlayerDBChangeForm(UserChangeForm):
class Meta:
model = PlayerDB
username = forms.RegexField(label="Username", username = forms.RegexField(label="Username",
max_length=30, max_length=30,
regex=r'^[\w. @+-]+$', regex=r'^[\w. @+-]+$',
widget=forms.TextInput(attrs={'size':'30'}), widget=forms.TextInput(attrs={'size':'30'}),
error_messages = {'invalid': "This value may contain only letters, spaces, numbers and @/./+/-/_ characters."}, error_messages = {'invalid': "This value may contain only letters, spaces, numbers and @/./+/-/_ characters."},
help_text = "30 characters or fewer. Letters, spaces, digits and @/./+/-/_ only.") help_text = "30 characters or fewer. Letters, spaces, digits and @/./+/-/_ only.")
def clean_username(self): def clean_username(self):
username = self.cleaned_data['username'] username = self.cleaned_data['username']
if username.upper() == self.instance.username.upper(): if username.upper() == self.instance.username.upper():
@ -34,7 +37,12 @@ class CustomUserChangeForm(UserChangeForm):
raise forms.ValidationError('A player with that name already exists.') raise forms.ValidationError('A player with that name already exists.')
return self.cleaned_data['username'] return self.cleaned_data['username']
class CustomUserCreationForm(UserCreationForm):
class PlayerDBCreationForm(UserCreationForm):
class Meta:
model = PlayerDB
username = forms.RegexField(label="Username", username = forms.RegexField(label="Username",
max_length=30, max_length=30,
regex=r'^[\w. @+-]+$', regex=r'^[\w. @+-]+$',
@ -72,6 +80,7 @@ class PlayerForm(forms.ModelForm):
class Meta: class Meta:
model = PlayerDB model = PlayerDB
db_key = forms.RegexField(label="Username", db_key = forms.RegexField(label="Username",
initial="PlayerDummy", initial="PlayerDummy",
max_length=30, max_length=30,
@ -117,12 +126,12 @@ class PlayerInline(admin.StackedInline):
extra = 1 extra = 1
max_num = 1 max_num = 1
class UserAdmin(BaseUserAdmin): class PlayerDBAdmin(BaseUserAdmin):
"This is the main creation screen for Users/players" "This is the main creation screen for Users/players"
list_display = ('username','email', 'is_staff', 'is_superuser') list_display = ('username','email', 'is_staff', 'is_superuser')
form = CustomUserChangeForm form = PlayerDBChangeForm
add_form = CustomUserCreationForm add_form = PlayerDBCreationForm
inlines = [PlayerInline] inlines = [PlayerInline]
add_form_template = "admin/players/add_form.html" add_form_template = "admin/players/add_form.html"
change_form_template = "admin/players/change_form.html" change_form_template = "admin/players/change_form.html"
@ -145,7 +154,7 @@ class UserAdmin(BaseUserAdmin):
# TODO! Remove User reference! # TODO! Remove User reference!
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(PlayerDBAdmin, self).save_formset(request, form, formset, change)
userobj = form.instance userobj = form.instance
playerobj = userobj.get_profile() playerobj = userobj.get_profile()
playerobj.name = userobj.username playerobj.name = userobj.username
@ -158,4 +167,4 @@ class UserAdmin(BaseUserAdmin):
typeclass=typeclass, typeclass=typeclass,
player_dbobj=playerobj) player_dbobj=playerobj)
admin.site.register(User, UserAdmin) admin.site.register(PlayerDB, PlayerDBAdmin)