Ejemplo n.º 1
0
    def get_context(self):
        # TODO: here we should use the context to resolve the meta object
        # instead of hitting the database again
        # print RequestContext(self.request)

        if (
            isinstance(self.request, str)
            or not self.request.user.has_perm("seoutils.add_meta")
            or not self.request.user.has_perm("seoutils.change_meta")
            or not self.request.user.has_perm("seoutils.delete_meta")
        ):
            return ""

        meta = get_meta_for_request(self.request)

        try:
            url_name = resolve(self.request.META["PATH_INFO"]).url_name
        except Resolver404:
            return ""

        if meta:
            url = reverse("admin:seoutils_meta_change", args=[meta.pk])
        else:
            url = reverse("admin:seoutils_meta_add") + "?inject=id_path_info&value=" + url_name

        return self.button(
            id="frontadmin-meta",
            url=url,
            classname="frontadmin-change-object",
            label="Meta",
            title="Edit Metas for this page",
        )
Ejemplo n.º 2
0
    def test_named_url(self):
        mt = Meta.objects.create(**self.mock_meta('test-home'))
        rs = get_meta_for_request(DummyRequest(path_info='/'))

        self.failUnless(isinstance(rs, Meta))
        self.failUnlessEqual(rs.title, 'Test title')
        self.failUnlessEqual(rs.desc, 'Test desc')
        self.failUnlessEqual(rs.keywords, 'Test keywords')
Ejemplo n.º 3
0
    def test_fallbacks_positive(self):
        m1 = Meta.objects.create(**self.mock_meta('test-home'))
        m2 = Meta.objects.create(**self.mock_meta('test-contact', title=None, desc=None, keywords=None))
        rs = get_meta_for_request(DummyRequest(path_info='/contact/'))

        self.failUnless(isinstance(rs, Meta))
        self.failUnlessEqual(rs.title, 'Test title')
        self.failUnlessEqual(rs.desc, 'Test desc')
        self.failUnlessEqual(rs.keywords, 'Test keywords')
 def render(self, context):
     rs  = False
     request = self.request.resolve(context)
     context[self.context_var] = get_meta_for_request(request)
     return ''
Ejemplo n.º 5
0
 def test_unconfigured(self):
     self.failUnlessEqual(None, get_meta_for_request(DummyRequest(path_info='/')))
def meta(request):
    meta = get_meta_for_request(request)
    if meta:
        return { 'meta': meta }
    else:
        return {}