git.ithinksw.org
/
philo.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
e75f306
)
Minor fixes and additions to better_feeds following testing.
author
Stephen Burrows
<stephen.r.burrows@gmail.com>
Tue, 8 Feb 2011 22:05:29 +0000
(17:05 -0500)
committer
Stephen Burrows
<stephen.r.burrows@gmail.com>
Tue, 8 Feb 2011 22:05:29 +0000
(17:05 -0500)
contrib/penfield/models.py
patch
|
blob
|
history
diff --git
a/contrib/penfield/models.py
b/contrib/penfield/models.py
index
c018247
..
a884663
100644
(file)
--- a/
contrib/penfield/models.py
+++ b/
contrib/penfield/models.py
@@
-1,7
+1,9
@@
from django.conf import settings
from django.conf.urls.defaults import url, patterns, include
from django.conf import settings
from django.conf.urls.defaults import url, patterns, include
+from django.contrib.sites.models import Site, RequestSite
+from django.contrib.syndication.views import add_domain
from django.db import models
from django.db import models
-from django.http import Http404
+from django.http import Http404
, HttpResponse
from django.template import RequestContext, Template as DjangoTemplate
from django.utils import feedgenerator, tzinfo
from django.utils.datastructures import SortedDict
from django.template import RequestContext, Template as DjangoTemplate
from django.utils import feedgenerator, tzinfo
from django.utils.datastructures import SortedDict
@@
-79,6
+81,7
@@
class FeedView(MultiView):
obj = self.get_object(request, *args, **kwargs)
feed = self.get_feed(obj, request, reverse_name)
items, xxx = get_items(request, extra_context=extra_context, *args, **kwargs)
obj = self.get_object(request, *args, **kwargs)
feed = self.get_feed(obj, request, reverse_name)
items, xxx = get_items(request, extra_context=extra_context, *args, **kwargs)
+ self.populate_feed(feed, items, request)
response = HttpResponse(mimetype=feed.mime_type)
feed.write(response, 'utf-8')
response = HttpResponse(mimetype=feed.mime_type)
feed.write(response, 'utf-8')
@@
-138,6
+141,11
@@
class FeedView(MultiView):
"""
Returns an unpopulated feedgenerator.DefaultFeed object for this object.
"""
"""
Returns an unpopulated feedgenerator.DefaultFeed object for this object.
"""
+ try:
+ current_site = Site.objects.get_current()
+ except Site.DoesNotExist:
+ current_site = RequestSite(request)
+
feed_type = self.get_feed_type(request)
node = request.node
link = node.get_absolute_url(with_domain=True, request=request, secure=request.is_secure())
feed_type = self.get_feed_type(request)
node = request.node
link = node.get_absolute_url(with_domain=True, request=request, secure=request.is_secure())
@@
-148,7
+156,11
@@
class FeedView(MultiView):
link = link,
description = self.__get_dynamic_attr('description', obj),
language = settings.LANGUAGE_CODE.decode(),
link = link,
description = self.__get_dynamic_attr('description', obj),
language = settings.LANGUAGE_CODE.decode(),
- feed_url = node.construct_url(self.reverse(reverse_name), with_domain=True, request=request, secure=request.is_secure()),
+ feed_url = add_domain(
+ current_site.domain,
+ self.__get_dynamic_attr('feed_url', obj) or node.construct_url(node.subpath, with_domain=True, request=request, secure=request.is_secure()),
+ request.is_secure()
+ ),
author_name = self.__get_dynamic_attr('author_name', obj),
author_link = self.__get_dynamic_attr('author_link', obj),
author_email = self.__get_dynamic_attr('author_email', obj),
author_name = self.__get_dynamic_attr('author_name', obj),
author_link = self.__get_dynamic_attr('author_link', obj),
author_email = self.__get_dynamic_attr('author_email', obj),
@@
-162,15
+174,19
@@
class FeedView(MultiView):
def populate_feed(self, feed, items, request):
if self.item_title_template:
def populate_feed(self, feed, items, request):
if self.item_title_template:
- title_template = Template(self.item_title_template.code)
+ title_template =
Django
Template(self.item_title_template.code)
else:
title_template = None
if self.item_description_template:
else:
title_template = None
if self.item_description_template:
- description_template = Template(self.item_description_template.code)
+ description_template =
Django
Template(self.item_description_template.code)
else:
description_template = None
node = request.node
else:
description_template = None
node = request.node
+ try:
+ current_site = Site.objects.get_current()
+ except Site.DoesNotExist:
+ current_site = RequestSite(request)
for item in items:
if title_template is not None:
for item in items:
if title_template is not None:
@@
-188,7
+204,11
@@
class FeedView(MultiView):
enc_url = self.__get_dynamic_attr('item_enclosure_url', item)
if enc_url:
enc = feedgenerator.Enclosure(
enc_url = self.__get_dynamic_attr('item_enclosure_url', item)
if enc_url:
enc = feedgenerator.Enclosure(
- url = smart_unicode(enc_url),
+ url = smart_unicode(add_domain(
+ current_site.domain,
+ enc_url,
+ request.is_secure()
+ )),
length = smart_unicode(self.__get_dynamic_attr('item_enclosure_length', item)),
mime_type = smart_unicode(self.__get_dynamic_attr('item_enclosure_mime_type', item))
)
length = smart_unicode(self.__get_dynamic_attr('item_enclosure_length', item)),
mime_type = smart_unicode(self.__get_dynamic_attr('item_enclosure_mime_type', item))
)
@@
-490,6
+510,7
@@
class BlogView(FeedView):
obj = self.get_object(request, *args, **kwargs)
feed = self.get_feed(obj, request, reverse_name)
items, extra_context = get_items(request, extra_context=extra_context, *args, **kwargs)
obj = self.get_object(request, *args, **kwargs)
feed = self.get_feed(obj, request, reverse_name)
items, extra_context = get_items(request, extra_context=extra_context, *args, **kwargs)
+ self.populate_feed(feed, items, request)
if 'tags' in extra_context:
tags = extra_context['tags']
if 'tags' in extra_context:
tags = extra_context['tags']