Пример #1
0
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",
                   }
                )
Пример #2
0
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",
                   }
                )