def assignaTutors( request ): #FormSet: Una opció seria fer servir formSet, però em sembla que #com ho estic fent ara és més fàcil per l'usuari #https://docs.djangoproject.com/en/dev/topics/forms/formsets from aula.apps.tutoria.models import Tutor from aula.apps.alumnes.forms import tutorsForm #prefixes: #https://docs.djangoproject.com/en/dev/ref/forms/api/#prefixes-for-forms formset = [] if request.method == "POST": #un formulari per cada grup #totBe = True parellesProfessorGrup=set() for grup in Grup.objects.all(): form=tutorsForm( request.POST, prefix=str( grup.pk ) ) formset.append( form ) if form.is_valid(): tutor1 = form.cleaned_data['tutor1'] tutor2 = form.cleaned_data['tutor2'] tutor3 = form.cleaned_data['tutor3'] if tutor1: parellesProfessorGrup.add( (tutor1.pk, grup) ) if tutor2: parellesProfessorGrup.add( (tutor2.pk, grup) ) if tutor3: parellesProfessorGrup.add( (tutor3.pk, grup) ) else: pass #totBe = False Tutor.objects.all().delete() for tutor_pk, grup in parellesProfessorGrup: professor = Professor.objects.get( pk = tutor_pk ) nouTutor = Tutor( professor = professor, grup = grup ) nouTutor.save() #return HttpResponseRedirect( '/' ) else: for grup in Grup.objects.all(): tutor1 = tutor2 = tutor3 = None if len( grup.tutor_set.all() ) > 0: tutor1 = grup.tutor_set.all()[0].professor if len( grup.tutor_set.all() ) > 1: tutor2 = grup.tutor_set.all()[1].professor if len( grup.tutor_set.all() ) > 2: tutor3 = grup.tutor_set.all()[2].professor form=tutorsForm( prefix=str( grup.pk ), initial={ 'grup': grup , 'tutor1': tutor1, 'tutor2': tutor2, 'tutor3': tutor3 } ) formset.append( form ) return render( request, "formsetgrid.html", { "formset": formset, "head": "Gestió de tutors", } )
def assignaTutors( request ): #FormSet: Una opció seria fer servir formSet, però em sembla que #com ho estic fent ara és més fàcil per l'usuari #https://docs.djangoproject.com/en/dev/topics/forms/formsets from aula.apps.tutoria.models import Tutor from aula.apps.alumnes.forms import tutorsForm #prefixes: #https://docs.djangoproject.com/en/dev/ref/forms/api/#prefixes-for-forms formset = [] if request.method == "POST": #un formulari per cada grup #totBe = True parellesProfessorGrup=set() for grup in Grup.objects.filter(alumne__isnull = False).distinct().order_by("descripcio_grup"): form=tutorsForm( request.POST, prefix=str( grup.pk ) ) formset.append( form ) if form.is_valid(): tutor1 = form.cleaned_data['tutor1'] tutor2 = form.cleaned_data['tutor2'] tutor3 = form.cleaned_data['tutor3'] if tutor1: parellesProfessorGrup.add( (tutor1.pk, grup) ) if tutor2: parellesProfessorGrup.add( (tutor2.pk, grup) ) if tutor3: parellesProfessorGrup.add( (tutor3.pk, grup) ) else: pass #totBe = False Tutor.objects.all().delete() for tutor_pk, grup in parellesProfessorGrup: professor = Professor.objects.get( pk = tutor_pk ) nouTutor = Tutor( professor = professor, grup = grup ) nouTutor.save() #return HttpResponseRedirect( '/' ) else: for grup in Grup.objects.filter(alumne__isnull = False).distinct().order_by("descripcio_grup"): tutor1 = tutor2 = tutor3 = None if len( grup.tutor_set.all() ) > 0: tutor1 = grup.tutor_set.all()[0].professor if len( grup.tutor_set.all() ) > 1: tutor2 = grup.tutor_set.all()[1].professor if len( grup.tutor_set.all() ) > 2: tutor3 = grup.tutor_set.all()[2].professor form=tutorsForm( prefix=str( grup.pk ), initial={ 'grup': grup , 'tutor1': tutor1, 'tutor2': tutor2, 'tutor3': tutor3 } ) formset.append( form ) return render( request, "formsetgrid.html", { "formset": formset, "head": "Gestió de tutors", } )