def test_bad_slugurl(self): # no 'request' object in context result = slugurl(template.Context({}), 'bad-slug-doesnt-exist') self.assertEqual(result, None) # 'request' object in context, but no 'site' attribute result = slugurl(context=template.Context({'request': HttpRequest()}), slug='bad-slug-doesnt-exist') self.assertEqual(result, None)
def test_bad_slugurl(self): # no 'request' object in context result = slugurl(template.Context({}), 'bad-slug-doesnt-exist') self.assertEqual(result, None) # 'request' object in context, but no 'site' attribute result = slugurl(context=template.Context({'request': HttpRequest()}), slug='bad-slug-doesnt-exist') self.assertEqual(result, None)
def test_slugurl_without_request_in_context(self): # no 'request' object in context result = slugurl(template.Context({}), 'events') self.assertEqual(result, '/events/') # 'request' object in context, but no 'site' attribute result = slugurl(template.Context({'request': HttpRequest()}), 'events') self.assertEqual(result, '/events/')
def test_slugurl_without_request_in_context(self): # no 'request' object in context result = slugurl(template.Context({}), 'events') self.assertEqual(result, '/events/') # 'request' object in context, but no 'site' attribute result = slugurl(template.Context({'request': HttpRequest()}), 'events') self.assertEqual(result, '/events/')
def test_bad_slugurl(self): # no 'request' object in context result = slugurl(template.Context({}), "bad-slug-doesnt-exist") self.assertIsNone(result) # 'request' object in context, but no 'site' attribute result = slugurl( context=template.Context({"request": HttpRequest()}), slug="bad-slug-doesnt-exist", ) self.assertIsNone(result)
def legend(context, legend=None, size=None, show_avatar=True, show_link=True, url=None): legend = legend or context.get('legend', context.get('user')) name = legend if legend.is_authenticated else 'Anonymous' url = url or legend.get_absolute_url( ) if legend.is_authenticated else slugurl(context, 'welcome') legend_context = { 'name': name, 'url': url, } if show_avatar: if legend.is_authenticated and legend.avatar: image = legend.get_avatar(size=size).url else: image = static('legends/images/anonymous.png') legend_context['avatar'] = avatar(image=image, name=name, url=url, classes=size) if show_link: legend_context['link'] = link(content=name, url=url) legend_template = 'legends/widgets/legend.html' return render_to_string(legend_template, context=legend_context)
def test_slugurl_with_null_site_in_request(self): # 'request' object in context, but site is None request = HttpRequest() request.META["HTTP_HOST"] = "unknown.example.com" request.META["SERVER_PORT"] = 80 result = slugurl(template.Context({"request": request}), "events") self.assertEqual(result, "/events/")
def test_slugurl_with_null_site_in_request(self): # 'request' object in context, but site is None request = HttpRequest() request.META['HTTP_HOST'] = 'unknown.example.com' request.META['SERVER_PORT'] = 80 result = slugurl(template.Context({'request': request}), 'events') self.assertEqual(result, '/events/')
def post(self, request, *args, **kwargs): user_response = request.POST.get("user_response", None) user = self.request.user pk = kwargs.get("pk", None) try: if kwargs.get("inv_id_b64", None): invitation_id = force_text( urlsafe_base64_decode(kwargs["inv_id_b64"])) invitation = CoAuthorshipInvitation.objects.get( pk=invitation_id) else: invitation = get_object_or_404(CoAuthorshipInvitation, to=user, content=pk, accepted__isnull=True) except ( TypeError, ValueError, OverflowError, CoAuthorshipInvitation.DoesNotExist, ): invitation = None if invitation.to != request.user: messages.error( request, _("Sie sind nicht berechtigt die Anfrage zu akzeptieren")) return redirect(slugurl({"request": request}, "home")) if invitation is not None and (co_author_invitation_token.check_token( invitation, kwargs.get("token", None)) or invitation.to == user): if user_response == "Yes": invitation.accept() content = get_object_or_404(Content, pk=pk) return redirect(content.get_real_instance().get_edit_url()) elif user_response == "No": invitation.decline() return redirect(slugurl({"request": request}, "home")) else: messages.error(request, _("Bestätigen Sie mit Ja oder Nein")) return render(request, "dll/communication/invitation.html") elif invitation is None: raise Http404 else: messages.warning(request, _("Die Einladung ist verfallen")) return redirect("user-content-overview")
def serve(self, request, *args, **kwargs): user = request.user # Redirect anonymous users to the about page. if not user.is_authenticated: return redirect(slugurl(context={'request': request}, slug='about')) # Redirect if prologue is not completed. # if not user.has_checkpoint('prologue'): # return redirect("story:prologue") # Redirecto to first subpage return redirect(self.get_first_child().url)
def test_slugurl_tag_returns_url_for_other_site(self): home_page = Page.objects.get(url_path='/home/') new_home_page = home_page.copy(update_attrs={'title': "New home page", 'slug': 'new-home'}) second_site = Site.objects.create(hostname='site2.example.com', root_page=new_home_page) request = HttpRequest() request.site = second_site # There is no page with this slug on the current site, so this # should return an absolute URL for the page on the first site. url = slugurl(slug='christmas', context=template.Context({'request': request})) self.assertEqual(url, 'http://localhost/events/christmas/')
def test_slugurl_tag_returns_url_for_other_site(self): home_page = Page.objects.get(url_path='/home/') new_home_page = home_page.copy(update_attrs={'title': "New home page", 'slug': 'new-home'}) second_site = Site.objects.create(hostname='site2.example.com', root_page=new_home_page) request = HttpRequest() request.META['HTTP_HOST'] = second_site.hostname request.META['SERVER_PORT'] = second_site.port # There is no page with this slug on the current site, so this # should return an absolute URL for the page on the first site. url = slugurl(slug='christmas', context=template.Context({'request': request})) self.assertEqual(url, 'http://localhost/events/christmas/')
def test_slugurl_tag_returns_url_for_current_site(self): home_page = Page.objects.get(url_path='/home/') new_home_page = home_page.copy(update_attrs={'title': "New home page", 'slug': 'new-home'}) second_site = Site.objects.create(hostname='site2.example.com', root_page=new_home_page) # Add a page to the new site that has a slug that is the same as one on # the first site, but is in a different position in the treeself. new_christmas_page = Page(title='Christmas', slug='christmas') new_home_page.add_child(instance=new_christmas_page) request = HttpRequest() request.site = second_site url = slugurl(context=template.Context({'request': request}), slug='christmas') self.assertEqual(url, '/christmas/')
def test_slugurl_tag_returns_url_for_current_site(self): home_page = Page.objects.get(url_path='/home/') new_home_page = home_page.copy(update_attrs={'title': "New home page", 'slug': 'new-home'}) second_site = Site.objects.create(hostname='site2.example.com', root_page=new_home_page) # Add a page to the new site that has a slug that is the same as one on # the first site, but is in a different position in the treeself. new_christmas_page = Page(title='Christmas', slug='christmas') new_home_page.add_child(instance=new_christmas_page) request = HttpRequest() request.META['HTTP_HOST'] = second_site.hostname request.META['SERVER_PORT'] = second_site.port url = slugurl(context=template.Context({'request': request}), slug='christmas') self.assertEqual(url, '/christmas/')
def test_slugurl_tag_returns_url_for_other_site(self): home_page = Page.objects.get(url_path="/home/") new_home_page = home_page.copy(update_attrs={ "title": "New home page", "slug": "new-home" }) second_site = Site.objects.create(hostname="site2.example.com", root_page=new_home_page) request = HttpRequest() request.META["HTTP_HOST"] = second_site.hostname request.META["SERVER_PORT"] = second_site.port # There is no page with this slug on the current site, so this # should return an absolute URL for the page on the first site. url = slugurl(slug="christmas", context=template.Context({"request": request})) self.assertEqual(url, "http://localhost/events/christmas/")
def test_slugurl_tag_returns_url_for_current_site(self): home_page = Page.objects.get(url_path="/home/") new_home_page = home_page.copy(update_attrs={ "title": "New home page", "slug": "new-home" }) second_site = Site.objects.create(hostname="site2.example.com", root_page=new_home_page) # Add a page to the new site that has a slug that is the same as one on # the first site, but is in a different position in the treeself. new_christmas_page = Page(title="Christmas", slug="christmas") new_home_page.add_child(instance=new_christmas_page) request = HttpRequest() request.META["HTTP_HOST"] = second_site.hostname request.META["SERVER_PORT"] = second_site.port url = slugurl(context=template.Context({"request": request}), slug="christmas") self.assertEqual(url, "/christmas/")
def newsletter_registration_confirm(request, nl_id_b64, token): success = False try: uid = force_text(urlsafe_base64_decode(nl_id_b64)) subscription = NewsletterSubscrption.objects.get(pk=uid) except (TypeError, ValueError, OverflowError, NewsletterSubscrption.DoesNotExist): subscription = None if subscription is not None and newsletter_confirm_token.check_token( subscription, token): subscription.activate() messages.success(request, _("Newsletter Anmeldung erfolgreich")) success = True else: messages.error( request, _("Newsletter Anmeldung nicht erfolgreich. Versuchen Sie es erneut." ), ) return redirect((slugurl({"request": request}, "home") + "?newsletter=") + ("true" if success else "false"))
def post(self, request, *args, **kwargs): if 'view-quest' in request.POST: user = request.user user.add_checkpoint(name='prologue') return redirect(slugurl({'request': request}, slug='quest'))
def get_quote_page_url(context): quote_page = QuoteFormPage.objects.first() if quote_page: return slugurl(context, quote_page.slug) else: return '#'
def post(self, request, *args, **kwargs): if 'view-quest' in request.POST: user = request.user user.add_checkpoint(name='prologue') return redirect(slugurl({'request': request}, slug='quest'))
def get_form_kwargs(self): kwargs = super(SignUpView, self).get_form_kwargs() kwargs["privacy_url"] = slugurl({"request": self.request}, "datenschutz") kwargs["terms"] = slugurl({"request": self.request}, "terms") return kwargs
def test_slugurl_with_null_site_in_request(self): # 'request' object in context, but site is None request = HttpRequest() request.site = None result = slugurl(template.Context({'request': request}), 'events') self.assertEqual(result, '/events/')
def menu(context, user=None, name='main'): user = user or context.get('user') if name == 'main': template = 'widgets/menu.html' elif name == 'account': template = 'widgets/submenu.html' menu_context = {} menu_context['nodes'] = [ { 'name': 'Apps', 'nodes': [ { 'name': 'Home', # 'locked': True, 'url': slugurl(context, slug='home'), }, { 'name': 'Arcade', # 'locked': True, 'url': slugurl(context, slug='arcade'), }, { 'name': 'Office', 'url': slugurl(context, slug='office'), }, { 'name': 'Community', 'url': slugurl(context, slug='community'), }, { 'name': 'Studio', 'url': slugurl(context, slug='studio'), }, { 'name': 'Academy', 'url': slugurl(context, slug='academy'), }, { 'name': 'Journey', 'url': slugurl(context, slug='journey'), }, ], }, { 'name': 'Project', 'nodes': [ { 'name': 'About', 'url': slugurl(context, 'about'), }, { 'name': 'News', 'url': slugurl(context, slug='news'), }, { 'name': 'Events', 'url': slugurl(context, slug='events'), }, { 'name': 'Support', 'url': slugurl(context, slug='support'), }, { 'name': 'Blog', 'url': slugurl(context, slug='blog'), }, { 'name': 'Roles', 'url': reverse('roles:index'), }, { 'name': 'Styleguide', 'locked': not user.is_staff, 'url': reverse('styleguide:index'), }, ], }, ] if user.is_superuser: menu_context['nodes'] += [ { 'name': 'Lab', 'nodes': [ { 'name': 'Legend', 'url': reverse('legends:detail', args=[user.username]) if user.is_authenticated else '#profile', }, { 'name': 'Duo', # 'locked': not user.has_checkpoint('community'), # 'url': get_community_url(group='duo'), 'url': slugurl(context, slug='duo'), }, { 'name': 'Clan', # 'locked': True, # 'url': get_community_url(group='clan'), 'url': slugurl(context, slug='clan'), }, { 'name': 'Tribe', # 'locked': True, # 'url': get_community_url(group='tribe'), 'url': slugurl(context, slug='tribe'), }, { 'name': 'Legends', # 'locked': True, 'url': get_community_url(group='community'), }, { 'name': 'Guide', 'locked': not user.has_checkpoint('cloud guide card') if user.is_authenticated else True, # 'url': reverse('guides:index'), }, { 'name': 'Chat', 'locked': not user.has_checkpoint('chat card') if user.is_authenticated else True, # 'url': reverse('chat:index'), 'external': user.has_checkpoint('chat') if user.is_authenticated else True, }, { 'name': 'Virtual Room', 'locked': not user.has_checkpoint('virtual room') if user.is_authenticated else True, # 'url': reverse('chat:room'), 'external': True, }, { 'name': 'Guidelines', 'locked': not user.has_checkpoint('guidelines card') if user.is_authenticated else True, 'url': reverse('guidelines:index'), }, { 'name': 'Manager', 'locked': not user.has_checkpoint('manager') if user.is_authenticated else True, 'url': reverse('manager:index'), }, { 'name': 'Journal', 'locked': not user.has_checkpoint('storytime') if user.is_authenticated else True, 'url': slugurl(context, slug='journal'), }, { 'name': 'Story', # 'url': reverse('story:index'), }, { 'name': 'Vision', 'url': reverse('visions:index'), }, { 'name': 'Tutorial', # 'url': reverse('games:index'), }, ], }, ] if user.is_authenticated: if name == 'main': pass elif name == 'account': menu_context['nodes'] = [ { 'name': 'Profile', 'url': reverse('legends:detail', args=[user.username]), }, { 'name': 'Settings', 'url': reverse('legends:settings'), }, { 'name': 'Logout', 'url': reverse('account_logout'), }, ] else: menu_context['nodes'] = [ { 'name': 'welcome', 'url': slugurl(context, 'welcome'), }, ] return render_to_string(template, context=menu_context)
def get_success_url(self): return slugurl({"request": self.request}, "home")