web/views/urlpublishing.py
changeset 2293 7ded2a1416e4
parent 2058 7ef12c03447c
parent 2273 daf6e178659f
child 2650 18aec79ec3a3
equal deleted inserted replaced
2235:d5987f75c97c 2293:7ded2a1416e4
   142     """handle path with the form::
   142     """handle path with the form::
   143 
   143 
   144         <etype>[[/<attribute name>]/<attribute value>]*
   144         <etype>[[/<attribute name>]/<attribute value>]*
   145     """
   145     """
   146     priority = 2
   146     priority = 2
   147     def __init__(self, urlpublisher):
       
   148         super(RestPathEvaluator, self).__init__(urlpublisher)
       
   149         self.etype_map = {}
       
   150         for etype in self.schema.entities():
       
   151             etype = str(etype)
       
   152             self.etype_map[etype.lower()] = etype
       
   153 
   147 
   154     def evaluate_path(self, req, parts):
   148     def evaluate_path(self, req, parts):
   155         if not (0 < len(parts) < 4):
   149         if not (0 < len(parts) < 4):
   156             raise PathDontMatch()
   150             raise PathDontMatch()
   157         try:
   151         try:
   158             etype = self.etype_map[parts.pop(0).lower()]
   152             etype = self.vreg.case_insensitive_etypes[parts.pop(0).lower()]
   159         except KeyError:
   153         except KeyError:
   160             raise PathDontMatch()
   154             raise PathDontMatch()
   161         cls = self.vreg.etype_class(etype)
   155         cls = self.vreg.etype_class(etype)
   162         if parts:
   156         if parts:
   163             if len(parts) == 2:
   157             if len(parts) == 2: