X-Git-Url: https://git.mdrn.pl/edumed.git/blobdiff_plain/2d1a48203fbde7378cb2268ffd667f9208bcb598..b8ed4acbfa53cc72b82b851f1ec2e28c5e821384:/edumed/views.py?ds=sidebyside diff --git a/edumed/views.py b/edumed/views.py index 1ba6137..af9bad5 100644 --- a/edumed/views.py +++ b/edumed/views.py @@ -1,15 +1,9 @@ # -*- coding: utf-8 -*- from django.contrib.flatpages.views import flatpage -from django.core.exceptions import ValidationError -from django.core.validators import EmailValidator -from django.http.response import HttpResponseRedirect -from django.shortcuts import render_to_response -from django.template.context import RequestContext from django.views.defaults import page_not_found from django.views.generic import TemplateView from pybb.views import ProfileEditView -from contact.models import Contact from .forms import AvatarlessEditProfileForm @@ -37,17 +31,34 @@ class AvatarlessProfileEditView(ProfileEditView): form_class = AvatarlessEditProfileForm -def olimpiada_teaser(request): - if request.POST: - email = request.POST.get('email') - try: - EmailValidator()(email) - Contact.objects.create( - contact=email, - body={}, - ip=request.META['REMOTE_ADDR'], - form_tag='olimpiada-teaser') - except ValidationError: - pass - return HttpResponseRedirect(request.path) - return render_to_response('olimpiada_teaser.html', context_instance=RequestContext(request)) +def flatpage_with_template(request, url, template_name): + """ + Public interface to the flat page view. + + Models: `flatpages.flatpages` + Templates: Uses the template defined by the ``template_name`` field, + or :template:`flatpages/default.html` if template_name is not defined. + Context: + flatpage + `flatpages.flatpages` object + """ + from django.conf import settings + from django.contrib.flatpages.models import FlatPage + from django.contrib.flatpages.views import render_flatpage + from django.contrib.sites.models import get_current_site + from django.http.response import Http404, HttpResponsePermanentRedirect + from django.shortcuts import get_object_or_404 + if not url.startswith('/'): + url = '/' + url + site_id = get_current_site(request).id + try: + f = get_object_or_404(FlatPage, url__exact=url, sites__id__exact=site_id) + except Http404: + if not url.endswith('/') and settings.APPEND_SLASH: + url += '/' + get_object_or_404(FlatPage, url__exact=url, sites__id__exact=site_id) + return HttpResponsePermanentRedirect('%s/' % request.path) + else: + raise + f.template_name = template_name + return render_flatpage(request, f)