# HG changeset patch # User Filip de Waard # Date 1272586783 -7200 # Node ID ed7f680bee10b82c784dddf8b075b548a3070162 # Parent 492aa3843651ac2f2af93b1533c30bc956551ace Refactored model.Feed to use permanent by_slug view diff -r 492aa3843651ac2f2af93b1533c30bc956551ace -r ed7f680bee10b82c784dddf8b075b548a3070162 vix/model/__init__.py --- a/vix/model/__init__.py Fri Apr 30 02:10:39 2010 +0200 +++ b/vix/model/__init__.py Fri Apr 30 02:19:43 2010 +0200 @@ -272,15 +272,9 @@ self.published = datetime.utcnow() self.slug = u'/feeds/%s' % (slug_suggestion or self.title) - by_slug = """function(doc) { - if(doc.slug) { - emit(doc.slug, doc) - } - }""" - #prevent duplicate ID's - while len(db.query(by_slug, key=self.slug)) > 0: - self.slug = util.increment_id(self.slug) + while len(db.view('by_slug/by_slug', key=self.slug)) > 0: + self.slug = util.increment_id(self.slug) self.id = unicode(util.TagURI( authority_name=authority, diff -r 492aa3843651ac2f2af93b1533c30bc956551ace -r ed7f680bee10b82c784dddf8b075b548a3070162 vix/tests/test_models.py --- a/vix/tests/test_models.py Fri Apr 30 02:10:39 2010 +0200 +++ b/vix/tests/test_models.py Fri Apr 30 02:19:43 2010 +0200 @@ -31,6 +31,7 @@ import vix.tests import vix.model as model +import vix.model.views as views import vix.lib.util as util @@ -298,6 +299,9 @@ def test_Feed(self): """Test model.Feed object.""" + #add by_slug CouchDB view + views.by_slug.sync(model.db) + with Replacer() as r: r.replace('vix.model.datetime', _datetime( datetime.datetime(2010, 4, 19, 11, 12, 5)))