diff --git a/app/stores/sitemap.py b/app/stores/sitemap.py new file mode 100644 index 0000000..f419096 --- /dev/null +++ b/app/stores/sitemap.py @@ -0,0 +1,29 @@ +from django.contrib.sitemaps import Sitemap +from stores.models import Store, Chain + + +class StoreSitemap(Sitemap): + changefreq = 'weekly' + priority = 1 + + def items(self): + return Chain.objects.filter(active=True) + + def lastmod(self, obj): + return obj.changed + + +class ChainSitemap(Sitemap): + changefreq = 'weekly' + + def items(self): + return Store.objects.filter(active=True) + + def lastmod(self, obj): + return obj.changed + + +sitemaps = { + 'stores': StoreSitemap, + 'chains': ChainSitemap, +} \ No newline at end of file diff --git a/app/stores/urls.py b/app/stores/urls.py index 241c428..ea6c35e 100644 --- a/app/stores/urls.py +++ b/app/stores/urls.py @@ -1,11 +1,14 @@ from django.conf.urls import patterns, include, url -from .views import * -from .forms import AddressForm, StoreForm -from .models import Store, Chain +from stores.views import * +from stores.forms import AddressForm, StoreForm +from stores.models import Store, Chain +from stores.sitemap import sitemaps urlpatterns = patterns('', url(r'^$', MapView.as_view(), name='map'), + url(r'^sitemap\.xml$', 'django.contrib.sitemaps.views.sitemap', {'sitemaps': sitemaps}, name='sitemap'), + url(r'^chains/$', ChainListView.as_view(), name='chain-list'), url(r'^chains/(?P.*)/claim/$', ClaimCreateView.as_view(target_model=Chain), name='chain-claim'), url(r'^chains/(?P\d+)/$', ChainDetailView.as_view(), name='chain-detail-pk'), diff --git a/app/vapemap/conf/base.py b/app/vapemap/conf/base.py index 1b28272..8225b47 100644 --- a/app/vapemap/conf/base.py +++ b/app/vapemap/conf/base.py @@ -67,6 +67,7 @@ INSTALLED_APPS = [ 'django.contrib.staticfiles', 'django.contrib.admin', 'django.contrib.flatpages', + 'django.contrib.sitemaps', 'gunicorn', 'raven.contrib.django.raven_compat', 'south',