web/uicfg.py
branchstable
changeset 6902 20f63f716f0e
parent 6901 118e78f6e4e4
child 7825 7e8c6a7e013e
equal deleted inserted replaced
6901:118e78f6e4e4 6902:20f63f716f0e
   400         for tagkey in tag.iterkeys():
   400         for tagkey in tag.iterkeys():
   401             assert tagkey in self._keys, 'tag %r not in accepted tags: %r' % (tag, self._keys)
   401             assert tagkey in self._keys, 'tag %r not in accepted tags: %r' % (tag, self._keys)
   402         return super(ReleditTags, self).tag_relation(key, tag)
   402         return super(ReleditTags, self).tag_relation(key, tag)
   403 
   403 
   404 def init_reledit_ctrl(rtag, sschema, rschema, oschema, role):
   404 def init_reledit_ctrl(rtag, sschema, rschema, oschema, role):
   405     if rschema.final:
       
   406         return
       
   407     composite = rschema.rdef(sschema, oschema).composite == role
       
   408     if role == 'subject':
       
   409         oschema = '*'
       
   410     else:
       
   411         sschema = '*'
       
   412     values = rtag.get(sschema, rschema, oschema, role)
   405     values = rtag.get(sschema, rschema, oschema, role)
   413     edittarget = values.get('edit_target')
   406     if not rschema.final:
   414     if edittarget not in (None, 'rtype', 'related'):
   407         composite = rschema.rdef(sschema, oschema).composite == role
   415         rtag.warning('reledit: wrong value for edit_target on relation %s: %s',
   408         if role == 'subject':
   416                      rschema, edittarget)
   409             oschema = '*'
   417         edittarget = None
   410         else:
   418     if not edittarget:
   411             sschema = '*'
   419         edittarget = 'related' if composite else 'rtype'
   412         edittarget = values.get('edit_target')
   420         rtag.tag_relation((sschema, rschema, oschema, role),
   413         if edittarget not in (None, 'rtype', 'related'):
   421                           {'edit_target': edittarget})
   414             rtag.warning('reledit: wrong value for edit_target on relation %s: %s',
       
   415                          rschema, edittarget)
       
   416             edittarget = None
       
   417         if not edittarget:
       
   418             edittarget = 'related' if composite else 'rtype'
       
   419             rtag.tag_relation((sschema, rschema, oschema, role),
       
   420                               {'edit_target': edittarget})
   422     if not 'novalue_include_rtype' in values:
   421     if not 'novalue_include_rtype' in values:
   423         showlabel = primaryview_display_ctrl.get(
   422         showlabel = primaryview_display_ctrl.get(
   424             sschema, rschema, oschema, role).get('showlabel', True)
   423             sschema, rschema, oschema, role).get('showlabel', True)
   425         rtag.tag_relation((sschema, rschema, oschema, role),
   424         rtag.tag_relation((sschema, rschema, oschema, role),
   426                           {'novalue_include_rtype': not showlabel})
   425                           {'novalue_include_rtype': not showlabel})