Merge git://github.com/melinath/philo into melinath
[philo.git] / models.py
index 6be9951..c17cd70 100644 (file)
--- a/models.py
+++ b/models.py
@@ -19,7 +19,7 @@ from django.template.loader import get_template
 from django.http import Http404, HttpResponse, HttpResponseServerError, HttpResponseRedirect
 from django.core.servers.basehttp import FileWrapper
 from django.conf import settings
 from django.http import Http404, HttpResponse, HttpResponseServerError, HttpResponseRedirect
 from django.core.servers.basehttp import FileWrapper
 from django.conf import settings
-from philo.validators import URLRedirectValidator
+from philo.validators import RedirectValidator
 
 
 def register_value_model(model):
 
 
 def register_value_model(model):
@@ -220,10 +220,10 @@ class InheritableTreeEntity(TreeEntity):
                        return None
        
        def get_path(self, pathsep='/', field='slug'):
                        return None
        
        def get_path(self, pathsep='/', field='slug'):
-               path = getattr(self.instance, field, '?')
+               path = getattr(self.instance, field, getattr(self.instance, 'slug', '?'))
                parent = self.parent
                while parent:
                parent = self.parent
                while parent:
-                       path = getattr(parent.instance, field, '?') + pathsep + path
+                       path = getattr(parent.instance, field, getattr(parent.instance, 'slug', '?')) + pathsep + path
                        parent = parent.parent
                return path
        path = property(get_path)
                        parent = parent.parent
                return path
        path = property(get_path)
@@ -276,16 +276,13 @@ class Redirect(Node):
                (302, 'Temporary'),
                (301, 'Permanent'),
        )
                (302, 'Temporary'),
                (301, 'Permanent'),
        )
-       target = models.CharField(max_length=200,validators=[URLRedirectValidator()])
+       target = models.CharField(max_length=200,validators=[RedirectValidator()])
        status_code = models.IntegerField(choices=STATUS_CODES, default=302, verbose_name='redirect type')
        
        def render_to_response(self, request, path=None, subpath=None):
                response = HttpResponseRedirect(self.target)
                response.status_code = self.status_code
                return response
        status_code = models.IntegerField(choices=STATUS_CODES, default=302, verbose_name='redirect type')
        
        def render_to_response(self, request, path=None, subpath=None):
                response = HttpResponseRedirect(self.target)
                response.status_code = self.status_code
                return response
-       
-       def __unicode__(self):
-               return self.slug
 
 
 class File(Node):
 
 
 class File(Node):