Merge branch 'master' into debian
[snf-cloudcms] / cloudcmsblog / models.py
index 634d39b..989f19f 100644 (file)
@@ -53,7 +53,7 @@ from feincms.module.page.extensions.navigation import NavigationExtension
 from feincms.module.page.extensions.navigation import PagePretender
 from feincms.content.application.models import ApplicationContent
 
-from cloudcms.models import Application
+from cloudcms.cms_utils import get_app_page
 
 # monkeypatch django reverse (feincms 1.5+ solves this issue)
 urlresolvers.reverse = reverse
@@ -73,6 +73,9 @@ class Category(models.Model, translations.TranslatedObjectMixin):
 
     objects = translations.TranslatedObjectManager()
 
+    def entries_count(self):
+        return self.blogentries.count()
+
     def __unicode__(self):
         trans = translations.TranslatedObjectMixin.__unicode__(self)
         return trans or _('Unnamed category')
@@ -114,6 +117,13 @@ class EntryManager(models.Manager):
     def latest(self, limit=3):
         return self.filter()[:limit]
 
+
+def get_blog_page():
+    """
+    Returns Page model that has been associated with blog application
+    """
+    return get_app_page(Page, "cloudcmsblog")
+
 class Entry(Base):
     """
     Blog post entry
@@ -129,7 +139,7 @@ class Entry(Base):
     intro_text = models.TextField(max_length=255,
             help_text="Displayed in list views", blank=True)
     image = MediaFileForeignKey(MediaFile, null=True, blank=True)
-    application = models.ManyToManyField(Application,
+    application = models.ManyToManyField('cloudcms.Application',
             related_name="blogentries",
             verbose_name=_('application'))
 
@@ -166,9 +176,7 @@ class Entry(Base):
         # ugly hack to fix proper application reverse url
         BLOG_URL = ""
         try:
-            AC = Page.content_type_for(ApplicationContent)
-            blog_block = AC.objects.filter(urlconf_path="cloudcmsblog")[0]
-            BLOG_URL = blog_block.parent.get_navigation_url()
+            BLOG_URL = get_blog_page().get_navigation_url()
         except Exception, e:
             print e
 
@@ -177,6 +185,9 @@ class Entry(Base):
         else:
             return BLOG_URL + r.lstrip('/')
 
+    def back_url(self):
+        return get_blog_page().get_navigation_url()
+
 
 # Feincms navigation extension
 class BlogCategoriesNavigationExtension(NavigationExtension):