diff --git a/batiskaf/settings.py b/batiskaf/settings.py index 0cea3be..0489365 100644 --- a/batiskaf/settings.py +++ b/batiskaf/settings.py @@ -57,6 +57,7 @@ INSTALLED_APPS = ( 'django.contrib.messages', 'django.contrib.staticfiles', 'django.contrib.postgres', + 'django.contrib.sitemaps', 'django_extensions', 'rest_framework', 'easy_thumbnails', diff --git a/batiskaf/templates/jinja2/base.jinja b/batiskaf/templates/jinja2/base.jinja index 2a4e449..5ddda0b 100644 --- a/batiskaf/templates/jinja2/base.jinja +++ b/batiskaf/templates/jinja2/base.jinja @@ -211,9 +211,8 @@



- Карта сайта  |  Поисковые запросы  |  Поиск  |  Контакты  |  RSS + Карта сайта  |  Поиск  |  Контакты  



diff --git a/batiskaf/urls.py b/batiskaf/urls.py index 51db206..75801ca 100644 --- a/batiskaf/urls.py +++ b/batiskaf/urls.py @@ -1,12 +1,16 @@ from django.conf.urls import patterns, include, url from django.contrib import admin from api.views import call_order -from store.views import order_view, order_print +from news.views import NewsSitemap +from store.views import order_view, order_print, ProductSitemap, CategorySitemap from main.views import * from rest_framework import routers # from api.urls import router from rest_framework import routers from api.views import * +from django.contrib import sitemaps +from django.core.urlresolvers import reverse +from django.contrib.sitemaps.views import sitemap # Serializers define the API representation. # Routers provide an easy way of automatically determining the URL conf. @@ -16,10 +20,39 @@ admin.site.site_header = 'Админка Batiskaf-kz.kz' admin.site.site_title = 'Админка Batiskaf-kz.kz' admin.site.index_title = 'Модели' + +class StaticViewSitemap(sitemaps.Sitemap): + priority = 0.5 + changefreq = 'daily' + + def items(self): + return [ + 'index', 'size_index', 'size_beuchat', + 'size_omer_sporasub', 'size_sargan', 'size_scorpena', + 'advantages', 'payment', 'delivery', + 'contacts', 'faq', + 'store_cart_detail', 'store_search', 'store_sale', + 'accounts_index', 'accounts_login', 'news_index', + ] + + def location(self, item): + return reverse(item) + + +sitemaps1 = { + 'static': StaticViewSitemap, + 'items': ProductSitemap, + 'news': NewsSitemap, + 'categories': CategorySitemap, +} + + urlpatterns = patterns( '', url(r'^$', 'main.views.index', name='index'), + url(r'^sitemap\.xml$', sitemap, {'sitemaps': sitemaps1}, + name='django.contrib.sitemaps.views.sitemap'), url(r'^size/$', 'main.views.size_index', name='size_index'), url(r'^size/beuchat/$', 'main.views.size_beuchat', @@ -47,6 +80,6 @@ urlpatterns = patterns( url(r'^payment/$', payment, name='payment'), url(r'^delivery/$', delivery, name='delivery'), url(r'^contacts/$', contacts, name='contacts'), - url(r'^faq/$', faq, name='contacfaqts'), + url(r'^faq/$', faq, name='faq'), url(r'^admin2517_garpun/', include(admin.site.urls)), ) diff --git a/news/views.py b/news/views.py index 45c0d63..c7a3814 100644 --- a/news/views.py +++ b/news/views.py @@ -1,4 +1,5 @@ from django.contrib import messages +from django.contrib.sitemaps import Sitemap from django.shortcuts import render, get_object_or_404, redirect from django.views.generic import ListView, DetailView from django.views.generic.edit import FormView, CreateView @@ -46,3 +47,12 @@ def news_detail(request, slug): return render(request, 'news/detail.jinja', c) +class NewsSitemap(Sitemap): + changefreq = "never" + priority = 1 + + def items(self): + return News.objects.all() + + def lastmod(self, obj): + return obj.created diff --git a/store/urls.py b/store/urls.py index e73287f..78869cc 100644 --- a/store/urls.py +++ b/store/urls.py @@ -2,6 +2,11 @@ from django.conf.urls import patterns, url from django.views.generic import RedirectView from .views import * + + + + + urlpatterns = patterns('', url(r'^$', RedirectView.as_view( url='/', permanent=True), name='store_index'), diff --git a/store/views.py b/store/views.py index 61445a7..b99cbc8 100644 --- a/store/views.py +++ b/store/views.py @@ -13,7 +13,7 @@ from store.forms import OrderForm from django.http import JsonResponse from datetime import datetime from django.conf import settings - +from django.contrib.sitemaps import Sitemap class CategoryBaseView(object): category = None @@ -273,3 +273,19 @@ def order_print(request, order): order = get_object_or_404(OrderData, pk=order) c = dict(order=order, date=datetime.now()) return render(request, 'order_print.jinja', c) + + +class ProductSitemap(Sitemap): + changefreq = "daily" + priority = 1 + + def items(self): + return Product.objects.all() + +class CategorySitemap(Sitemap): + changefreq = "daily" + priority = 1 + + def items(self): + return Category.objects.all() +