attachments by slugs
[edumed.git] / edumed / views.py
index 1ba6137..af9bad5 100644 (file)
@@ -1,15 +1,9 @@
 # -*- coding: utf-8 -*-
 from django.contrib.flatpages.views import flatpage
 # -*- 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 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
 
 
 from .forms import AvatarlessEditProfileForm
 
 
@@ -37,17 +31,34 @@ class AvatarlessProfileEditView(ProfileEditView):
     form_class = AvatarlessEditProfileForm
 
 
     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)