forked from CGM_Public/pretix_original
Prevent some pages from search indexing
This commit is contained in:
@@ -40,7 +40,7 @@
|
|||||||
{% if request.event.settings.locales|length > 1 %}
|
{% if request.event.settings.locales|length > 1 %}
|
||||||
<div class="locales">
|
<div class="locales">
|
||||||
{% for l in languages %}
|
{% for l in languages %}
|
||||||
<a href="{% url "presale:locale.set" %}?locale={{ l.code }}&next={{ request.path }}%3F{{ request.META.QUERY_STRING|urlencode }}" class="{% if l.code == request.LANGUAGE_CODE %}active{% endif %}">
|
<a href="{% url "presale:locale.set" %}?locale={{ l.code }}&next={{ request.path }}%3F{{ request.META.QUERY_STRING|urlencode }}" class="{% if l.code == request.LANGUAGE_CODE %}active{% endif %}" rel="nofollow">
|
||||||
{{ l.name_local }}
|
{{ l.name_local }}
|
||||||
</a>
|
</a>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import pretix.presale.views.event
|
|||||||
import pretix.presale.views.locale
|
import pretix.presale.views.locale
|
||||||
import pretix.presale.views.order
|
import pretix.presale.views.order
|
||||||
import pretix.presale.views.organizer
|
import pretix.presale.views.organizer
|
||||||
|
import pretix.presale.views.robots
|
||||||
import pretix.presale.views.user
|
import pretix.presale.views.user
|
||||||
import pretix.presale.views.waiting
|
import pretix.presale.views.waiting
|
||||||
|
|
||||||
@@ -83,4 +84,5 @@ organizer_patterns = [
|
|||||||
|
|
||||||
locale_patterns = [
|
locale_patterns = [
|
||||||
url(r'^locale/set$', pretix.presale.views.locale.LocaleSet.as_view(), name='locale.set'),
|
url(r'^locale/set$', pretix.presale.views.locale.LocaleSet.as_view(), name='locale.set'),
|
||||||
|
url(r'^robots.txt$', pretix.presale.views.robots.robots_txt, name='robots.txt'),
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ from pretix.multidomain.urlreverse import eventreverse
|
|||||||
from pretix.presale.views import EventViewMixin
|
from pretix.presale.views import EventViewMixin
|
||||||
from pretix.presale.views.async import AsyncAction
|
from pretix.presale.views.async import AsyncAction
|
||||||
from pretix.presale.views.event import item_group_by_category
|
from pretix.presale.views.event import item_group_by_category
|
||||||
|
from pretix.presale.views.robots import NoSearchIndexViewMixin
|
||||||
|
|
||||||
|
|
||||||
class CartActionMixin:
|
class CartActionMixin:
|
||||||
@@ -177,7 +178,7 @@ class CartAdd(EventViewMixin, CartActionMixin, AsyncAction, View):
|
|||||||
return redirect(self.get_error_url())
|
return redirect(self.get_error_url())
|
||||||
|
|
||||||
|
|
||||||
class RedeemView(EventViewMixin, TemplateView):
|
class RedeemView(NoSearchIndexViewMixin, EventViewMixin, TemplateView):
|
||||||
template_name = "pretixpresale/event/voucher.html"
|
template_name = "pretixpresale/event/voucher.html"
|
||||||
|
|
||||||
def get_context_data(self, **kwargs):
|
def get_context_data(self, **kwargs):
|
||||||
|
|||||||
@@ -5,8 +5,10 @@ from django.http import HttpResponseRedirect
|
|||||||
from django.utils.http import is_safe_url
|
from django.utils.http import is_safe_url
|
||||||
from django.views.generic import View
|
from django.views.generic import View
|
||||||
|
|
||||||
|
from .robots import NoSearchIndexViewMixin
|
||||||
|
|
||||||
class LocaleSet(View):
|
|
||||||
|
class LocaleSet(NoSearchIndexViewMixin, View):
|
||||||
|
|
||||||
def get(self, request, *args, **kwargs):
|
def get(self, request, *args, **kwargs):
|
||||||
url = request.GET.get('next', request.META.get('HTTP_REFERER', '/'))
|
url = request.GET.get('next', request.META.get('HTTP_REFERER', '/'))
|
||||||
|
|||||||
@@ -29,9 +29,10 @@ from pretix.presale.forms.checkout import InvoiceAddressForm
|
|||||||
from pretix.presale.views import CartMixin, EventViewMixin
|
from pretix.presale.views import CartMixin, EventViewMixin
|
||||||
from pretix.presale.views.async import AsyncAction
|
from pretix.presale.views.async import AsyncAction
|
||||||
from pretix.presale.views.questions import QuestionsViewMixin
|
from pretix.presale.views.questions import QuestionsViewMixin
|
||||||
|
from pretix.presale.views.robots import NoSearchIndexViewMixin
|
||||||
|
|
||||||
|
|
||||||
class OrderDetailMixin:
|
class OrderDetailMixin(NoSearchIndexViewMixin):
|
||||||
@cached_property
|
@cached_property
|
||||||
def order(self):
|
def order(self):
|
||||||
order = self.request.event.orders.filter(code=self.kwargs['order']).select_related('event').first()
|
order = self.request.event.orders.filter(code=self.kwargs['order']).select_related('event').first()
|
||||||
|
|||||||
26
src/pretix/presale/views/robots.py
Normal file
26
src/pretix/presale/views/robots.py
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
from django.http import HttpResponse
|
||||||
|
from django.views.decorators.cache import cache_page
|
||||||
|
|
||||||
|
|
||||||
|
class NoSearchIndexViewMixin:
|
||||||
|
def dispatch(self, request, *args, **kwargs):
|
||||||
|
resp = super().dispatch(request, *args, **kwargs)
|
||||||
|
resp['X-Robots-Tag'] = "noindex"
|
||||||
|
return resp
|
||||||
|
|
||||||
|
|
||||||
|
@cache_page(3600)
|
||||||
|
def robots_txt(request):
|
||||||
|
return HttpResponse(
|
||||||
|
"""User-agent: *
|
||||||
|
Disallow: */cart/*
|
||||||
|
Disallow: */checkout/*
|
||||||
|
Disallow: */order/*
|
||||||
|
Disallow: */locale/set*
|
||||||
|
Disallow: /control/
|
||||||
|
Disallow: /download/
|
||||||
|
Disallow: /redirect/
|
||||||
|
Disallow: /api/
|
||||||
|
Disallow: /download/
|
||||||
|
""", content_type='text/plain'
|
||||||
|
)
|
||||||
Reference in New Issue
Block a user