diff -r 1817f8946c22 -r faf279e33298 cubicweb/pyramid/predicates.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cubicweb/pyramid/predicates.py Mon Sep 26 14:52:12 2016 +0200 @@ -0,0 +1,22 @@ +"""Contains predicates used in Pyramid views. +""" + + +class MatchIsETypePredicate(object): + """A predicate that match if a given etype exist in schema. + """ + def __init__(self, matchname, config): + self.matchname = matchname + + def text(self): + return 'match_is_etype = %s' % self.matchname + + phash = text + + def __call__(self, info, request): + return info['match'][self.matchname].lower() in \ + request.registry['cubicweb.registry'].case_insensitive_etypes + + +def includeme(config): + config.add_route_predicate('match_is_etype', MatchIsETypePredicate)