redirect from persona_id to addon.slug (bug 636496)

This commit is contained in:
Andy McKay 2011-03-03 11:31:32 -08:00
Родитель 51a06cdf6b
Коммит b034a6ac88
3 изменённых файлов: 23 добавлений и 4 удалений

Просмотреть файл

@ -1203,3 +1203,16 @@ class TestMobileDetails(TestMobile):
self.client.get(relnotes.attr('href'), follow=True)
eq_(r.status_code, 200)
class TestRedirect(test_utils.TestCase):
fixtures = ['addons/persona']
def test_redirect(self):
res = self.client.get(reverse('persona', args=[813]))
eq_(res.status_code, 301)
assert reverse('addons.detail', args=['a15663']) in res['Location']
def test_redirect_404(self):
res = self.client.get(reverse('persona', args=[2]))
eq_(res.status_code, 404)

Просмотреть файл

@ -10,7 +10,7 @@ from django.db.models import Q
from django.shortcuts import get_list_or_404, get_object_or_404, redirect
from django.utils.translation import trans_real as translation
from django.utils import http as urllib
from django.views.decorators.cache import cache_page
from django.views.decorators.cache import cache_page, cache_control
import caching.base as caching
import jingo
import jinja2
@ -36,7 +36,7 @@ from tags.models import Tag
from translations.query import order_by_translation
from translations.helpers import truncate
from versions.models import Version
from .models import Addon, MiniAddon
from .models import Addon, MiniAddon, Persona
from .decorators import addon_view_factory
log = commonware.log.getLogger('z.addons')
@ -626,3 +626,9 @@ def report_abuse(request, addon):
return jingo.render(request, 'addons/report_abuse_full.html',
{'addon': addon, 'abuse_form': form, })
return redirect('addons.detail', addon.slug)
@cache_control(max_age=60 * 60 * 24)
def persona_redirect(request, persona_id):
persona = get_object_or_404(Persona, persona_id=persona_id)
return redirect('addons.detail', persona.addon.slug, permanent=True)

Просмотреть файл

@ -100,8 +100,8 @@ urlpatterns = patterns('',
lambda r: redirect('pages.faq', permanent=True)),
# Redirect persona/xxx
('^persona/(\d+)',
lambda r, id: redirect('addons.detail', id, permanent=True)),
url('^persona/(?P<persona_id>\d+)', 'addons.views.persona_redirect',
name='persona'),
# Redirect top-tags to tags/top
('^top-tags/?',