web/views/actions.py
branchstable
changeset 3689 deb13e88e037
parent 3495 438576c5b1d1
child 3720 5376aaadd16b
child 3877 7ca53fc72a0a
child 4212 ab6573088b4a
equal deleted inserted replaced
3688:421fb447ecb2 3689:deb13e88e037
    34         for dummy in AutomaticEntityForm.esrelations_by_category(
    34         for dummy in AutomaticEntityForm.esrelations_by_category(
    35             entity, 'generic', 'add', strict=True):
    35             entity, 'generic', 'add', strict=True):
    36             return 1
    36             return 1
    37         for rschema, targetschemas, role in AutomaticEntityForm.erelations_by_category(
    37         for rschema, targetschemas, role in AutomaticEntityForm.erelations_by_category(
    38             entity, ('primary', 'secondary'), 'add', strict=True):
    38             entity, ('primary', 'secondary'), 'add', strict=True):
    39             if not rschema.is_final():
    39             if not rschema.final:
    40                 return 1
    40                 return 1
    41         return 0
    41         return 0
    42 
    42 
    43 @objectify_selector
    43 @objectify_selector
    44 def match_searched_etype(cls, req, rset=None, **kwargs):
    44 def match_searched_etype(cls, req, rset=None, **kwargs):
    60             return 0
    60             return 0
    61         select = rqlst.children[0]
    61         select = rqlst.children[0]
    62         if len(select.defined_vars) == 1 and len(select.solutions) == 1:
    62         if len(select.defined_vars) == 1 and len(select.solutions) == 1:
    63             rset._searched_etype = select.solutions[0].itervalues().next()
    63             rset._searched_etype = select.solutions[0].itervalues().next()
    64             eschema = cls.schema.eschema(rset._searched_etype)
    64             eschema = cls.schema.eschema(rset._searched_etype)
    65             if not (eschema.is_final() or eschema.is_subobject(strict=True)) \
    65             if not (eschema.final or eschema.is_subobject(strict=True)) \
    66                    and eschema.has_perm(req, 'add'):
    66                    and eschema.has_perm(req, 'add'):
    67                 return 1
    67                 return 1
    68     return 0
    68     return 0
    69 
    69 
    70 # generic 'main' actions #######################################################
    70 # generic 'main' actions #######################################################
   264         req = self.req
   264         req = self.req
   265         eschema = entity.e_schema
   265         eschema = entity.e_schema
   266         for role, rschemas in (('subject', eschema.subject_relations()),
   266         for role, rschemas in (('subject', eschema.subject_relations()),
   267                                ('object', eschema.object_relations())):
   267                                ('object', eschema.object_relations())):
   268             for rschema in rschemas:
   268             for rschema in rschemas:
   269                 if rschema.is_final():
   269                 if rschema.final:
   270                     continue
   270                     continue
   271                 # check the relation can be added as well
   271                 # check the relation can be added as well
   272                 # XXX consider autoform_permissions_overrides?
   272                 # XXX consider autoform_permissions_overrides?
   273                 if role == 'subject'and not rschema.has_perm(req, 'add',
   273                 if role == 'subject'and not rschema.has_perm(req, 'add',
   274                                                              fromeid=entity.eid):
   274                                                              fromeid=entity.eid):