예제 #1
0
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)
예제 #2
0
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)
예제 #3
0
	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()
예제 #4
0
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))