def edit_foaf(request): if request.user.is_anonymous(): return render_to_response('error.html',{'message':'Vous devez être connectés pour éditer votre profil'}) #~ check if user already has a foaf file foaf_file=None if os.path.isfile(settings.FOAF_DATA+request.user.username+'.rdf'): foaf_file=settings.FOAF_URI+request.user.username+'.rdf' person=parse_foaf(foaf_file)['main_person'] form_data=pack_person_data(person) form=FoafForm(form_data) else: form=FoafForm(request.POST) return render_to_response('foaf/edit.html',{'foaf_file':foaf_file,'form':form},context_instance=RequestContext(request))
def render_foaf(request): if request.GET.has_key('url'): foaf_data=parse_foaf(request.GET['url']) else: return render_to_response('error.html',{'message':"Indiquer l'url du fichier foaf"}) #~ parsing error check if foaf_data.has_key('error'): return render_to_response('error.html',{'message':foaf_data['error']}) #~ package main data for template main_person_data=pack_person_data(foaf_data['main_person']) relations_data={} for relation in foaf_data['relations'].keys(): person_relations=[] for person in foaf_data['relations'][relation]: person_relations.append(pack_person_data(person)) relations_data[relation]=person_relations #~ debug #msg='' #for el in relations_data['knows']: # msg=msg+str(el)+' / ' #return render_to_response('error.html',{'message':msg}) #~ render template return render_to_response('foaf/render_foaf.html',{'person':main_person_data,'relations':relations_data})
def edit_foaf_step2(request): if request.user.is_anonymous(): return render_to_response('error.html',{'message':'Vous devez être connectés pour éditer votre profil'}) identity_data=[] for key in request.POST.keys(): identity_data.append(str(key)+'#>>#'+str(request.POST[key])) identity_data='#$||$#'.join(identity_data) foaf_file=None internal_relations_data={} external_relations_data={} #~ get existing data if os.path.isfile(settings.FOAF_DATA+request.user.username+'.rdf'): foaf_file=settings.FOAF_URI+request.user.username+'.rdf' foaf_data=parse_foaf(settings.FOAF_DATA+request.user.username+'.rdf') #out=[] #out.append(str(foaf_data)) relations=foaf_data['relations'] #~ pack relations data for relation in relations.keys(): internal_relations=[] external_relations=[] for person in relations[relation]: if settings.FOAF_URI in person.foaf_file: internal_relations.append(person.foaf_file) else: external_relations.append(person.foaf_file) #out.append(relation+' > '+person.foaf_file) #out.append(str(internal_relations)) i=0 external_relations_packed=[] while i<5: try: external_relations_packed.append(external_relations[i]) except: external_relations_packed.append('') i=i+1 internal_relations_data[relation]=internal_relations external_relations_data[relation]=external_relations_packed #out.append(str(internal_relations)) #out.append(relation+' > '+str(internal_relations_data[relation])) ikeys=['friendOf','worksWith','hasMet','wouldLikeToKnow','knowsByReputation'] for akey in ikeys: if not external_relations_data.has_key(akey): external_relations_data[akey]=['','','','',''] #out.append('internal> '+str(internal_relations_data)) #out.append('external> '+str(external_relations_data)) users=User.objects.all() #~ pack user data users_data=[] for user in users: user_data={} user_data['name']=user.username user_data['foaf_file']=has_foaf(user) users_data.append(user_data) #~ debug #if foaf_data.has_key('error'): # out=foaf_data['error'] # return render_to_response('debug.html',{'message':out}) #out=[] #for el in relations.keys(): # for person in relations[el]: # out.append(str(person.foaf_file)) #return render_to_response('debug.html',{'message':'\n'.join(out)}) return render_to_response('foaf/edit_step2.html',{'identity_data':identity_data,'internal_relations':internal_relations_data,'external_relations':external_relations_data,'users':users_data},context_instance=RequestContext(request))