From: Stephen Burrows Date: Mon, 14 Feb 2011 19:13:19 +0000 (-0500) Subject: Merge branch 'master' into julian X-Git-Tag: philo-0.9~15^2~3^2~9 X-Git-Url: http://git.ithinksw.org/philo.git/commitdiff_plain/6b33b7bcb0da390da4bb1928750f5cdbe1a6800c?hp=359b38924a79d43588a6a7097a154cb3d2fde62d Merge branch 'master' into julian --- diff --git a/contrib/penfield/migrations/0003_auto__add_field_newsletterview_feed_type__add_field_newsletterview_ite.py b/contrib/penfield/migrations/0003_auto__add_field_newsletterview_feed_type__add_field_newsletterview_ite.py index 1f6d829..eae496e 100644 --- a/contrib/penfield/migrations/0003_auto__add_field_newsletterview_feed_type__add_field_newsletterview_ite.py +++ b/contrib/penfield/migrations/0003_auto__add_field_newsletterview_feed_type__add_field_newsletterview_ite.py @@ -9,7 +9,7 @@ class Migration(SchemaMigration): def forwards(self, orm): # Adding field 'NewsletterView.feed_type' - db.add_column('penfield_newsletterview', 'feed_type', self.gf('django.db.models.fields.CharField')(default='atom', max_length=50), keep_default=False) + db.add_column('penfield_newsletterview', 'feed_type', self.gf('django.db.models.fields.CharField')(default='application/atom+xml', max_length=50), keep_default=False) # Adding field 'NewsletterView.item_title_template' db.add_column('penfield_newsletterview', 'item_title_template', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='penfield_newsletterview_title_related', null=True, to=orm['philo.Template']), keep_default=False) diff --git a/contrib/shipherd/models.py b/contrib/shipherd/models.py index 8efc57a..654f5f8 100644 --- a/contrib/shipherd/models.py +++ b/contrib/shipherd/models.py @@ -148,18 +148,19 @@ class NavigationManager(models.Manager): # about that. TODO: Benchmark it. caches = self.__class__._cache[self.db][node].values() - items = [] + target_pks = set() for cache in caches: - items += cache['items'] + target_pks |= set([item.target_node_id for item in cache['items']]) # A distinct query is not strictly necessary. TODO: benchmark the efficiency # with/without distinct. - targets = list(Node.objects.filter(shipherd_navigationitem_related__in=items).distinct()) + targets = list(Node.objects.filter(pk__in=target_pks).distinct()) for cache in caches: for item in cache['items']: - item.target_node = targets[targets.index(item.target_node)] + if item.target_node_id: + item.target_node = targets[targets.index(item.target_node)] def clear_cache(self): self.__class__._cache.pop(self.db, None) diff --git a/contrib/shipherd/templatetags/shipherd.py b/contrib/shipherd/templatetags/shipherd.py index 98e3e6b..fa4ec3e 100644 --- a/contrib/shipherd/templatetags/shipherd.py +++ b/contrib/shipherd/templatetags/shipherd.py @@ -84,13 +84,16 @@ def recursenavigation(parser, token): @register.filter def has_navigation(node, key=None): - nav = node.navigation - if key is not None: - if key in nav and bool(node.navigation[key]): - return True - elif key not in node.navigation: - return False - return bool(node.navigation) + try: + nav = node.navigation + if key is not None: + if key in nav and bool(node.navigation[key]): + return True + elif key not in node.navigation: + return False + return bool(node.navigation) + except: + return False @register.filter diff --git a/contrib/waldo/models.py b/contrib/waldo/models.py index 3286aa0..d35e22a 100644 --- a/contrib/waldo/models.py +++ b/contrib/waldo/models.py @@ -416,7 +416,7 @@ class AccountMultiView(LoginMultiView): user.email = email user.save() messages.add_message(request, messages.SUCCESS, 'Email changed successfully.') - return HttpReponseRedirect(self.reverse('account', node=request.node)) + return HttpResponseRedirect(self.reverse('account', node=request.node)) raise Http404 diff --git a/models/nodes.py b/models/nodes.py index 10c51b4..07a5e0a 100644 --- a/models/nodes.py +++ b/models/nodes.py @@ -114,8 +114,8 @@ class View(Entity): try: subpath = reverse(view_name, urlconf=self, args=args or [], kwargs=kwargs or {}) - except NoReverseMatch: - raise ViewCanNotProvideSubpath + except NoReverseMatch, e: + raise ViewCanNotProvideSubpath(e.message) if node is not None: return node.construct_url(subpath) @@ -219,7 +219,7 @@ class TargetURLModel(models.Model): try: self.get_target_url() - except NoReverseMatch, e: + except (NoReverseMatch, ViewCanNotProvideSubpath), e: raise ValidationError(e.message) super(TargetURLModel, self).clean()