211 return False |
211 return False |
212 rentity = related_rset.get_entity(0, 0) |
212 rentity = related_rset.get_entity(0, 0) |
213 entity = self.entity |
213 entity = self.entity |
214 if role == 'subject': |
214 if role == 'subject': |
215 kwargs = {'fromeid': entity.eid, 'toeid': rentity.eid} |
215 kwargs = {'fromeid': entity.eid, 'toeid': rentity.eid} |
|
216 cardinality = rschema.rdefs[(entity.cw_etype, rentity.cw_etype)].cardinality[0] |
216 else: |
217 else: |
217 kwargs = {'fromeid': rentity.eid, 'toeid': entity.eid} |
218 kwargs = {'fromeid': rentity.eid, 'toeid': entity.eid} |
|
219 cardinality = rschema.rdefs[(rentity.cw_etype, entity.cw_etype)].cardinality[1] |
|
220 if cardinality in '1+': |
|
221 return False |
218 # NOTE: should be sufficient given a well built schema/security |
222 # NOTE: should be sufficient given a well built schema/security |
219 return rschema.has_perm(self._cw, 'delete', **kwargs) |
223 return rschema.has_perm(self._cw, 'delete', **kwargs) |
220 |
224 |
221 def _build_zone(self, zonedef, msg, logo): |
225 def _build_zone(self, zonedef, msg, logo): |
222 return zonedef % {'msg': xml_escape(self._cw._(msg)), |
226 return zonedef % {'msg': xml_escape(self._cw._(msg)), |