Merge branch 'develop' into syndication
authorStephen Burrows <stephen.r.burrows@gmail.com>
Sat, 4 Jun 2011 00:37:52 +0000 (20:37 -0400)
committerStephen Burrows <stephen.r.burrows@gmail.com>
Sat, 4 Jun 2011 00:37:52 +0000 (20:37 -0400)
philo/contrib/penfield/models.py
philo/models/base.py
philo/static/philo/js/TagCreation.js

index 39414d8..b229505 100644 (file)
@@ -159,7 +159,7 @@ class BlogView(FeedView):
        @property
        def urlpatterns(self):
                urlpatterns = self.feed_patterns(r'^', 'get_all_entries', 'index_page', 'index') +\
-                       self.feed_patterns(r'^%s/(?P<tag_slugs>[-\w]+[-+/\w]*)$' % self.tag_permalink_base, 'get_entries_by_tag', 'tag_page', 'entries_by_tag')
+                       self.feed_patterns(r'^%s/(?P<tag_slugs>[-\w]+[-+/\w]*)' % self.tag_permalink_base, 'get_entries_by_tag', 'tag_page', 'entries_by_tag')
                
                if self.tag_archive_page:
                        urlpatterns += patterns('',
index 0218261..86569b7 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.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
@@ -16,7 +16,7 @@ from philo.utils.entities import AttributeMapper, TreeAttributeMapper
 from philo.validators import json_validator
 
 
-__all__ = ('Tag', 'value_content_type_limiter', 'register_value_model', 'unregister_value_model', 'JSONValue', 'ForeignKeyValue', 'ManyToManyValue', 'Attribute', 'Entity', 'TreeEntity')
+__all__ = ('Tag', 'value_content_type_limiter', 'register_value_model', 'unregister_value_model', 'JSONValue', 'ForeignKeyValue', 'ManyToManyValue', 'Attribute', 'Entity', 'TreeEntity', 'SlugTreeEntity')
 
 
 class Tag(models.Model):
@@ -522,6 +522,15 @@ class SlugTreeEntity(TreeEntity):
                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
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();
+                                       if (select.options.length == 0) {
+                                               tagCreation.addTagFromSlug(addLink);
+                                       }
                                }
                        })
                },