Merged from develop

remotes/origin/1203
Kotiuk Nazarii 11 years ago
commit 3a85c2112a
  1. 39
      conference/views.py
  2. 89
      core/models.py
  3. 11
      core/urls.py
  4. 1
      proj/urls.py
  5. 2
      proj/views.py
  6. 1
      settings/conference_old_urls.py
  7. 4
      settings/old_urls.py
  8. 11
      settings/redirect_views.py
  9. BIN
      templates/client/static_client/img/fancybox/blank.gif
  10. BIN
      templates/client/static_client/img/fancybox/fancybox_loading.gif
  11. BIN
      templates/client/static_client/img/fancybox/fancybox_loading@2x.gif
  12. BIN
      templates/client/static_client/img/fancybox/fancybox_overlay.png
  13. BIN
      templates/client/static_client/img/fancybox/fancybox_sprite.png
  14. BIN
      templates/client/static_client/img/fancybox/fancybox_sprite@2x.png

@ -167,17 +167,7 @@ class ConferenceCountryCatalog(ConferenceCatalog):
def get_filtered_qs(self):
#this method used in parent get_queryset
slug = self.kwargs.get('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)
country = get_object_or_404(Country, url=slug)
self.kwargs['country'] = country
self.filter_object = country
qs = self.model.enable.upcoming().filter(country=country)
@ -206,16 +196,7 @@ class ConferenceThemeCatalog(ConferenceCatalog):
slug = self.kwargs.get('slug')
country_slug = self.kwargs.get('country_slug')
city_slug = self.kwargs.get('city_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)
theme = get_object_or_404(Theme, url=slug)
self.kwargs['theme'] = theme
qs = self.model.enable.upcoming().filter(theme=theme)
@ -246,17 +227,7 @@ class ConferenceTagCatalog(ConferenceCatalog):
def get_filtered_qs(self):
#this method used in parent get_queryset
slug = self.kwargs.get('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)
tag = get_object_or_404(Tag, url=slug)
self.kwargs['tag'] = tag
qs = self.model.enable.upcoming().filter(tag=tag)
self.filter_object = tag
@ -392,10 +363,6 @@ 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,3 +1,88 @@
from django.db import models
# -*- coding: utf-8 -*-
from django.contrib.syndication.views import Feed
from django.shortcuts import get_object_or_404
# Create your models here.
from exposition.models import Exposition
from theme.models import Theme
from country.models import Country
from city.models import City
EXPO_ON_PAGE = 10
# nearest expositions at all
class LatestExpositions(Feed):
title = u"Ближайшие выставки на expomap.ru"
link = '/rss/latest/'
description = u'Подписывайтесь на наш RSS-канал'
def items(self):
return Exposition.enable.upcoming()[:EXPO_ON_PAGE]
def item_title(self, item):
return item.name
def item_description(self, item):
return item.main_title
def item_link(self, item):
return '/expo/%s/'%item.url
NUM_ITEMS_ON_PAGE = 20
class CountryFeeds(Feed):
description_template = '/rss/country_feeds/'
def get_object(self, request, slug):
return get_object_or_404(Country, url=slug)
def title(self, obj):
return u"Ближайшие выставки %s:" % obj.inflect
def link(self,obj):
return obj.get_permanent_url()
def item_description(self, obj):
return obj.main_title
def items(self, obj):
return Exposition.enable.upcoming().filter(country=obj)[:NUM_ITEMS_ON_PAGE]
class CityFeeds(Feed):
description_template = '/rss/city_feeds/'
def get_object(self, request, slug):
return get_object_or_404(City, url=slug)
def title(self, obj):
return u"Ближайшие выставки в %s: " % obj.inflect
def link(self,obj):
return obj.get_permanent_url()
def item_description(self, obj):
return obj.main_title
def items(self, obj):
return Exposition.enable.upcoming().filter(city = obj)[:NUM_ITEMS_ON_PAGE]
class ThemeFeeds(Feed):
description_template = '/rss/theme_feeds/'
def get_object(self, request, slug):
return get_object_or_404(Theme, url=slug)
def title(self, obj):
return u"Ближайшие выставки %s: " % obj.inflect
def link(self,obj):
return obj.url
def item_description(self, obj):
return obj.main_title
def items(self, obj):
return Exposition.enable.upcoming().filter(theme = obj)[:NUM_ITEMS_ON_PAGE]

@ -0,0 +1,11 @@
from django.conf.urls import url, patterns
from models import LatestExpositions, CountryFeeds, CityFeeds, ThemeFeeds
urlpatterns = patterns('',
url(r'^latest/$', LatestExpositions()),
url(r'^country/(?P<slug>.*)/$', CountryFeeds()),
url(r'^city/(?P<slug>.*)/$', CityFeeds()),
url(r'^theme/(?P<slug>.*)/$', ThemeFeeds()),
)

@ -29,6 +29,7 @@ sitemaps = {
handler404 = 'proj.views.error404'
urlpatterns = patterns('',
url(r'^rss/', include('core.urls')),
#url(r'^__debug__/', include(debug_toolbar.urls)),
url(r'^sitemap-(?P<section>.+)\.xml$', views.sitemap, {'sitemaps': sitemaps}),
url(r'^admin/', include('proj.admin_urls')),

@ -46,7 +46,7 @@ class MainPageView(JitterCacheMixin,TemplateView):
def get_context_data(self, **kwargs):
context = super(MainPageView, self).get_context_data(**kwargs)
events = Exposition.objects.language().select_related('country', 'city', 'place').filter(main_page=1)
events = Exposition.objects.language().select_related('country', 'city', 'place').filter(main_page__gte=1).order_by('-main_page')
exposition_themes = Theme.objects.language().order_by('-main_page').filter(types=Theme.types.exposition)[:6]
conference_themes = Theme.objects.language().order_by('-main_page').filter(types=Theme.types.conference)[:6]

@ -41,5 +41,4 @@ 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,10 +142,6 @@ 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,12 +15,11 @@ class RedirectMixin(object):
def get_object_url(self, key, value):
Model = self.model
try:
obj = Model.objects.get(old_url=value)
except Model.DoesNotExist:
except:
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:
@ -46,12 +45,12 @@ class TagRedirect(RedirectMixin):
try:
obj = Model.objects.get(url=value)
except Model.DoesNotExist:
if value.endswith('-expo'):
if value.endwith('-expo'):
value = value.replace('-expo', '')
elif value.endswith('-conf'):
elif value.endwith('-conf'):
value = value.replace('-conf', '')
obj = get_object_or_404(Model, old_url=value)
obj = get_object_or_404(old_url=value)
if obj:
return {key: obj.url}

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1003 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

Loading…
Cancel
Save