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): def get_filtered_qs(self):
#this method used in parent get_queryset #this method used in parent get_queryset
slug = self.kwargs.get('slug') 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.kwargs['country'] = country
self.filter_object = country self.filter_object = country
qs = self.model.enable.upcoming().filter(country=country) qs = self.model.enable.upcoming().filter(country=country)
@ -186,7 +196,16 @@ class ConferenceThemeCatalog(ConferenceCatalog):
slug = self.kwargs.get('slug') slug = self.kwargs.get('slug')
country_slug = self.kwargs.get('country_slug') country_slug = self.kwargs.get('country_slug')
city_slug = self.kwargs.get('city_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 self.kwargs['theme'] = theme
qs = self.model.enable.upcoming().filter(theme=theme) qs = self.model.enable.upcoming().filter(theme=theme)
@ -217,7 +236,17 @@ class ConferenceTagCatalog(ConferenceCatalog):
def get_filtered_qs(self): def get_filtered_qs(self):
#this method used in parent get_queryset #this method used in parent get_queryset
slug = self.kwargs.get('slug') 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 self.kwargs['tag'] = tag
qs = self.model.enable.upcoming().filter(tag=tag) qs = self.model.enable.upcoming().filter(tag=tag)
self.filter_object = tag self.filter_object = tag
@ -353,6 +382,10 @@ class ConferenceDetail(JitterCacheMixin, DetailView):
return HttpResponseRedirect('/conference/city/%s/'%city.url) return HttpResponseRedirect('/conference/city/%s/'%city.url)
except City.DoesNotExist: except City.DoesNotExist:
return super(ConferenceDetail, self).dispatch(request, *args, **kwargs) 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 -*- # -*- coding: utf-8 -*-
import MySQLdb import MySQLdb
import os.path
from MySQLdb.cursors import DictCursor from MySQLdb.cursors import DictCursor
from django.utils.translation import activate
from django.core.management.base import BaseCommand from django.core.management.base import BaseCommand
from django.conf import settings
from exposition.models import Exposition from exposition.models import Exposition
from theme.models import Theme from theme.models import Theme
class Command(BaseCommand): class Command(BaseCommand):
def handle(self, *args, **options): 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", db = MySQLdb.connect(host="localhost",
user="expomap", user="expomap",
passwd="7FbLtAGjse", passwd="7FbLtAGjse",
@ -16,7 +19,19 @@ class Command(BaseCommand):
charset='utf8', charset='utf8',
cursorclass=DictCursor) cursorclass=DictCursor)
cursor = db.cursor() 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 = """ find_old_id = """
SELECT products.products_id SELECT products.products_id
from products from products
@ -25,7 +40,8 @@ class Command(BaseCommand):
""" """
find_themes = "SELECT categories_id FROM `products_to_categories` WHERE `products_id` =%d" find_themes = "SELECT categories_id FROM `products_to_categories` WHERE `products_id` =%d"
'''
"""
for expo in expos: for expo in expos:
cursor.execute(find_old_id%expo.old_url) cursor.execute(find_old_id%expo.old_url)
old_ids = [item['products_id'] for item in cursor.fetchall()] old_ids = [item['products_id'] for item in cursor.fetchall()]
@ -43,6 +59,33 @@ class Command(BaseCommand):
break break
print('----------------------') 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>.*)/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}/'}), 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>.*)/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-(?P<theme>.*)/$', old_redirect, {'redirect_url': '/expo/theme/{theme}/'}),
url(r'^catalog/theme/$', old_redirect, {'redirect_url': '/expo/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 # tag

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

Loading…
Cancel
Save