def create_new_contract(contract_data): ''' Creates a new contract and any associated properties from contract_data and returns the contract ''' properties = contract_data.pop('properties', []) contract = ContractBase.create(**contract_data) for property in properties: _property = property.items()[0] ContractProperty.create(**{ 'contract_id': contract.id, 'key': _property[0], 'value': _property[1] }) return contract
def insert_a_contract(properties=None, **kwargs): contract_data = dict( contract_type='test', description='test2', ) if not kwargs else dict(kwargs) contract = ContractBase.create(**contract_data) if properties: [i.update({'contract_id': contract.id}) for i in properties] else: properties = [ dict(contract_id=contract.id, key='foo', value='bar'), dict(contract_id=contract.id, key='baz', value='qux') ] for property in properties: ContractProperty.create(**property) return contract