selectors.py
branchstable
changeset 3689 deb13e88e037
parent 3650 012da21e43fe
child 3720 5376aaadd16b
child 3757 122a01751d59
equal deleted inserted replaced
3688:421fb447ecb2 3689:deb13e88e037
   680 
   680 
   681     def score_class(self, eclass, req):
   681     def score_class(self, eclass, req):
   682         eschema = eclass.e_schema
   682         eschema = eclass.e_schema
   683         try:
   683         try:
   684             if self.role == 'object':
   684             if self.role == 'object':
   685                 rschema = eschema.object_relation(self.rtype)
   685                 rschema = eschema.objrels[self.rtype]
   686             else:
   686             else:
   687                 rschema = eschema.subject_relation(self.rtype)
   687                 rschema = eschema.subjrels[self.rtype]
   688         except KeyError:
   688         except KeyError:
   689             return 0
   689             return 0
   690         if self.target_etype is not None:
   690         if self.target_etype is not None:
   691             try:
   691             try:
   692                 if self.role == 'subject':
   692                 if self.role == 'subject':
   897 
   897 
   898     See `EClassSelector` documentation for behaviour when row is not specified.
   898     See `EClassSelector` documentation for behaviour when row is not specified.
   899     """
   899     """
   900     def score(self, cls, req, etype):
   900     def score(self, cls, req, etype):
   901         eschema = cls.schema.eschema(etype)
   901         eschema = cls.schema.eschema(etype)
   902         if not (eschema.is_final() or eschema.is_subobject(strict=True)) \
   902         if not (eschema.final or eschema.is_subobject(strict=True)) \
   903                and eschema.has_perm(req, 'add'):
   903                and eschema.has_perm(req, 'add'):
   904             return 1
   904             return 1
   905         return 0
   905         return 0
   906 
   906 
   907 
   907