Revision 2a32f17b cloudcmsfaq/models.py
b/cloudcmsfaq/models.py | ||
---|---|---|
95 | 95 |
def __unicode__(self): |
96 | 96 |
return self.title |
97 | 97 |
|
98 |
def get_absolute_url(self): |
|
99 |
return reverse('cloudcmsfaq_category_archive', 'cloudcmsfaq.urls', (), { |
|
100 |
'category': self.slug, |
|
101 |
}) |
|
102 |
|
|
103 | 98 |
def save(self, *args, **kwargs): |
104 | 99 |
if not self.slug: |
105 | 100 |
self.slug = slugify(self.title) |
... | ... | |
142 | 137 |
help_text=_('Will be filled in automatically when question gets published.')) |
143 | 138 |
last_changed = models.DateTimeField(_('last change'), auto_now=True, editable=False) |
144 | 139 |
|
140 |
service = models.ForeignKey('cloudcms.Service', verbose_name=_('service'), |
|
141 |
related_name='faqs', null=True, blank=False) |
|
142 |
|
|
145 | 143 |
category = models.ForeignKey(Category, verbose_name=_('category'), |
146 | 144 |
related_name='faqs', null=False, blank=False) |
147 | 145 |
|
... | ... | |
149 | 147 |
|
150 | 148 |
class Meta: |
151 | 149 |
get_latest_by = 'published_on' |
152 |
ordering = ['-published_on'] |
|
150 |
ordering = ['service', 'category', '-published_on']
|
|
153 | 151 |
verbose_name = _('faq') |
154 | 152 |
verbose_name_plural = _('faqs') |
155 | 153 |
|
... | ... | |
160 | 158 |
try: |
161 | 159 |
r = reverse('cloudcmsfaq_question_detail', 'cloudcmsfaq.urls', (), |
162 | 160 |
{ |
163 |
'category': self.category.translation.slug,
|
|
161 |
'service': self.service.translation.slug,
|
|
164 | 162 |
'slug': self.slug, |
165 | 163 |
}) |
166 | 164 |
except Exception, e: |
... | ... | |
183 | 181 |
|
184 | 182 |
|
185 | 183 |
# Feincms navigation extension |
186 |
class FaqCategoriesNavigationExtension(NavigationExtension):
|
|
184 |
class FaqServicesNavigationExtension(NavigationExtension):
|
|
187 | 185 |
""" |
188 | 186 |
Navigation extension for FeinCMS which lists all categories that user |
189 | 187 |
wants to include in global site navigation. |
... | ... | |
192 | 190 |
name = _('faq categories') |
193 | 191 |
|
194 | 192 |
def children(self, page, **kwargs): |
195 |
for category in Category.objects.filter(display_on_menu=True): |
|
196 |
url='%scategory/%s/' % (page.get_absolute_url(), category.translation.slug) |
|
193 |
from cloudcms.models import Service |
|
194 |
|
|
195 |
for service in Service.objects.filter(display_on_menu=True): |
|
196 |
url='%sservice/%s/' % (page.get_absolute_url(), service.translation.slug) |
|
197 | 197 |
yield PagePretender( |
198 |
title=category.translation.title,
|
|
198 |
title=service.translation.title,
|
|
199 | 199 |
tree_id=page.tree_id, |
200 | 200 |
url=url, |
201 | 201 |
lft=0, |
Also available in: Unified diff