Merge lp:~ronnie.vd.c/loco-team-portal/rss into lp:loco-team-portal

Proposed by Ronnie
Status: Merged
Merge reported by: Adnane Belmadiaf
Merged at revision: not available
Proposed branch: lp:~ronnie.vd.c/loco-team-portal/rss
Merge into: lp:loco-team-portal
Diff against target: 516 lines (+216/-104)
22 files modified
loco_directory/events/feeds.py (+55/-0)
loco_directory/events/urls.py (+0/-2)
loco_directory/events/views.py (+0/-22)
loco_directory/meetings/feeds.py (+40/-0)
loco_directory/meetings/urls.py (+0/-1)
loco_directory/meetings/views.py (+0/-22)
loco_directory/teams/feeds.py (+55/-0)
loco_directory/teams/views.py (+7/-4)
loco_directory/templates/events/team_events_rss.xml (+0/-24)
loco_directory/templates/feeds/events_description.html (+10/-0)
loco_directory/templates/feeds/events_title.html (+1/-0)
loco_directory/templates/feeds/globalevents_description.html (+9/-0)
loco_directory/templates/feeds/globalevents_title.html (+1/-0)
loco_directory/templates/feeds/meetings_description.html (+8/-0)
loco_directory/templates/feeds/meetings_title.html (+1/-0)
loco_directory/templates/feeds/teams_description.html (+10/-0)
loco_directory/templates/feeds/teams_title.html (+1/-0)
loco_directory/templates/meetings/team_meetings_rss.xml (+0/-23)
loco_directory/templates/teams/team_detail.html (+2/-2)
loco_directory/templates/teams/team_event_list.html (+2/-2)
loco_directory/templates/teams/team_meeting_list.html (+2/-2)
loco_directory/urls.py (+12/-0)
To merge this branch: bzr merge lp:~ronnie.vd.c/loco-team-portal/rss
Reviewer Review Type Date Requested Status
Michael Hall (community) Needs Fixing
Adnane Belmadiaf Approve
Review via email: mp+51800@code.launchpad.net

Description of the change

RSS feeds are now using syndication framework

To post a comment you must log in.
lp:~ronnie.vd.c/loco-team-portal/rss updated
409. By Ronnie

Added team meetings_and_events to a single rss

Revision history for this message
Michael Hall (mhall119) wrote :

This adds 190 lines of code, shouldn't using an existing framework require less code? What do we gain from this addition?

review: Needs Information
lp:~ronnie.vd.c/loco-team-portal/rss updated
410. By Ronnie

Removed old code and changed link on team page

411. By Ronnie

Fixed some bugs

Revision history for this message
Ronnie (ronnie.vd.c) wrote :

I forgot to remove some old code. The difference is now 100 lines of code.

Al lot of functionality is added.
1. We now have GlobalEvent Feeds
2. We now have combined TeamEvent/TeamMeeting Feeds
3. Easy to add filter options
4. By using the framework we can supply atom and rss 1.0 feeds easily
5. Less clutter in the views.py because the rss is now in separate files (feeds.py)

Revision history for this message
Adnane Belmadiaf (daker) wrote :

Look goods to me.

review: Approve
Revision history for this message
Michael Hall (mhall119) wrote :

It looks like this has merge conflicts now. I'd also like to keep the old feed URLS, even if they're nothing more than a redirect to the new ones, so that we don't break anything.

review: Needs Fixing
Revision history for this message
Adnane Belmadiaf (daker) wrote :

