Przeglądaj źródła

Make RSS feed URL scheme configurable.

Andrew Klopper 7 lat temu
rodzic
commit
277cd97a8f
2 zmienionych plików z 10 dodań i 1 usunięć
  1. 8 1
      feed_content/viewsets.py
  2. 2 0
      sms_feed/settings.py

+ 8 - 1
feed_content/viewsets.py

1
 from django import forms
1
 from django import forms
2
+from django.conf import settings
2
 from django.db.models import Q
3
 from django.db.models import Q
3
 from base.viewsets import BaseTable, BaseViewset
4
 from base.viewsets import BaseTable, BaseViewset
4
 from crud.tables2_columns import CrudLinkColumn
5
 from crud.tables2_columns import CrudLinkColumn
6
 from django.shortcuts import reverse
7
 from django.shortcuts import reverse
7
 from django.utils.text import mark_safe
8
 from django.utils.text import mark_safe
8
 import django_filters
9
 import django_filters
10
+from urlparse import urlparse
9
 from . import models, views
11
 from . import models, views
10
 
12
 
11
 class FeedCategoryFilterSet(django_filters.FilterSet):
13
 class FeedCategoryFilterSet(django_filters.FilterSet):
28
         order_by = ('name',)
30
         order_by = ('name',)
29
 
31
 
30
     def render_rss_url(self, value, bound_column):
32
     def render_rss_url(self, value, bound_column):
31
-        rss_url = bound_column._table.view.request.build_absolute_uri(reverse('rss:daily', kwargs={'feed_category_id': value})).replace('https://', 'http://')
33
+        request = bound_column._table.view.request
34
+        rss_url = reverse('rss:daily', kwargs={'feed_category_id': value})
35
+        if settings.FORCE_HTTP_RSS_URLS:
36
+            rss_url = 'http://%s%s' % (request.META['HTTP_HOST'].split(':')[0], rss_url)
37
+        else:
38
+            rss_url = request.build_absolute_uri(rss_url)
32
         return mark_safe('<a href="{0}">{0}</a>'.format(rss_url))
39
         return mark_safe('<a href="{0}">{0}</a>'.format(rss_url))
33
 
40
 
34
 class FeedCategoryForm(forms.ModelForm):
41
 class FeedCategoryForm(forms.ModelForm):

+ 2 - 0
sms_feed/settings.py

167
 # sets this header and never allows it to be passed directly on from clients.
167
 # sets this header and never allows it to be passed directly on from clients.
168
 SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')
168
 SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')
169
 
169
 
170
+FORCE_HTTP_RSS_URLS = False
171
+
170
 from settings_local import *
172
 from settings_local import *