Statistics
| Branch: | Tag: | Revision:

root / cloudcmsfaq / feeds.py @ bd9ce789

History | View | Annotate | Download (2.6 kB)

1 916841de Kostas Papadimitriou
# Copyright 2012 GRNET S.A. All rights reserved.
2 916841de Kostas Papadimitriou
#
3 916841de Kostas Papadimitriou
# Redistribution and use in source and binary forms, with or
4 916841de Kostas Papadimitriou
# without modification, are permitted provided that the following
5 916841de Kostas Papadimitriou
# conditions are met:
6 916841de Kostas Papadimitriou
#
7 916841de Kostas Papadimitriou
#   1. Redistributions of source code must retain the above
8 916841de Kostas Papadimitriou
#      copyright notice, this list of conditions and the following
9 916841de Kostas Papadimitriou
#      disclaimer.
10 916841de Kostas Papadimitriou
#
11 916841de Kostas Papadimitriou
#   2. Redistributions in binary form must reproduce the above
12 916841de Kostas Papadimitriou
#      copyright notice, this list of conditions and the following
13 916841de Kostas Papadimitriou
#      disclaimer in the documentation and/or other materials
14 916841de Kostas Papadimitriou
#      provided with the distribution.
15 916841de Kostas Papadimitriou
#
16 916841de Kostas Papadimitriou
# THIS SOFTWARE IS PROVIDED BY GRNET S.A. ``AS IS'' AND ANY EXPRESS
17 916841de Kostas Papadimitriou
# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 916841de Kostas Papadimitriou
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
19 916841de Kostas Papadimitriou
# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GRNET S.A OR
20 916841de Kostas Papadimitriou
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
21 916841de Kostas Papadimitriou
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
22 916841de Kostas Papadimitriou
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
23 916841de Kostas Papadimitriou
# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
24 916841de Kostas Papadimitriou
# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
25 916841de Kostas Papadimitriou
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
26 916841de Kostas Papadimitriou
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
27 916841de Kostas Papadimitriou
# POSSIBILITY OF SUCH DAMAGE.
28 916841de Kostas Papadimitriou
#
29 916841de Kostas Papadimitriou
# The views and conclusions contained in the software and
30 916841de Kostas Papadimitriou
# documentation are those of the authors and should not be
31 916841de Kostas Papadimitriou
# interpreted as representing official policies, either expressed
32 916841de Kostas Papadimitriou
# or implied, of GRNET S.A.
33 916841de Kostas Papadimitriou
34 916841de Kostas Papadimitriou
35 916841de Kostas Papadimitriou
from django.conf import settings
36 916841de Kostas Papadimitriou
from django.contrib.syndication.views import Feed
37 916841de Kostas Papadimitriou
38 916841de Kostas Papadimitriou
from cloudcmsfaq.models import Question
39 916841de Kostas Papadimitriou
from cloudcms.models import Application
40 916841de Kostas Papadimitriou
41 916841de Kostas Papadimitriou
42 916841de Kostas Papadimitriou
FAQ_FEED_QUESTIONS_LIMIT = getattr(settings, 'CLOUDCMSFAQ_FEED_ENTRIES_LIMIT',
43 916841de Kostas Papadimitriou
                            10)
44 916841de Kostas Papadimitriou
FAQ_FEED_TITLE = getattr(settings, 'CLOUDCMSFAQ_FEED_TITLE',
45 916841de Kostas Papadimitriou
                            "Latest faq entries")
46 916841de Kostas Papadimitriou
FAQ_FEED_LINK = getattr(settings, 'CLOUDCMSFAQ_FEED_LINK',
47 916841de Kostas Papadimitriou
                            "/feed/")
48 916841de Kostas Papadimitriou
FAQ_FEED_DESCRIPTION = getattr(settings, 'CLOUDCMSFAQ_FEED_DESCRIPTION',
49 916841de Kostas Papadimitriou
                            FAQ_FEED_TITLE)
50 916841de Kostas Papadimitriou
51 916841de Kostas Papadimitriou
class FAQFeed(Feed):
52 916841de Kostas Papadimitriou
    title = FAQ_FEED_TITLE
53 916841de Kostas Papadimitriou
    link = FAQ_FEED_LINK
54 916841de Kostas Papadimitriou
    description = FAQ_FEED_DESCRIPTION
55 916841de Kostas Papadimitriou
56 916841de Kostas Papadimitriou
    def __init__(self, *args, **kwargs):
57 916841de Kostas Papadimitriou
        pass
58 916841de Kostas Papadimitriou
59 916841de Kostas Papadimitriou
    def items(self):
60 916841de Kostas Papadimitriou
        return Question.objects.order_by('-published_on')[:FAQ_FEED_QUESTIONS_LIMIT]
61 916841de Kostas Papadimitriou
62 916841de Kostas Papadimitriou
    def item_title(self, item):
63 916841de Kostas Papadimitriou
        return item.title
64 916841de Kostas Papadimitriou
65 916841de Kostas Papadimitriou
    def item_description(self, item):
66 916841de Kostas Papadimitriou
        return item.intro_text
67 916841de Kostas Papadimitriou
68 916841de Kostas Papadimitriou
    def item_pubdate(self, item):
69 916841de Kostas Papadimitriou
        return item.published_on