hooks/workflow.py
changeset 9469 032825bbacab
parent 8695 358d8bed9626
child 9615 6ba726dbf4fd
equal deleted inserted replaced
9468:39b7a91a3f4c 9469:032825bbacab
    30 
    30 
    31 def _change_state(session, x, oldstate, newstate):
    31 def _change_state(session, x, oldstate, newstate):
    32     nocheck = session.transaction_data.setdefault('skip-security', set())
    32     nocheck = session.transaction_data.setdefault('skip-security', set())
    33     nocheck.add((x, 'in_state', oldstate))
    33     nocheck.add((x, 'in_state', oldstate))
    34     nocheck.add((x, 'in_state', newstate))
    34     nocheck.add((x, 'in_state', newstate))
    35     # delete previous state first unless in_state isn't stored in the system
    35     # delete previous state first
    36     # source
    36     session.delete_relation(x, 'in_state', oldstate)
    37     fromsource = session.describe(x)[1]
       
    38     if fromsource == 'system' or \
       
    39            not session.repo.sources_by_uri[fromsource].support_relation('in_state'):
       
    40         session.delete_relation(x, 'in_state', oldstate)
       
    41     session.add_relation(x, 'in_state', newstate)
    37     session.add_relation(x, 'in_state', newstate)
    42 
    38 
    43 
    39 
    44 # operations ###################################################################
    40 # operations ###################################################################
    45 
    41