Added 'unique' check to SlugTreeEntity for cases where the parent is None. Set tagCre...
authorStephen Burrows <stephen.r.burrows@gmail.com>
Thu, 2 Jun 2011 14:34:11 +0000 (10:34 -0400)
committerStephen Burrows <stephen.r.burrows@gmail.com>
Thu, 2 Jun 2011 21:41:09 +0000 (17:41 -0400)
philo/models/base.py
philo/static/philo/js/TagCreation.js

index 0218261..f9c22f9 100644 (file)
@@ -1,7 +1,7 @@
 from django import forms
 from django.contrib.contenttypes.models import ContentType
 from django.contrib.contenttypes import generic
 from django import forms
 from django.contrib.contenttypes.models import ContentType
 from django.contrib.contenttypes import generic
-from django.core.exceptions import ObjectDoesNotExist
+from django.core.exceptions import ValidationError
 from django.core.validators import RegexValidator
 from django.db import models
 from django.utils import simplejson as json
 from django.core.validators import RegexValidator
 from django.db import models
 from django.utils import simplejson as json
@@ -522,6 +522,15 @@ class SlugTreeEntity(TreeEntity):
                return super(SlugTreeEntity, self).get_path(root, pathsep, field)
        path = property(get_path)
        
                return super(SlugTreeEntity, self).get_path(root, pathsep, field)
        path = property(get_path)
        
+       def clean(self):
+               if self.parent is None:
+                       try:
+                               self._default_manager.exclude(pk=self.pk).get(slug=self.slug, parent__isnull=True)
+                       except self.DoesNotExist:
+                               pass
+                       else:
+                               raise ValidationError(self.unique_error_message(self.__class__, ('parent', 'slug')))
+       
        class Meta:
                unique_together = ('parent', 'slug')
                abstract = True
\ No newline at end of file
        class Meta:
                unique_together = ('parent', 'slug')
                abstract = True
\ No newline at end of file
index 610a4f0..a23e609 100644 (file)
@@ -85,6 +85,9 @@ var tagCreation = window.tagCreation;
                        addEvent(input, 'keypress', function(e) {
                                if ((e.which && e.which == 13) || (e.keyCode && e.keyCode == 13)) {
                                        e.preventDefault();
                        addEvent(input, 'keypress', function(e) {
                                if ((e.which && e.which == 13) || (e.keyCode && e.keyCode == 13)) {
                                        e.preventDefault();
+                                       if (select.options.length == 0) {
+                                               tagCreation.addTagFromSlug(addLink);
+                                       }
                                }
                        })
                },
                                }
                        })
                },