forked from extern/django-helpdesk
Fix RSS feeds for post-Django 1.2. Closes #129.
This commit is contained in:
parent
4fb9ab0617
commit
89b8267d84
@ -15,9 +15,9 @@
|
||||
<link rel='stylesheet' href='{{ STATIC_URL }}helpdesk/helpdesk.css' type='text/css' media="screen" />
|
||||
<link rel='stylesheet' href='{{ STATIC_URL }}helpdesk/helpdesk-print.css' type='text/css' media="print" />
|
||||
<link rel='stylesheet' href='{{ STATIC_URL }}helpdesk/jquery-smoothness-theme/jquery-ui-1.8.9.custom.css' type='text/css' />
|
||||
<link rel='alternate' href='{% url helpdesk_rss "user" %}{{ user.username }}/' type='application/rss+xml' title='{% trans "My Open Tickets" %}' />
|
||||
<link rel='alternate' href='{% url helpdesk_rss "recent_activity" %}' type='application/rss+xml' title='{% trans "All Recent Activity" %}' />
|
||||
<link rel='alternate' href='{% url helpdesk_rss "unassigned" %}' type='application/rss+xml' title='{% trans "Unassigned Tickets" %}' />
|
||||
<link rel='alternate' href='{% url helpdesk_rss_user user.username %}' type='application/rss+xml' title='{% trans "My Open Tickets" %}' />
|
||||
<link rel='alternate' href='{% url helpdesk_rss_activity %}' type='application/rss+xml' title='{% trans "All Recent Activity" %}' />
|
||||
<link rel='alternate' href='{% url helpdesk_rss_unassigned %}' type='application/rss+xml' title='{% trans "Unassigned Tickets" %}' />
|
||||
|
||||
{% comment %}
|
||||
<script type="text/javascript">
|
||||
|
@ -6,13 +6,13 @@
|
||||
<p>{% trans "The following RSS feeds are available for you to monitor using your preferred RSS software. With the exception of the 'Latest Activity' feed, all feeds provide information only on Open and Reopened cases. This ensures your RSS reader isn't full of information about closed or historical tasks." %}</p>
|
||||
|
||||
<dl>
|
||||
<dt><a href='{% url helpdesk_rss "user" %}{{ user.username }}/'><img src='{{ STATIC_URL }}helpdesk/rss_icon.png' width='14' height='14' alt='{% trans "RSS Icon" %}' title='{% trans "My Open Tickets" %}' border='0' />{% trans "My Open Tickets" %}</a></dt>
|
||||
<dt><a href='{% url helpdesk_rss_user user.username %}'><img src='{{ STATIC_URL }}helpdesk/rss_icon.png' width='14' height='14' alt='{% trans "RSS Icon" %}' title='{% trans "My Open Tickets" %}' border='0' />{% trans "My Open Tickets" %}</a></dt>
|
||||
<dd>{% trans "A summary of your open tickets - useful for getting alerted to new tickets opened for you" %}</dd>
|
||||
|
||||
<dt><a href='{% url helpdesk_rss "recent_activity" %}'><img src='{{ STATIC_URL }}helpdesk/rss_icon.png' width='14' height='14' alt='{% trans "RSS Icon" %}' title='{% trans "Latest Activity" %}' border='0' />{% trans "Latest Activity" %}</a></dt>
|
||||
<dt><a href='{% url helpdesk_rss_activity %}'><img src='{{ STATIC_URL }}helpdesk/rss_icon.png' width='14' height='14' alt='{% trans "RSS Icon" %}' title='{% trans "Latest Activity" %}' border='0' />{% trans "Latest Activity" %}</a></dt>
|
||||
<dd>{% trans "A summary of all helpdesk activity - including comments, emails, attachments, and more" %}</dd>
|
||||
|
||||
<dt><a href='{% url helpdesk_rss "unassigned" %}'><img src='{{ STATIC_URL }}helpdesk/rss_icon.png' width='14' height='14' alt='{% trans "RSS Icon" %}' title='{% trans "Unassigned Tickets" %}' border='0' />{% trans "Unassigned Tickets" %}</a></dt>
|
||||
<dt><a href='{% url helpdesk_rss_unassigned %}'><img src='{{ STATIC_URL }}helpdesk/rss_icon.png' width='14' height='14' alt='{% trans "RSS Icon" %}' title='{% trans "Unassigned Tickets" %}' border='0' />{% trans "Unassigned Tickets" %}</a></dt>
|
||||
<dd>{% trans "All unassigned tickets - useful for being alerted to new tickets opened by the public via the web or via e-mail" %}</dd>
|
||||
</dl>
|
||||
|
||||
@ -24,8 +24,8 @@
|
||||
{% for queue in queues %}
|
||||
<tr>
|
||||
<td>{{ queue.title }}</td>
|
||||
<td align='center'><a href='{% url helpdesk_rss "queue" %}{{ queue.slug }}/'><img src='{{ STATIC_URL }}helpdesk/rss_icon.png' width='14' height='14' alt='{% trans "RSS Icon" %}' title='{% trans "Open Tickets" %}' border='0' /></a></td>
|
||||
<td align='center'><a href='{% url helpdesk_rss "user" %}{{ user.username }}/{{ queue.slug }}/'><img src='{{ STATIC_URL }}helpdesk/rss_icon.png' width='14' height='14' alt='{% trans "RSS Icon" %}' title='{% trans "My Open Tickets" %}' border='0' /></a></td>
|
||||
<td align='center'><a href='{% url helpdesk_rss_queue queue.slug %}'><img src='{{ STATIC_URL }}helpdesk/rss_icon.png' width='14' height='14' alt='{% trans "RSS Icon" %}' title='{% trans "Open Tickets" %}' border='0' /></a></td>
|
||||
<td align='center'><a href='{% url helpdesk_rss_user_queue user.username queue.slug %}'><img src='{{ STATIC_URL }}helpdesk/rss_icon.png' width='14' height='14' alt='{% trans "RSS Icon" %}' title='{% trans "My Open Tickets" %}' border='0' /></a></td>
|
||||
{% endfor %}
|
||||
</table>
|
||||
{% endblock %}
|
||||
|
@ -13,7 +13,7 @@ from django.contrib.auth.decorators import login_required
|
||||
from django.contrib.syndication.views import feed as django_feed
|
||||
|
||||
from helpdesk import settings as helpdesk_settings
|
||||
from helpdesk.views.feeds import feed_setup
|
||||
from helpdesk.views import feeds
|
||||
|
||||
|
||||
urlpatterns = patterns('helpdesk.views.staff',
|
||||
@ -141,11 +141,30 @@ urlpatterns += patterns('helpdesk.views.public',
|
||||
)
|
||||
|
||||
urlpatterns += patterns('',
|
||||
url(r'^rss/(?P<url>.*)/$',
|
||||
login_required(django_feed),
|
||||
{'feed_dict': feed_setup},
|
||||
name='helpdesk_rss'),
|
||||
url(r'^rss/user/(?P<user_name>[A-Za-z0-9_-]+)/$',
|
||||
login_required(feeds.OpenTicketsByUser()),
|
||||
name='helpdesk_rss_user'),
|
||||
|
||||
url(r'^rss/user/(?P<user_name>[A-Za-z0-9_-]+)/(?P<queue_slug>[A-Za-z0-9_-]+)/$',
|
||||
login_required(feeds.OpenTicketsByUser()),
|
||||
name='helpdesk_rss_user_queue'),
|
||||
|
||||
url(r'^rss/queue/(?P<queue_slug>[A-Za-z0-9_-]+)/$',
|
||||
login_required(feeds.OpenTicketsByQueue()),
|
||||
name='helpdesk_rss_queue'),
|
||||
|
||||
url(r'^rss/unassigned/$',
|
||||
login_required(feeds.UnassignedTickets()),
|
||||
name='helpdesk_rss_unassigned'),
|
||||
|
||||
url(r'^rss/recent_activity/$',
|
||||
login_required(feeds.RecentFollowUps()),
|
||||
name='helpdesk_rss_activity'),
|
||||
|
||||
)
|
||||
|
||||
|
||||
urlpatterns += patterns('',
|
||||
url(r'^api/(?P<method>[a-z_-]+)/$',
|
||||
'helpdesk.views.api.api',
|
||||
name='helpdesk_api'),
|
||||
|
@ -8,10 +8,11 @@ views/feeds.py - A handful of staff-only RSS feeds to provide ticket details
|
||||
"""
|
||||
|
||||
from django.contrib.auth.models import User
|
||||
from django.contrib.syndication.feeds import Feed
|
||||
from django.contrib.syndication.views import Feed
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.db.models import Q
|
||||
from django.utils.translation import ugettext as _
|
||||
from django.shortcuts import get_object_or_404
|
||||
|
||||
from helpdesk.models import Ticket, FollowUp, Queue
|
||||
|
||||
@ -20,13 +21,12 @@ class OpenTicketsByUser(Feed):
|
||||
title_template = 'helpdesk/rss/ticket_title.html'
|
||||
description_template = 'helpdesk/rss/ticket_description.html'
|
||||
|
||||
def get_object(self, bits):
|
||||
if len(bits) < 1:
|
||||
raise ObjectDoesNotExist
|
||||
user = User.objects.get(username__exact=bits[0])
|
||||
if len(bits) == 2:
|
||||
queue = Queue.objects.get(slug__exact=bits[1])
|
||||
else: queue = False
|
||||
def get_object(self, request, user_name, queue_slug=None):
|
||||
user = get_object_or_404(User, username=user_name)
|
||||
if queue_slug:
|
||||
queue = get_object_or_404(Queue, slug=queue_slug)
|
||||
else:
|
||||
queue = None
|
||||
|
||||
return {'user': user, 'queue': queue}
|
||||
|
||||
@ -133,10 +133,8 @@ class OpenTicketsByQueue(Feed):
|
||||
title_template = 'helpdesk/rss/ticket_title.html'
|
||||
description_template = 'helpdesk/rss/ticket_description.html'
|
||||
|
||||
def get_object(self, bits):
|
||||
if len(bits) != 1:
|
||||
raise ObjectDoesNotExist
|
||||
return Queue.objects.get(slug__exact=bits[0])
|
||||
def get_object(self, request, queue_slug):
|
||||
return get_object_or_404(Queue, slug=queue_slug)
|
||||
|
||||
def title(self, obj):
|
||||
return _('Helpdesk: Open Tickets in queue %(queue)s') % {
|
||||
@ -170,11 +168,3 @@ class OpenTicketsByQueue(Feed):
|
||||
else:
|
||||
return _('Unassigned')
|
||||
|
||||
|
||||
feed_setup = {
|
||||
'user': OpenTicketsByUser,
|
||||
'queue': OpenTicketsByQueue,
|
||||
'recent_activity': RecentFollowUps,
|
||||
'unassigned': UnassignedTickets,
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user