def microsite_url(request, microsite_slug, url): microsite = get_object_or_404(MicroSite, slug=microsite_slug) perms_api.assert_has_permission(microsite, request.user, 'view') urlconf = getattr(request, "urlconf", settings.ROOT_URLCONF) urlresolvers.set_urlconf(urlconf) index_prefix = request.get_full_path().index(microsite_slug) prefix = request.get_full_path()[:index_prefix + len(microsite_slug) + 1] resolver = urlresolvers.RegexURLResolver(r'^%s' % prefix, urlconf) newurl = request.path_info try: callback, callback_args, callback_kwargs = resolver.resolve( newurl) except urlresolvers.Resolver404, e: if settings.APPEND_SLASH and (not newurl.endswith('/')): newurl = newurl + '/' if settings.DEBUG and request.method == 'POST': raise RuntimeError(("" "You called this URL via POST, but the URL doesn't end " "in a slash and you have APPEND_SLASH set. Django can't " "redirect to the slash URL while maintaining POST data. " "Change your form to point to %s (note the trailing " "slash), or set APPEND_SLASH=False in your Django " "settings.") % newurl) return HttpResponseRedirect(newurl) raise e
def microsite_url(request, microsite_slug, url): microsite = get_object_or_404(MicroSite, slug=microsite_slug) perms_api.assert_has_permission(microsite, request.user, 'view') urlconf = getattr(request, "urlconf", settings.ROOT_URLCONF) urlresolvers.set_urlconf(urlconf) index_prefix = request.get_full_path().index(microsite_slug) prefix = request.get_full_path()[:index_prefix + len(microsite_slug) + 1] resolver = urlresolvers.RegexURLResolver(r'^%s' % prefix, urlconf) newurl = request.path_info try: callback, callback_args, callback_kwargs = resolver.resolve(newurl) except urlresolvers.Resolver404, e: if settings.APPEND_SLASH and (not newurl.endswith('/')): newurl = newurl + '/' if settings.DEBUG and request.method == 'POST': raise RuntimeError( ("" "You called this URL via POST, but the URL doesn't end " "in a slash and you have APPEND_SLASH set. Django can't " "redirect to the slash URL while maintaining POST data. " "Change your form to point to %s (note the trailing " "slash), or set APPEND_SLASH=False in your Django " "settings.") % newurl) return HttpResponseRedirect(newurl) raise e
def content_view(request, content, template_name=None, extra_context=None): """ Generic view for a content detail page """ perms_api.assert_has_permission(content, request.user, 'view') if content._meta.content_view_function is not None: func_path = content._meta.content_view_function func_path_join = func_path.split('.') render_content_view = getattr(import_module('.'.join(func_path_join[:-1])), func_path_join[-1]) else: render_content_view = render_content return render_content_view(request, content, template_name, extra_context)
def content_view(request, content, template_name=None, extra_context=None): """ Generic view for a content detail page """ perms_api.assert_has_permission(content, request.user, 'view') if content._meta.content_view_function is not None: func_path = content._meta.content_view_function func_path_join = func_path.split('.') render_content_view = getattr( import_module('.'.join(func_path_join[:-1])), func_path_join[-1]) else: render_content_view = render_content return render_content_view(request, content, template_name, extra_context)
def section_view(request, section_slug, original_context=None, template='section/section_view_without_maincontent.html'): section_slug = section_slug.strip('/') section = get_object_or_404(BaseSection, slug=section_slug) perms_api.assert_has_permission(section, request.user, 'view') section = section.get_real_instance() context = original_context or {} context['section'] = section if section._meta.content_view_function is not None: func_path = section._meta.content_view_function func_path_join = func_path.split('.') render_section_view = getattr(import_module('.'.join(func_path_join[:-1])), func_path_join[-1]) else: render_section_view = merengue_section_view return render_section_view(request, section, template, context)
def section_view(request, section_slug, original_context=None, template='section/section_view_without_maincontent.html'): section_slug = section_slug.strip('/') section = get_object_or_404(BaseSection, slug=section_slug) perms_api.assert_has_permission(section, request.user, 'view') section = section.get_real_instance() context = original_context or {} context['section'] = section if section._meta.content_view_function is not None: func_path = section._meta.content_view_function func_path_join = func_path.split('.') render_section_view = getattr( import_module('.'.join(func_path_join[:-1])), func_path_join[-1]) else: render_section_view = merengue_section_view return render_section_view(request, section, template, context)