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
objects = translations.TranslatedObjectManager()
+ def entries_count(self):
+ return self.blogentries.count()
+
def __unicode__(self):
trans = translations.TranslatedObjectMixin.__unicode__(self)
return trans or _('Unnamed category')
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
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'))
# 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
else:
return BLOG_URL + r.lstrip('/')
+ def back_url(self):
+ return get_blog_page().get_navigation_url()
+
# Feincms navigation extension
class BlogCategoriesNavigationExtension(NavigationExtension):