Пример #1
0
    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)
Пример #2
0
    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)
Пример #3
0
    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/')
Пример #4
0
    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/')
Пример #5
0
    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)
Пример #6
0
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)
Пример #7
0
 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/")
Пример #8
0
 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/')
Пример #9
0
    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")
Пример #10
0
 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)
Пример #11
0
 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/')
Пример #12
0
 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/')
Пример #13
0
 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/')
Пример #14
0
 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/')
Пример #15
0
 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/")
Пример #16
0
 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/")
Пример #17
0
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"))
Пример #18
0
 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'))
Пример #19
0
def get_quote_page_url(context):
    quote_page = QuoteFormPage.objects.first()
    if quote_page:
        return slugurl(context, quote_page.slug)
    else:
        return '#'
Пример #20
0
 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'))
Пример #21
0
 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
Пример #22
0
 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/')
Пример #23
0
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)
Пример #24
0
 def get_success_url(self):
     return slugurl({"request": self.request}, "home")