def ajout_competence(request): POST=request.POST if not ('id_parent' in POST and 'tree_parent' in POST and 'graphe_parent' in POST and 'newName' in POST): return {'success':False,'msg':u'Clés manquantes.'} id=POST['id_parent'] tree=POST['tree_parent'] graphe=POST['graphe_parent'] newName=POST['newName'] if id=='src' and request.user.has_perm('application.is_admin'): # on rajoute une racine comp_ajout=Competence.add_root(nom=newName,user_id=request.user.id) return {'success':True,'id':comp_ajout.id,'liste':[]} try: comp=Competence.objects.get(id=id) except: return {'success':False,'msg':u'Compétence %s (%s) inexistante' % (newName,id)} if (comp.user==None) or (comp.user==request.user) or request.user.has_perm('application.is_admin'): #user=comp.user user=request.user comp_ajout=comp.add_child(nom=newName,user=user) #mise à jour des graphes cibles=Graphe_competences.objects.filter(competence__id=id) liste=[] for comp in cibles: c=comp.add_child(competence_id=comp_ajout.id,tree_id=tree,user=user) liste.append(comp.id) return {'success':True,'id':comp_ajout.id,'liste':liste} return {'success':False,'msg':u'Vous n\'avez pas les permissions sur cette compétence.'}
def save_model2(self,request,obj,form): ''' sauvegarde du modèle en construisant l'arbre ''' try: parent=Competence.objects.get(id=form.data['parent']) except (Competence.DoesNotExist, ValueError): competence=Competence.add_root(nom=obj.nom,abbrev=obj.abbrev,description=obj.description) else: competence=parent.add_child(nom=obj.nom,abbrev=obj.abbrev,description=obj.description) return competence