@Ronnie thanks for your work, i have a new MP with your code and fixes for @mhall remark https://code.launchpad.net/~daker/loco-team-portal/fix.rss-feeds/+merge/136294

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== added file 'loco_directory/events/feeds.py'
2--- loco_directory/events/feeds.py 1970-01-01 00:00:00 +0000
3+++ loco_directory/events/feeds.py 2011-03-13 10:44:24 +0000
4@@ -0,0 +1,55 @@
5+from django.core.exceptions import ObjectDoesNotExist
6+from django.core.urlresolvers import reverse
7+from django.contrib.syndication.feeds import Feed, FeedDoesNotExist
8+from django.utils.translation import ugettext as _
9+from events.models import TeamEvent, GlobalEvent
10+from teams.models import Team
11+
12+import datetime
13+
14+class TeamEventFeed(Feed):
15+ def get_object(self, bits):
16+ if len(bits) >= 1:
17+ if bits[0] == 'all':
18+ return 'all'
19+ else:
20+ try:
21+ return Team.objects.get(lp_name=bits[0])
22+ except:
23+ raise ObjectDoesNotExist
24+ return None
25+
26+ def items(self, obj):
27+ if isinstance(obj, Team):
28+ return TeamEvent.objects.filter(teams=obj, date_end__gt=datetime.datetime.now()).order_by('-date_begin')[:15]
29+ else:
30+ return TeamEvent.objects.filter(date_end__gt=datetime.datetime.now()).order_by('-date_begin')[:15]
31+
32+ def title(self, obj):
33+ if isinstance(obj, Team):
34+ return _('Upcoming Events for %(teamname)s' % {'teamname': obj.name})
35+ else:
36+ return _('Upcoming Events')
37+
38+ def link(self, obj):
39+ if isinstance(obj, Team):
40+ return reverse('team-event-list', kwargs={'team_slug': obj.lp_name})
41+ else:
42+ return reverse('event-list')
43+
44+
45+class GlobalEventFeed(TeamEventFeed):
46+ def items(self, obj):
47+ if isinstance(obj, Team):
48+ return GlobalEvent.objects.filter(teamevent__teams=obj, date_end__gt=datetime.datetime.now()).order_by('-date_begin')[:15]
49+ else:
50+ return GlobalEvent.objects.filter(date_end__gt=datetime.datetime.now()).order_by('-date_begin')[:15]
51+
52+ def title(self, obj):
53+ if isinstance(obj, Team):
54+ return _('Upcoming Global Events where %(teamname)s is participating' % {'teamname': obj.name})
55+ else:
56+ return _('Upcoming Global Events')
57+
58+ def link(self, obj):
59+ return reverse('event-list')
60
61=== modified file 'loco_directory/events/urls.py'
62--- loco_directory/events/urls.py 2011-02-17 20:05:03 +0000
63+++ loco_directory/events/urls.py 2011-03-13 10:44:24 +0000
64@@ -15,7 +15,6 @@
65 url(r'^team/(?P<team_event_id>\d+)/comment/$', 'events.views.team_event_comment_new', name='team-event-comment-new'),
66 url(r'^team/(?P<team_event_id>\d+)/copy/$', 'events.views.team_event_copy', name='team-event-copy'),
67 url(r'^team/(?P<team_slug>[a-zA-Z0-9\-\.\+?]+)/add/$', 'events.views.team_event_new', name='team-event-new'),
68- url(r'^team/(?P<team_slug>[a-zA-Z0-9\-\.\+?]+)/rss/$', 'events.views.team_events_rss', name='team-events-rss'),
69 url(r'^team/(?P<team_slug>[a-zA-Z0-9\-\.\+?]+)/ical/$', 'events.views.team_event_list_ical', name='team-event-list-ical'),
70 url(r'^team/add/$', 'events.views.team_event_select', name='team-event-select'),
71 #global events
72@@ -25,5 +24,4 @@
73 url(r'^global/(?P<global_event_id>\d+)/update/$', 'events.views.global_event_update', name='global-event-update'),
74 url(r'^global/(?P<global_event_id>\d+)/locations/$', 'events.views.global_event_locations', name='global-event-locations'),
75 url(r'^global/add/$', 'events.views.global_event_new', name='global-event-new'),
76-
77 )
78
79=== modified file 'loco_directory/events/views.py'
80--- loco_directory/events/views.py 2011-03-06 22:13:43 +0000
81+++ loco_directory/events/views.py 2011-03-13 10:44:24 +0000
82@@ -164,28 +164,6 @@
83 context = {'teams': teams, 'global_event_id': request.GET.get('global_event_id', None)}
84 return render_to_response('events/team_event_new_select.html', context, RequestContext(request))
85
86-def team_events_rss(request, team_slug):
87- team_object = get_object_or_404(Team, lp_name=team_slug)
88- events = TeamEvent.objects.filter(teams__lp_name=team_slug, date_end__gt=datetime.datetime.now()).order_by('date_begin')[:15]
89-
90- if request.META.has_key('wsgi.url_scheme'):
91- scheme = request.META.get('wsgi.url_scheme')
92- else:
93- scheme = 'http'
94-
95- if request.META.has_key('HTTP_HOST'):
96- host = request.META.get('HTTP_HOST')
97- else:
98- host = request.META.get('SERVER_NAME')
99-
100- if request.META.get('SERVER_PORT', 80) == 80 or request.META.get('SERVER_PORT', 80) == 0:
101- base = '%s://%s' % (scheme, host)
102- else:
103- base = '%s://%s:%s' % (scheme, host, request.META.get('SERVER_PORT', 80))
104-
105- context = {'team_object': team_object, 'events': events, 'base':base}
106- return render_to_response('events/team_events_rss.xml', context, RequestContext(request), mimetype='application/xhtml+xml')
107-
108 @login_required
109 def team_event_new(request, team_slug):
110 """
111
112=== added file 'loco_directory/meetings/feeds.py'
113--- loco_directory/meetings/feeds.py 1970-01-01 00:00:00 +0000
114+++ loco_directory/meetings/feeds.py 2011-03-13 10:44:24 +0000
115@@ -0,0 +1,40 @@
116+from django.core.exceptions import ObjectDoesNotExist
117+from django.core.urlresolvers import reverse
118+from django.contrib.syndication.feeds import Feed, FeedDoesNotExist
119+from django.utils.translation import ugettext as _
120+from meetings.models import TeamMeeting
121+from teams.models import Team
122+
123+import datetime
124+
125+
126+class TeamMeetingFeed(Feed):
127+ def get_object(self, bits):
128+ if len(bits) >= 1:
129+ if bits[0] == 'all':
130+ return 'all'
131+ else:
132+ try:
133+ return Team.objects.get(lp_name=bits[0])
134+ except:
135+ raise ObjectDoesNotExist
136+ return None
137+
138+ def items(self, obj):
139+ if isinstance(obj, Team):
140+ return TeamMeeting.objects.filter(teams=obj, date_end__gt=datetime.datetime.now()).order_by('-date_begin')[:15]
141+ else:
142+ return TeamMeeting.objects.filter(date_end__gt=datetime.datetime.now()).order_by('-date_begin')[:15]
143+
144+ def title(self, obj):
145+ if isinstance(obj, Team):
146+ return _('Upcoming Meetings for %(teamname)s' % {'teamname': obj.name})
147+ else:
148+ return _('Upcoming Meetings')
149+
150+ def link(self, obj):
151+ if isinstance(obj, Team):
152+ return reverse('team-meeting-list', kwargs={'team_slug': obj.lp_name})
153+ else:
154+ return reverse('meeting-list')
155+
156
157=== modified file 'loco_directory/meetings/urls.py'
158--- loco_directory/meetings/urls.py 2011-01-23 02:17:54 +0000
159+++ loco_directory/meetings/urls.py 2011-03-13 10:44:24 +0000
160@@ -12,7 +12,6 @@
161 url(r'^team/(?P<team_meeting_id>\d+)/update/$', 'meetings.views.team_meeting_update', name='team-meeting-update'),
162 url(r'^team/(?P<team_meeting_id>\d+)/copy/$', 'meetings.views.team_meeting_copy', name='team-meeting-copy'),
163 url(r'^team/(?P<team_slug>[a-zA-Z0-9\-\.\+?]+)/add/$', 'meetings.views.team_meeting_new', name='team-meeting-new'),
164- url(r'^team/(?P<team_slug>[a-zA-Z0-9\-\.\+?]+)/rss/$', 'meetings.views.team_meetings_rss', name='team-meetings-rss'),
165 url(r'^team/(?P<team_slug>[a-zA-Z0-9\-\.\+?]+)/ical/$', 'meetings.views.team_meeting_list_ical', name='team-meeting-list-ical'),
166 url(r'^team/add/$', 'meetings.views.team_meeting_select', name='team-meeting-select'),
167
168
169=== modified file 'loco_directory/meetings/views.py'
170--- loco_directory/meetings/views.py 2011-02-23 01:05:59 +0000
171+++ loco_directory/meetings/views.py 2011-03-13 10:44:24 +0000
172@@ -144,28 +144,6 @@
173 context = {'teams': teams}
174 return render_to_response('meetings/team_meeting_new_select.html', context, RequestContext(request))
175
176-def team_meetings_rss(request, team_slug):
177- team_object = get_object_or_404(Team, lp_name=team_slug)
178- meetings = TeamMeeting.objects.filter(teams__lp_name=team_slug, date_end__gt=datetime.datetime.now()).order_by('date_begin')[:15]
179-
180- if request.META.has_key('wsgi.url_scheme'):
181- scheme = request.META.get('wsgi.url_scheme')
182- else:
183- scheme = 'http'
184-
185- if request.META.has_key('HTTP_HOST'):
186- host = request.META.get('HTTP_HOST')
187- else:
188- host = request.META.get('SERVER_NAME')
189-
190- if request.META.get('SERVER_PORT', 80) == 80 or request.META.get('SERVER_PORT', 80) == 0:
191- base = '%s://%s' % (scheme, host)
192- else:
193- base = '%s://%s:%s' % (scheme, host, request.META.get('SERVER_PORT', 80))
194-
195- context = {'team_object': team_object, 'meetings': meetings, 'base':base}
196- return render_to_response('meetings/team_meetings_rss.xml', context, RequestContext(request), mimetype='application/xhtml+xml')
197-
198 @login_required
199 def team_meeting_new(request, team_slug):
200 """
201
202=== added file 'loco_directory/teams/feeds.py'
203--- loco_directory/teams/feeds.py 1970-01-01 00:00:00 +0000
204+++ loco_directory/teams/feeds.py 2011-03-13 10:44:24 +0000
205@@ -0,0 +1,55 @@
206+from django.core.exceptions import ObjectDoesNotExist
207+from django.core.urlresolvers import reverse
208+from django.contrib.syndication.feeds import Feed, FeedDoesNotExist
209+from django.utils.translation import ugettext as _
210+from meetings.models import TeamMeeting
211+from events.models import TeamEvent
212+from teams.models import Team
213+
214+import datetime
215+
216+
217+class TeamFeed(Feed):
218+ def get_object(self, bits):
219+ if len(bits) >= 1:
220+ if bits[0] == 'all':
221+ return 'all'
222+ else:
223+ try:
224+ return Team.objects.get(lp_name=bits[0])
225+ except:
226+ raise ObjectDoesNotExist
227+ return None
228+
229+ def items(self, obj):
230+ if isinstance(obj, Team):
231+ meetings = TeamMeeting.objects.filter(teams=obj, date_end__gt=datetime.datetime.now()).order_by('-date_begin')
232+ events = TeamEvent.objects.filter(teams=obj, date_end__gt=datetime.datetime.now()).order_by('-date_begin')
233+ else:
234+ meetings = TeamMeeting.objects.filter(date_end__gt=datetime.datetime.now()).order_by('-date_begin')
235+ events = TeamEvent.objects.filter(date_end__gt=datetime.datetime.now()).order_by('-date_begin')
236+
237+ events_and_meetings = []
238+ events = events[:15].iterator()
239+ meetings = meetings[:15].iterator()
240+ for event in events:
241+ events_and_meetings.append(event)
242+ for meeting in meetings:
243+ events_and_meetings.append(meeting)
244+
245+ events_and_meetings.sort(key=lambda event: event.date_begin)
246+ return events_and_meetings
247+
248+ def title(self, obj):
249+ if isinstance(obj, Team):
250+ return _('Upcoming Events and Meetings for %(teamname)s' % {'teamname': obj.name})
251+ else:
252+ return _('Upcoming Events and Meetings')
253+
254+ def link(self, obj):
255+ if isinstance(obj, Team):
256+ return obj.get_absolute_url()
257+ else:
258+ return '/'
259+
260+
261
262=== modified file 'loco_directory/teams/views.py'
263--- loco_directory/teams/views.py 2011-02-17 21:16:56 +0000
264+++ loco_directory/teams/views.py 2011-03-13 10:44:24 +0000
265@@ -78,15 +78,18 @@
266 return render_to_response('teams/team_list.html', context,
267 RequestContext(request))
268
269+def get_events_and_meetings(team_object):
270+ team_events = list(TeamEvent.objects.filter(teams=team_object))
271+ team_meetings = list(TeamMeeting.objects.filter(teams=team_object))
272+ team_events.extend(team_meetings)
273+ return team_events
274+
275 def team_ical(request, team_slug):
276 """
277 Return a ical list with the events and meetings in ical format.
278 """
279 team_object = get_object_or_404(Team, lp_name=team_slug)
280- team_events = list(TeamEvent.objects.filter(teams__lp_name=team_slug))
281- team_meetings = list(TeamMeeting.objects.filter(teams__lp_name=team_slug))
282- team_events.extend(team_meetings)
283- return as_ical(team_events, team_object.name)
284+ return as_ical(get_events_and_meetings(team_object), team_object.name)
285
286 def team_event_list(request, team_slug):
287 """
288
289=== removed file 'loco_directory/templates/events/team_events_rss.xml'
290--- loco_directory/templates/events/team_events_rss.xml 2010-08-17 08:48:39 +0000
291+++ loco_directory/templates/events/team_events_rss.xml 1970-01-01 00:00:00 +0000
292@@ -1,24 +0,0 @@
293-<?xml version="1.0" encoding="UTF-8"?>
294-{% load i18n %}
295-<rss version="2.0">
296- <channel>
297- <title>{% blocktrans with team_object.name as team_name %}Upcoming Events for {{team_name}}{% endblocktrans %}</title>
298- <link>{{base}}{% url team-event-list team_object.lp_name %}</link>
299-
300- {% for e in events %}
301- <item>
302- <title> {{ e.name }}</title>
303- <link>{{base}}{% url team-event-detail e.id %}</link>
304- <description>{% trans "When:" %} {% spaceless %}
305- {% ifequal e.date_begin|date e.date_end|date %}
306- {{ e.date_begin|date:"D, d N Y H:i" }} - {{ e.date_end|date:"H:i O" }}
307- {% else %}
308- {{ e.date_begin|date:"D, d N Y H:i" }} - {{ e.date_end|date:"D, d N Y H:i O" }}
309- {% endifequal %}
310- {% endspaceless %}{% if e.venue.name %} | {% trans "Where:" %} {{ e.venue.name }}{% endif %}
311- {% if e.description %} | {% trans "Description:" %} {{ e.description }}{% endif %}</description>
312- <guid>{{base}}{% url team-event-detail e.id %}</guid>
313- </item>
314- {% endfor %}
315- </channel>
316-</rss>
317
318=== added directory 'loco_directory/templates/feeds'
319=== added file 'loco_directory/templates/feeds/events_description.html'
320--- loco_directory/templates/feeds/events_description.html 1970-01-01 00:00:00 +0000
321+++ loco_directory/templates/feeds/events_description.html 2011-03-13 10:44:24 +0000
322@@ -0,0 +1,10 @@
323+{% load i18n %}
324+{% trans "When:" %} {% spaceless %}
325+{% ifequal obj.date_begin|date obj.date_end|date %}
326+ {{ obj.date_begin|date:"D, d N Y H:i" }} - {{ obj.date_end|date:"H:i O" }}
327+{% else %}
328+ {{ obj.date_begin|date:"D, d N Y H:i" }} - {{ obj.date_end|date:"D, d N Y H:i O" }}
329+{% endifequal %}
330+{% endspaceless %}
331+{% if obj.venue.name %} | {% trans "Where:" %} {{ obj.venue.name }}{% endif %}
332+{% if obj.description %} | {% trans "Description:" %} {{ obj.description }}{% endif %}
333
334=== added file 'loco_directory/templates/feeds/events_title.html'
335--- loco_directory/templates/feeds/events_title.html 1970-01-01 00:00:00 +0000
336+++ loco_directory/templates/feeds/events_title.html 2011-03-13 10:44:24 +0000
337@@ -0,0 +1,1 @@
338+{{ obj.name }}
339
340=== added file 'loco_directory/templates/feeds/globalevents_description.html'
341--- loco_directory/templates/feeds/globalevents_description.html 1970-01-01 00:00:00 +0000
342+++ loco_directory/templates/feeds/globalevents_description.html 2011-03-13 10:44:24 +0000
343@@ -0,0 +1,9 @@
344+{% load i18n %}
345+{% trans "When:" %} {% spaceless %}
346+{% ifequal obj.date_begin|date obj.date_end|date %}
347+ {{ obj.date_begin|date:"D, d N Y H:i" }} - {{ obj.date_end|date:"H:i O" }}
348+{% else %}
349+ {{ obj.date_begin|date:"D, d N Y H:i" }} - {{ obj.date_end|date:"D, d N Y H:i O" }}
350+{% endifequal %}
351+{% endspaceless %}
352+{% if obj.description %} | {% trans "Description:" %} {{ obj.description }}{% endif %}
353
354=== added file 'loco_directory/templates/feeds/globalevents_title.html'
355--- loco_directory/templates/feeds/globalevents_title.html 1970-01-01 00:00:00 +0000
356+++ loco_directory/templates/feeds/globalevents_title.html 2011-03-13 10:44:24 +0000
357@@ -0,0 +1,1 @@
358+{{ obj.name }}
359
360=== added file 'loco_directory/templates/feeds/meetings_description.html'
361--- loco_directory/templates/feeds/meetings_description.html 1970-01-01 00:00:00 +0000
362+++ loco_directory/templates/feeds/meetings_description.html 2011-03-13 10:44:24 +0000
363@@ -0,0 +1,8 @@
364+{% load i18n %}
365+{% trans "When:" %} {% spaceless %}
366+{% ifequal obj.date_begin|date obj.date_end|date %}
367+ {{ obj.date_begin|date:"D, d N Y H:i" }} - {{ obj.date_end|date:"H:i O" }}
368+{% else %}
369+ {{ obj.date_begin|date:"D, d N Y H:i" }} - {{ obj.date_end|date:"D, d N Y H:i O" }}
370+{% endifequal %}
371+{% endspaceless %}
372
373=== added file 'loco_directory/templates/feeds/meetings_title.html'
374--- loco_directory/templates/feeds/meetings_title.html 1970-01-01 00:00:00 +0000
375+++ loco_directory/templates/feeds/meetings_title.html 2011-03-13 10:44:24 +0000
376@@ -0,0 +1,1 @@
377+{{ obj.name }}
378
379=== added file 'loco_directory/templates/feeds/teams_description.html'
380--- loco_directory/templates/feeds/teams_description.html 1970-01-01 00:00:00 +0000
381+++ loco_directory/templates/feeds/teams_description.html 2011-03-13 10:44:24 +0000
382@@ -0,0 +1,10 @@
383+{% load i18n %}
384+{% trans "When:" %} {% spaceless %}
385+{% ifequal obj.date_begin|date obj.date_end|date %}
386+ {{ obj.date_begin|date:"D, d N Y H:i" }} - {{ obj.date_end|date:"H:i O" }}
387+{% else %}
388+ {{ obj.date_begin|date:"D, d N Y H:i" }} - {{ obj.date_end|date:"D, d N Y H:i O" }}
389+{% endifequal %}
390+{% endspaceless %}
391+{% if obj.venue.name %} | {% trans "Where:" %} {{ obj.venue.name }}{% endif %}
392+{% if obj.description %} | {% trans "Description:" %} {{ obj.description }}{% endif %}
393
394=== added file 'loco_directory/templates/feeds/teams_title.html'
395--- loco_directory/templates/feeds/teams_title.html 1970-01-01 00:00:00 +0000
396+++ loco_directory/templates/feeds/teams_title.html 2011-03-13 10:44:24 +0000
397@@ -0,0 +1,1 @@
398+{{ obj.name }}
399
400=== removed file 'loco_directory/templates/meetings/team_meetings_rss.xml'
401--- loco_directory/templates/meetings/team_meetings_rss.xml 2010-12-02 07:56:46 +0000
402+++ loco_directory/templates/meetings/team_meetings_rss.xml 1970-01-01 00:00:00 +0000
403@@ -1,23 +0,0 @@
404-<?xml version="1.0" encoding="UTF-8"?>
405-{% load i18n %}
406-<rss version="2.0">
407- <channel>
408- <title>{% blocktrans with team_object.name as team_name %}Upcoming Meetings for {{team_name}}{% endblocktrans %}</title>
409- <link>{{base}}{% url team-meeting-list team_object.lp_name %}</link>
410-
411- {% for e in meetings %}
412- <item>
413- <title> {{ e.name }}</title>
414- <link>{{base}}{% url team-meeting-detail e.id %}</link>
415- <description>{% trans "When:" %} {% spaceless %}
416- {% ifequal e.date_begin|date e.date_end|date %}
417- {{ e.date_begin|date:"D, d N Y H:i" }} - {{ e.date_end|date:"H:i O" }}
418- {% else %}
419- {{ e.date_begin|date:"D, d N Y H:i" }} - {{ e.date_end|date:"D, d N Y H:i O" }}
420- {% endifequal %}
421- {% endspaceless %}</description>
422- <guid>{{base}}{% url team-meeting-detail e.id %}</guid>
423- </item>
424- {% endfor %}
425- </channel>
426-</rss>
427
428=== modified file 'loco_directory/templates/teams/team_detail.html'
429--- loco_directory/templates/teams/team_detail.html 2011-03-02 22:34:34 +0000
430+++ loco_directory/templates/teams/team_detail.html 2011-03-13 10:44:24 +0000
431@@ -89,7 +89,7 @@
432 }
433 </style>
434 {% endif %}
435-<link type="application/rss+xml" rel="alternate" title="{% trans "Team Events (RSS)" %}" href="{% url team-events-rss team.lp_name %}" />
436+<link type="application/rss+xml" rel="alternate" title="{% trans "Team (RSS)" %}" href="/feeds/teams/{{ team.lp_name }}" />
437 {% endblock %}
438
439 {% block content %}
440@@ -183,7 +183,7 @@
441 <li style="font-size:0.98em"><a href="{% url team-event-list team.lp_name %}">{% trans "All Events" %}</a></li>
442 <li style="font-size:0.98em"><a href="{% url team-meeting-list team.lp_name %}">{% trans "All Meetings" %}</a></li>
443 <li style="font-size:0.98em"><a href="{% url team-event-history team.lp_name %}">{% trans "Past Events" %}</a></li>
444- <li style="font-size:0.98em"><a href="{% url team-events-rss team.lp_name %}">{% trans "RSS Feed" %}</a></li>
445+ <li style="font-size:0.98em"><a href="/feeds/teams/{{ team.lp_name }}">{% trans "RSS Feed" %}</a></li>
446 <li style="font-size:0.98em"><a href="{% url team-calendar team.lp_name %}">{% trans "iCal Feed" %}</a></li>
447 </ul>
448 {% if team.next_5_events_and_meetings %}
449
450=== modified file 'loco_directory/templates/teams/team_event_list.html'
451--- loco_directory/templates/teams/team_event_list.html 2010-11-20 17:25:50 +0000
452+++ loco_directory/templates/teams/team_event_list.html 2011-03-13 10:44:24 +0000
453@@ -6,12 +6,12 @@
454 {% block sub_nav_links %}
455 <a class="sub-nav-item" href="{% url team-detail team_object.lp_name %}">{% trans "Back to Team Details" %}</a>
456 <a class="sub-nav-item" href="{% url team-event-history team_object.lp_name %}">{% trans "Past Events" %}</a>
457-<a class="sub-nav-item" href="{% url team-events-rss team_object.lp_name %}" title="{% trans "Team Events (RSS)" %}"">{% trans "Team Events (RSS)" %}</a>
458+<a class="sub-nav-item" href="/feeds/events/{{ team_object.lp_name }}" title="{% trans "Team Events (RSS)" %}"">{% trans "Team Events (RSS)" %}</a>
459 {% endblock %}
460
461
462 {% block extrahead %}{{ block.super }}
463-<link type="application/rss+xml" rel="alternate" title="Team Events (RSS)" href="{% url team-events-rss team_object.lp_name %}" />
464+<link type="application/rss+xml" rel="alternate" title="Team Events (RSS)" href="/feeds/events/{{ team_object.lp_name }}" />
465 {% endblock %}
466
467 {% block content %}
468
469=== modified file 'loco_directory/templates/teams/team_meeting_list.html'
470--- loco_directory/templates/teams/team_meeting_list.html 2010-12-02 09:12:22 +0000
471+++ loco_directory/templates/teams/team_meeting_list.html 2011-03-13 10:44:24 +0000
472@@ -6,12 +6,12 @@
473 {% block sub_nav_links %}
474 <a class="sub-nav-item" href="{% url team-detail team_object.lp_name %}">{% trans "Back to Team Details" %}</a>
475 <a class="sub-nav-item" href="{% url team-meeting-history team_object.lp_name %}">{% trans "Past Meetings" %}</a>
476-<a class="sub-nav-item" href="{% url team-meetings-rss team_object.lp_name %}" title="{% trans "Team Meetings (RSS)" %}"">{% trans "Team Meetings (RSS)" %}</a>
477+<a class="sub-nav-item" href="/feeds/meetings/{{ team_object.lp_name }}" title="{% trans "Team Meetings (RSS)" %}"">{% trans "Team Meetings (RSS)" %}</a>
478 {% endblock %}
479
480
481 {% block extrahead %}{{ block.super }}
482-<link type="application/rss+xml" rel="alternate" title="Team Meetings (RSS)" href="{% url team-meetings-rss team_object.lp_name %}" />
483+<link type="application/rss+xml" rel="alternate" title="Team Meetings (RSS)" href="/feeds/meetings/{{ team_object.lp_name }}" />
484 {% endblock %}
485
486 {% block content %}
487
488=== modified file 'loco_directory/urls.py'
489--- loco_directory/urls.py 2010-12-02 09:12:22 +0000
490+++ loco_directory/urls.py 2011-03-13 10:44:24 +0000
491@@ -5,6 +5,17 @@
492
493 admin.autodiscover()
494
495+from events.feeds import TeamEventFeed, GlobalEventFeed
496+from meetings.feeds import TeamMeetingFeed
497+from teams.feeds import TeamFeed
498+
499+feeds = {
500+ 'teams': TeamFeed,
501+ 'events': TeamEventFeed,
502+ 'globalevents': GlobalEventFeed,
503+ 'meetings': TeamMeetingFeed,
504+}
505+
506 urlpatterns = patterns('',
507 url(r'^$', 'common.views.index', name='home'),
508 url(r'^language/', 'common.views.set_language', name='set_language'),
509@@ -25,6 +36,7 @@
510 url(r'^jsi18n', 'django.views.i18n.javascript_catalog', name='jsi18n'),
511 url(r'^services/', include('services.urls')),
512 url(r'^search/', 'common.views.site_search', name='site_search'),
513+ url(r'^feeds/(?P<url>.*)/$', 'django.contrib.syndication.views.feed', {'feed_dict': feeds}, name='feed_view'),
514 )
515
516 if settings.STATIC_SERVE:

Subscribers

People subscribed via source and target branches