Translators seo fix

remotes/origin/1203
Nazar Kotjuk 10 years ago
parent 4dbd17ab4d
commit a04fe870fa
  1. 2
      article/models.py
  2. 18
      specialist_catalog/urls.py
  3. 23
      specialist_catalog/views.py

@ -45,7 +45,7 @@ class ArticleManager(TranslationManager):
if cached_news:
return cached_news
else:
news = list(self.news().filter(publish_date__isnull=False).order_by('-main_page', '-publish_date')[:3])
news = list(self.news().filter(publish_date__isnull=False).order_by('-main_page', '-publish_date', '-modified')[:3])
cache.set(key, news, self.cache_time)
return news

@ -1,11 +1,19 @@
# -*- coding: utf-8 -*-
from django.conf.urls import url, patterns
from .views import CatalogDetailedView, SpecCatalog
from .views import CatalogDetailedView, SpecCatalog, redirect_old
urlpatterns = patterns('',
url(r'^city/$', SpecCatalog.as_view(), {'type': 'city'}, name="spec_city"),
url(r'^country/$', SpecCatalog.as_view(), {'type': 'country'}, name="spec_country"),
url(r'^city/(?P<city>.*)/all/page/(?P<page>\d+)/$', redirect_old, {'type': 'city'}),
url(r'^city/(?P<city>.*)/all/$', redirect_old, {'type': 'city'}),
url(r'^city/$', SpecCatalog.as_view(), {'type': 'city', 'meta_id': 86}, name="spec_city"),
url(r'^city/(?P<slug>.*)/$', CatalogDetailedView.as_view(), {'type': 'city', 'meta_id': 88}, name="spec_catalog_city"),
url(r'^city/(?P<slug>.*)/$', CatalogDetailedView.as_view(), {'type': 'city'}, name="spec_catalog_city"),
url(r'^country/(?P<slug>.*)/$', CatalogDetailedView.as_view(), {'type': 'country'}, name="spec_catalog_country"),
url(r'^country/(?P<country>.*)/all/page/(?P<page>\d+)/$', redirect_old),
url(r'^country/(?P<country>.*)/all/$', redirect_old),
url(r'^country/$', SpecCatalog.as_view(), {'type': 'country', 'meta_id': 86}, name="spec_country"),
url(r'^country/(?P<slug>.*)/$', CatalogDetailedView.as_view(), {'type': 'country', 'meta_id': 87}, name="spec_catalog_country"),
url(r'^(?P<slug>.*)/$', redirect_old),
url(r'^page/(?P<page>\d+)/$', redirect_old),
url(r'^$', redirect_old),
)

@ -2,12 +2,13 @@
from django.views.generic import CreateView, UpdateView, DeleteView, ListView, FormView, DetailView
from django.views.generic.detail import SingleObjectMixin
from django.utils.translation import ugettext as _
from meta.views import MetadataMixin
from .forms import *
from django.core.urlresolvers import reverse_lazy
from django.conf import settings
from django.shortcuts import get_object_or_404
from service.order_forms import TranslationForm
from django.http import HttpResponseRedirect, Http404
from django.http import HttpResponseRedirect, Http404, HttpResponsePermanentRedirect
from .models import _city, _country
@ -155,7 +156,7 @@ class FeedbackDeleteView(DeleteView):
# ========= CLIENT VIEWS ============
class CatalogDetailedView(SingleObjectMixin, FormView):
class CatalogDetailedView(MetadataMixin, SingleObjectMixin, FormView):
model = SpecialistCatalog
form_class = TranslationForm
template_name = "client/specialist_catalog/catalog_detailed.html"
@ -164,12 +165,16 @@ class CatalogDetailedView(SingleObjectMixin, FormView):
def get_catalog_obj(self):
if self.kwargs.get('type') is "country":
try:
return self.model.objects.language().get(type=1, country__url=self.kwargs.get('slug'))
spec_catalog = self.model.objects.language().get(type=1, country__url=self.kwargs.get('slug'))
self.kwargs['country'] = spec_catalog.country
return spec_catalog
except self.model.DoesNotExist:
raise Http404
else:
try:
return self.model.objects.language().get(type=2, city__url=self.kwargs.get('slug'))
spec_catalog = self.model.objects.language().get(type=2, city__url=self.kwargs.get('slug'))
self.kwargs['city'] = spec_catalog.city
return spec_catalog
except self.model.DoesNotExist:
raise Http404
@ -197,7 +202,7 @@ class CatalogDetailedView(SingleObjectMixin, FormView):
init['city'] = obj.city.name
return init
class SpecCatalog(ListView):
class SpecCatalog(MetadataMixin, ListView):
model = SpecialistCatalog
template_name = 'client/specialist_catalog/catalog.html'
@ -223,3 +228,11 @@ class SpecCatalog(ListView):
else:
context['title'] = _(u'Переводчики по городам')
return context
def redirect_old(request, *args, **kwargs):
if not kwargs.get('type'):
return HttpResponsePermanentRedirect('/translators/country/')
else:
return HttpResponsePermanentRedirect('/translators/city/')
Loading…
Cancel
Save