def update_relations(request): if request.body: data = simplejson.loads(request.body) if len(data) > 0: Relation.objects.filter( term1=Term.objects.get_term_from_dict(data[0], 'term1') ).exclude( id__in=[r['id'] for r in data if 'id' in r], ).delete() for r_data in data: if 'id' in r_data: relation = Relation.objects.get(id=r_data['id'], state='v') else: relation = Relation() relation.text1 = r_data['text1'] relation.text2 = r_data['text2'] relation.type = RelationType.objects.from_identifier( identifier=r_data['name'], source=get_source(request),) relation.term1 = Term.objects.get_term_from_dict(r_data, 'term1') relation.term2 = Term.objects.get_term_from_dict(r_data, 'term2') add_fma_id(relation.term1, r_data.get('text1')) add_fma_id(relation.term2, r_data.get('text2')) relation.save() response = { 'type': 'success', 'msg': u'Změny byly uloženy', } return render_json(request, response)
def relation_tree_update(request): data = simplejson.loads(request.body) def _get_term(data): if 'id' in data: term = Term.objects.get(pk=data['id']) else: term = Term() term.name_en = data.get('name_en', '') term.name_la = data.get('name_la', '') term.name_cs = data.get('name_cs', '') term.system = data.get('system', '') term.bodypart = data.get('body_part', '') term.fma_id = data.get('fma_id', -1) term.save() return term result = [] for rel in data: if 'id' in rel: relation = Relation.objects.get(pk=rel['id']) else: relation = Relation() relation.type = get_object_or_404(RelationType, identifier=rel['name']) relation.term1 = _get_term(rel['term1']) relation.term2 = _get_term(rel['term2']) relation.labels = '|'.join(set(rel.get('labels', []))) relation.state = rel.get('state', 'unknown')[0] relation.save() result.append(relation.to_serializable()) return render_json(request, result)