X-Git-Url: http://git.ithinksw.org/philo.git/blobdiff_plain/bd4085d74f6ee6e743455b9be8b512ea41b37588..e1a2167421a6b3538a405ec037c72777163fb949:/admin.py?ds=sidebyside diff --git a/admin.py b/admin.py index af97bde..0744e0b 100644 --- a/admin.py +++ b/admin.py @@ -7,7 +7,7 @@ from django.utils.translation import ugettext as _ from django.utils.safestring import mark_safe from django.utils.html import escape from django.utils.text import truncate_words -from models import * +from philo.models import * from django.core.exceptions import ValidationError, ObjectDoesNotExist from validators import TreeParentValidator, TreePositionValidator @@ -45,6 +45,7 @@ class CollectionMemberInline(admin.TabularInline): class CollectionAdmin(admin.ModelAdmin): inlines = [CollectionMemberInline] + list_display = ('name', 'description', 'get_count') class TreeForm(forms.ModelForm): @@ -52,10 +53,13 @@ class TreeForm(forms.ModelForm): super(TreeForm, self).__init__(*args, **kwargs) instance = self.instance instance_class=self.get_instance_class() - try: - self.fields['parent'].queryset = instance_class.objects.exclude(id=instance.id) - except ObjectDoesNotExist: - pass + + if instance_class is not None: + try: + self.fields['parent'].queryset = instance_class.objects.exclude(id=instance.id) + except ObjectDoesNotExist: + pass + self.fields['parent'].validators = [TreeParentValidator(*self.get_validator_args())] def get_instance_class(self): @@ -132,7 +136,7 @@ class ModelLookupWidget(forms.TextInput): class NodeForm(TreeForm): def get_instance_class(self): - return self.instance.node_ptr.__class__ + return Node def get_validator_args(self): return [self.instance, 'instance']