remotes/origin/1203
Kotiuk Nazarii 11 years ago
parent 316767f29e
commit a2d3bc1c25
  1. 39
      conference/views.py
  2. 47
      exposition/management/commands/test.py
  3. 1
      settings/conference_old_urls.py
  4. 4
      settings/old_urls.py
  5. 11
      settings/redirect_views.py

@ -157,7 +157,17 @@ class ConferenceCountryCatalog(ConferenceCatalog):
def get_filtered_qs(self):
#this method used in parent get_queryset
slug = self.kwargs.get('slug')
country = get_object_or_404(Country, url=slug)
try:
country = Country.objects.get(url=slug)
except Country.DoesNotExist:
try:
country = Country.objects.get(old_url=slug)
except Country.DoesNotExist:
raise Http404
except Country.MultipleObjectsReturned:
country = Country.objects.filter(old_url=slug)[0]
#country = get_object_or_404(Country, url=slug)
self.kwargs['country'] = country
self.filter_object = country
qs = self.model.enable.upcoming().filter(country=country)
@ -186,7 +196,16 @@ class ConferenceThemeCatalog(ConferenceCatalog):
slug = self.kwargs.get('slug')
country_slug = self.kwargs.get('country_slug')
city_slug = self.kwargs.get('city_slug')
theme = get_object_or_404(Theme, url=slug)
try:
theme = Theme.objects.get(url=slug)
except Theme.DoesNotExist:
try:
theme = Theme.objects.get(old_url=slug)
except Theme.DoesNotExist:
raise Http404
except Theme.MultipleObjectsReturned:
theme = Theme.objects.filter(old_url=slug)[0]
#theme = get_object_or_404(Theme, url=slug)
self.kwargs['theme'] = theme
qs = self.model.enable.upcoming().filter(theme=theme)
@ -217,7 +236,17 @@ class ConferenceTagCatalog(ConferenceCatalog):
def get_filtered_qs(self):
#this method used in parent get_queryset
slug = self.kwargs.get('slug')
tag = get_object_or_404(Tag, url=slug)
try:
tag = Tag.objects.get(url=slug)
except Tag.DoesNotExist:
try:
tag = Tag.objects.get(old_url=slug)
except Tag.DoesNotExist:
raise Http404
except Tag.MultipleObjectsReturned:
tag = Tag.objects.filter(old_url=slug)[0]
#tag = get_object_or_404(Tag, url=slug)
self.kwargs['tag'] = tag
qs = self.model.enable.upcoming().filter(tag=tag)
self.filter_object = tag
@ -353,6 +382,10 @@ class ConferenceDetail(JitterCacheMixin, DetailView):
return HttpResponseRedirect('/conference/city/%s/'%city.url)
except City.DoesNotExist:
return super(ConferenceDetail, self).dispatch(request, *args, **kwargs)
except City.MultipleObjectsReturned:
city = City.objects.filter(old_url=slug)[0]
return HttpResponseRedirect('/conference/city/%s/'%city.url)

@ -1,14 +1,17 @@
# -*- coding: utf-8 -*-
import MySQLdb
import os.path
from MySQLdb.cursors import DictCursor
from django.utils.translation import activate
from django.core.management.base import BaseCommand
from django.conf import settings
from exposition.models import Exposition
from theme.models import Theme
class Command(BaseCommand):
def handle(self, *args, **options):
expos = Exposition.objects.filter(theme__isnull=True, old_url__isnull=False)
#expos = Exposition.objects.filter(theme__isnull=True, old_url__isnull=False)
db = MySQLdb.connect(host="localhost",
user="expomap",
passwd="7FbLtAGjse",
@ -16,7 +19,19 @@ class Command(BaseCommand):
charset='utf8',
cursorclass=DictCursor)
cursor = db.cursor()
activate('ru')
expos = Exposition.enable.upcoming().filter(logo='')
#expo = Exposition.objects.get(old_url='mir-detstva-i-shkoly-2015')
#handle_expo(expo, cursor)
for expo in expos:
handle_expo(expo, cursor)
'''
find_old_id = """
SELECT products.products_id
from products
@ -25,7 +40,8 @@ class Command(BaseCommand):
"""
find_themes = "SELECT categories_id FROM `products_to_categories` WHERE `products_id` =%d"
'''
"""
for expo in expos:
cursor.execute(find_old_id%expo.old_url)
old_ids = [item['products_id'] for item in cursor.fetchall()]
@ -43,6 +59,33 @@ class Command(BaseCommand):
break
print('----------------------')
"""
def handle_expo(expo, cursor):
if expo.logo:
return
find_old = """
SELECT products.products_id, url, products_img1 as logo
from products
LEFT JOIN `products_description` ON products.products_id=products_description.products_id
WHERE url='%s'
"""
cursor.execute(find_old%expo.old_url)
result = cursor.fetchall()
if not result:
return
logo = result[0]['logo']
if logo:
logo = logo.replace('..', '')
print(logo)
print(os.path.isfile(settings.MEDIA_ROOT[:-1]+logo))
if (os.path.isfile(settings.MEDIA_ROOT[:-1]+logo)):
expo.logo = logo
expo.save()

@ -41,4 +41,5 @@ urlpatterns = patterns('',
url(r'^conference/theme-(?P<theme>.*)/page-(?P<page>\d+)/$', old_redirect, {'redirect_url': '/conference/theme/{theme}/page/{page}/'}),
url(r'^conference/theme-(?P<theme>.*)/page/(?P<page>\d+)/$', old_redirect, {'redirect_url': '/conference/theme/{theme}/page/{page}/'}),
url(r'^conference/theme-(?P<theme>.*)/$', old_redirect, {'redirect_url': '/conference/theme/{theme}/'}),
)

@ -142,6 +142,10 @@ urlpatterns = patterns('',
url(r'^catalog/theme-(?P<theme>.*)/page/(?P<page>\d+)/$', old_redirect, {'redirect_url': '/expo/theme/{theme}/page/{page}/'}),
url(r'^catalog/theme-(?P<theme>.*)/$', old_redirect, {'redirect_url': '/expo/theme/{theme}/'}),
url(r'^catalog/theme/$', old_redirect, {'redirect_url': '/expo/theme/'}),
#
url(r'^catalog/time/(?P<year>\d+)/$', old_redirect, {'redirect_url': '/expo/{year}/'}),
url(r'^catalog/time/$', old_redirect, {'redirect_url': '/expo/'}),
# tag

@ -15,11 +15,12 @@ class RedirectMixin(object):
def get_object_url(self, key, value):
Model = self.model
try:
obj = Model.objects.get(old_url=value)
except:
except Model.DoesNotExist:
obj = get_object_or_404(Model, url=value)
except Model.MultipleObjectsReturned:
obj = Model.objects.filter(old_url=value)[0]
if obj:
return {key: obj.url}
else:
@ -45,12 +46,12 @@ class TagRedirect(RedirectMixin):
try:
obj = Model.objects.get(url=value)
except Model.DoesNotExist:
if value.endwith('-expo'):
if value.endswith('-expo'):
value = value.replace('-expo', '')
elif value.endwith('-conf'):
elif value.endswith('-conf'):
value = value.replace('-conf', '')
obj = get_object_or_404(old_url=value)
obj = get_object_or_404(Model, old_url=value)
if obj:
return {key: obj.url}

Loading…
Cancel
Save