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:
parent
aa5aeaccc3
commit
90faaf9d01
2 changed files with 26 additions and 17 deletions
|
|
@ -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):
|
||||||
|
|
|
||||||
|
|
@ -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)
|
||||||
Loading…
Add table
Add a link
Reference in a new issue