def decorator(fn): def params(request, id, slug=None): user = get_object_or_404(User, id=id) if private and not (user == request.user or request.user.is_superuser): raise ReturnImediatelyException( HttpResponseUnauthorized(request)) if render_to and (not render_to(user)): raise ReturnImediatelyException( HttpResponseRedirect(user.get_profile_url())) return [request, user], {} decorated = decorate.params.withfn(params)(fn) def result(context, request, user): try: user.username = user.username.decode("utf8") except Exception: pass rev_page_title = user.username + " - " + tab_description context.update({ "tab": "users", "active_tab": tab_name, "tab_description": tab_description, "page_title": rev_page_title, "can_view_private": (user == request.user) or request.user.is_superuser }) return render_to_response(template, context, context_instance=RequestContext(request)) decorated = decorate.result.withfn(result, needs_params=True)(decorated) if tabbed: def url_getter(vu): try: return reverse(fn.__name__, kwargs={ 'id': vu.id, 'slug': slugify(vu.username) }) except NoReverseMatch: return reverse(fn.__name__, kwargs={'id': vu.id}) ui.register( ui.PROFILE_TABS, ui.ProfileTab(tab_name, tab_title, tab_description, url_getter, private, render_to, weight)) return decorated
def decorator(fn): def params(request, id=None, slug=None): # Get the user object by id if the id parameter has been passed if id is not None: user = get_object_or_404(User, id=id) # ...or by slug if the slug has been given elif slug is not None: try: user = User.objects.get(username__iexact=slug) except User.DoesNotExist: raise Http404 if private and not (user == request.user.user or request.user.is_superuser): raise ReturnImediatelyException(HttpResponseUnauthorized(request)) if render_to and (not render_to(user)): raise ReturnImediatelyException(HttpResponseRedirect(user.get_profile_url())) return [request, user], {'slug': slug, } decorated = decorate.params.withfn(params)(fn) def result(context_or_response, request, user, **kwargs): rev_page_title = smart_unicode(user.username) + " - " + tab_description # Check whether the return type of the decorated function is a context or Http Response if isinstance(context_or_response, HttpResponse): response = context_or_response # If it is a response -- show it return response else: # ...if it is a context move forward, update it and render it to response context = context_or_response context.update({ "tab": "users", "active_tab": tab_name, "tab_description": tab_description, "page_title": rev_page_title, "can_view_private": (user == request.user) or request.user.is_superuser }) return render_to_response(template, context, context_instance=RequestContext(request)) decorated = decorate.result.withfn(result, needs_params=True)(decorated) if tabbed: def url_getter(vu): try: return reverse(fn.__name__, kwargs={'id': vu.id, 'slug': slugify(smart_unicode(vu.username))}) except NoReverseMatch: try: return reverse(fn.__name__, kwargs={'id': vu.id}) except NoReverseMatch: return reverse(fn.__name__, kwargs={'slug': slugify(smart_unicode(vu.username))}) ui.register(ui.PROFILE_TABS, ui.ProfileTab( tab_name, tab_title, tab_description, url_getter, private, render_to, weight )) return decorated
def decorator(func): def decorated(context, request, *args, **kwargs): if request.user.is_authenticated(): ONLINE_USERS[request.user] = datetime.now() # This makes this OSQA instance private so that only authenticated # users can see it else: return HttpResponseRedirect(reverse('auth_signin')) if isinstance(context, HttpResponse): return context if tab is not None: context['tab'] = tab return render_to_response(context.pop('template', template), context, context_instance=RequestContext(request)) if tabbed and tab and tab_title: ui.register(ui.PAGE_TOP_TABS, ui.PageTab(tab, tab_title, lambda: reverse(func.__name__), weight=weight)) return decorate.result.withfn(decorated, needs_params=True)(func)
def decorator(func): def decorated(context, request, *args, **kwargs): if isinstance(context, HttpResponse): return context if tab is not None: context['tab'] = tab return render_to_response(context.pop('template', template), context, context_instance=RequestContext(request)) if tabbed and tab and tab_title: ui.register(ui.PAGE_TOP_TABS, ui.PageTab(tab, tab_title, lambda: reverse(func.__name__), weight=weight)) return decorate.result.withfn(decorated, needs_params=True)(func)
def decorator(fn): def params(request, id=None, slug=None): # Get the user object by id if the id parameter has been passed if id is not None: user = get_object_or_404(User, id=id) # ...or by slug if the slug has been given elif slug is not None: user = get_object_or_404(User, username=slug) if private and not (user == request.user or request.user.is_superuser): raise ReturnImediatelyException(HttpResponseUnauthorized(request)) if render_to and (not render_to(user)): raise ReturnImediatelyException(HttpResponseRedirect(user.get_profile_url())) return [request, user], {} decorated = decorate.params.withfn(params)(fn) def result(context, request, user): rev_page_title = smart_unicode(user.username) + " - " + tab_description context.update({ "tab": "users", "active_tab" : tab_name, "tab_description" : tab_description, "page_title" : rev_page_title, "can_view_private": (user == request.user) or request.user.is_superuser }) return render_to_response(template, context, context_instance=RequestContext(request)) decorated = decorate.result.withfn(result, needs_params=True)(decorated) if tabbed: def url_getter(vu): try: return reverse(fn.__name__, kwargs={'id': vu.id, 'slug': slugify(smart_unicode(vu.username))}) except NoReverseMatch: return reverse(fn.__name__, kwargs={'id': vu.id}) ui.register(ui.PROFILE_TABS, ui.ProfileTab( tab_name, tab_title, tab_description,url_getter, private, render_to, weight )) return decorated
def decorator(func): def decorated(context, request, *args, **kwargs): if request.user.is_authenticated(): ONLINE_USERS[request.user] = datetime.now() if isinstance(context, HttpResponse): return context if tab is not None: context['tab'] = tab return render_to_response(context.pop('template', template), context, context_instance=RequestContext(request)) if tabbed and tab and tab_title: ui.register(ui.PAGE_TOP_TABS, ui.PageTab(tab, tab_title, lambda: reverse(func.__name__), weight=weight)) return decorate.result.withfn(decorated, needs_params=True)(func)
def decorator(func): def decorated(context, request, *args, **kwargs): if request.user.is_authenticated(): ONLINE_USERS[request.user] = datetime.now() if isinstance(context, HttpResponse): return context if tab is not None: context["tab"] = tab return render_to_response( context.pop("template", template), context, context_instance=RequestContext(request) ) if tabbed and tab and tab_title: ui.register(ui.PAGE_TOP_TABS, ui.PageTab(tab, tab_title, lambda: reverse(func.__name__), weight=weight)) return decorate.result.withfn(decorated, needs_params=True)(func)
django_template_tags.append(m.__name__) except: pass ui.register(ui.HEADER_LINKS, ui.Link(_('faq'), ui.Url('faq'), weight=400, name='FAQ'), ui.Link(_('about'), ui.Url('about'), weight=300, name='ABOUT'), ui.Link( text=lambda u, c: u.is_authenticated() and _('logout') or _('login'), url=lambda u, c: u.is_authenticated() and reverse('logout') or reverse('auth_signin'), weight=200, name='LOGIN/OUT'), ui.Link( visibility=ui.Visibility.AUTHENTICATED, text=lambda u, c: smart_unicode(u.username), url=lambda u, c: u.get_profile_url(), post_code=lambda u, c: get_score_badge(u), weight=100, name='ACCOUNT'), ui.Link( visibility=ui.Visibility.SUPERUSER, text=_('administration'), url=lambda u, c: reverse('admin_index'), weight=0, name='ADMINISTRATION') ) class SupportLink(ui.Link): def can_render(self, context): return bool(settings.SUPPORT_URL)
def decorator(fn): def params(request, id=None, slug=None): # Get the user object by id if the id parameter has been passed if id is not None: user = get_object_or_404(User, id=id) # ...or by slug if the slug has been given elif slug is not None: try: user = User.objects.get(username__iexact=slug) except User.DoesNotExist: raise Http404 if private and not (user == request.user or request.user.is_superuser): raise ReturnImediatelyException( HttpResponseUnauthorized(request)) if render_to and (not render_to(user)): raise ReturnImediatelyException( HttpResponseRedirect(user.get_profile_url())) return [request, user], { 'slug': slug, } decorated = decorate.params.withfn(params)(fn) def result(context_or_response, request, user, **kwargs): rev_page_title = smart_unicode( user.username) + " - " + tab_description # Check whether the return type of the decorated function is a context or Http Response if isinstance(context_or_response, HttpResponse): response = context_or_response # If it is a response -- show it return response else: # ...if it is a context move forward, update it and render it to response context = context_or_response context.update({ "tab": "users", "active_tab": tab_name, "tab_description": tab_description, "page_title": rev_page_title, "can_view_private": (user == request.user) or request.user.is_superuser }) return render_to_response(template, context, context_instance=RequestContext(request)) decorated = decorate.result.withfn(result, needs_params=True)(decorated) if tabbed: def url_getter(vu): try: return reverse(fn.__name__, kwargs={ 'id': vu.id, 'slug': slugify(smart_unicode(vu.username)) }) except NoReverseMatch: try: return reverse(fn.__name__, kwargs={'id': vu.id}) except NoReverseMatch: return reverse(fn.__name__, kwargs={ 'slug': slugify(smart_unicode(vu.username)) }) ui.register( ui.PROFILE_TABS, ui.ProfileTab(tab_name, tab_title, tab_description, url_getter, private, render_to, weight)) return decorated
ui.register(ui.HEADER_LINKS, ui.Link(_('FAQ'), ui.Url('faq'), weight=400), # ui.Link(_('About'), ui.Url('about'), weight=300), #Replaced with hard-code in header.html ui.Link( text=lambda u, c: u.is_authenticated() and _('logout') or _('Login / Register'), url=lambda u, c: u.is_authenticated() and reverse('logout') or reverse('auth_signin'), weight=200), ui.Link( visibility=ui.Visibility.AUTHENTICATED, text=lambda u, c: u.username, url=lambda u, c: u.get_profile_url(), post_code=lambda u, c: get_score_badge(u), weight=100), ui.Link( visibility=ui.Visibility.EDUCATOR, text=_('Dashboard'), url=lambda u, c: reverse('user_cohorts', args=[u.id, u.username]), weight=0), ui.Link( visibility=ui.Visibility.SUPERUSER, text=_('Administration'), url=lambda u, c: reverse('admin_index'), weight=0) )
from forum.modules import ui from django.utils.translation import ugettext as _ ui.register( ui.FOOTER_LINKS, ui.Link(_('volunteer'), '/volunteer'), ) ui.register( ui.HEADER_LINKS, ui.Link(_('volunteer'), '/volunteer'), )
from forum.modules import ui from django.utils.translation import ugettext as _ ui.register(ui.FOOTER_LINKS, ui.Link(_('volunteer'), '/volunteer'), ) ui.register(ui.HEADER_LINKS, ui.Link(_('volunteer'), '/volunteer'), )
from django.core.urlresolvers import reverse from django.template.defaultfilters import slugify from forum.templatetags.extra_tags import get_score_badge from forum import settings ui.register( ui.HEADER_LINKS, ui.Link(_("faq"), ui.Url("faq"), weight=400), ui.Link(_("about"), ui.Url("about"), weight=300), ui.Link( text=lambda u, c: u.is_authenticated() and _("logout") or _("login"), url=lambda u, c: u.is_authenticated() and reverse("logout") or reverse("auth_signin"), weight=200, ), ui.Link( visibility=ui.Visibility.AUTHENTICATED, text=lambda u, c: u.username, url=lambda u, c: u.get_profile_url(), post_code=lambda u, c: get_score_badge(u), weight=100, ), ui.Link( visibility=ui.Visibility.SUPERUSER, text=_("administration"), url=lambda u, c: reverse("admin_index"), weight=0 ), ) class SupportLink(ui.Link): def can_render(self, context): return bool(settings.SUPPORT_URL)