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)
def add_synonyms(self, kSynonyms, sSpace = 'global'): try: oSpace = Space.objects.get(name=sSpace) except Space.DoesNotExist: oSpace = Space(name='global') oSpace.save() for sWord, kSyns in kSynonyms.iteritems(): try: oWord = Word.objects.get(name=sWord, space=oSpace) except Word.DoesNotExist: oWord = Word(name=sWord, space=oSpace) oWord.save() for sSyn, kProps in kSyns.iteritems(): try: oSyn = Word.objects.get(name=sSyn, space=oSpace) except Word.DoesNotExist: oSyn = Word(name=sSyn, space=oSpace) oSyn.save() try: oRelation = Relation.objects.get(rel_one=oWord, rel_two=oSyn) oRelation.karma += kProps['weight'] oRelation.save() except Relation.DoesNotExist: try: oRelation = Relation.objects.get(rel_two=oWord, rel_one=oSyn) oRelation.karma += kProps['weight'] oRelation.save() except Relation.DoesNotExist: oRelation = Relation(rel_one=oWord, rel_two=oSyn, karma=kProps['weight'], space=oSpace) oRelation.save()
def main(request): url = request.POST.get('url', '') type = request.POST.get('submit', '').lower() new_url = '' error = '' if type: if url.startswith('http://'): if type == 'shorten': # Get the current count from the database # This count keeps track of how many urls we have made # Increment this number and call make_url # Save it to the database and we are good to go try: count_ref = Option.objects.get(title="count") except: # No existing count so we must create it count_ref = Option(title="count", value=0) count_ref.save() count_ref.value += 1 count_ref.save() internal_url = make_url(count_ref.value) new_url = 'http://%s/%s' % (request.get_host(), internal_url) r = Relation(internal_url=internal_url, external_url = url) r.save() else: error = "Invalid url. Urls must start with \"http://\"" t = loader.get_template('index.html') c = Context({ 'new_url': new_url, 'error': error, }) return http.HttpResponse(t.render(c))