示例#1
0
def treuAlumnesLlista(request, pk):
    credentials = getImpersonateUser(request) 
    (user, l4) = credentials   
    
    head=u'Treure alumnes de la llista' 

    pk = int(pk)
    impartir = Impartir.objects.get ( pk = pk )
    
    #seg-------------------------------
    pertany_al_professor = user.pk in [ impartir.horari.professor.pk,   \
                                       impartir.professor_guardia.pk if impartir.professor_guardia else -1]
    if not ( l4 or pertany_al_professor):
        raise Http404() 
    

    formset = []
    alumnes = []
    if request.method == "POST":
        
        expandir = False
        
        #
        #primer form: expandir
        #
        formExpandir=afegeixAlumnesLlistaExpandirForm( request.POST, prefix='tots')  
        formExpandir.fields["matmulla"].help_text = u'''Marca aquesta opció per treure alumnes tot i que hagi passat llista (només els absents)'''
        formExpandir.fields["matmulla"].label = u'Força treure'      

        
        #
        #altres forms: grups d'alumnes        
        #
        form=afegeixTreuAlumnesLlistaForm(
                                request.POST,
                                prefix=str( 'alumnes' ),
                                queryset =  Alumne.objects.filter( pk__in = [ ca.alumne.pk for ca in impartir.controlassistencia_set.all()  ] )   ,       
                                etiqueta = 'Alumnes a treure:'                             
                                 )

        if form.is_valid() and formExpandir.is_valid():
            alumnes += form.cleaned_data['alumnes']
            expandir = formExpandir.cleaned_data['expandir_a_totes_les_meves_hores']
            matmulla = formExpandir.cleaned_data['matmulla']            
        
            from aula.apps.presencia.afegeixTreuAlumnesLlista import treuThread
            treu=treuThread(expandir = expandir, alumnes=alumnes, impartir=impartir, matmulla=matmulla)
            treu.start()

            #LOGGING
            Accio.objects.create( 
                    tipus = 'LL',
                    usuari = user,
                    l4 = l4,
                    impersonated_from = request.user if request.user != user else None,
                    text = u"""Treure alumnes de la classe {0} (Forçat:{1}, Expandir:{2}): {3}""".format(
                                impartir,                                                                         
                                u'Sí' if matmulla else 'No', 
                                u'Sí' if expandir else 'No', 
                                u', '.join( [ unicode(a) for a in alumnes  ] )                                                        
                                  )
                )
                        
            #espero que estigui fet el primer dia abans de mostrar la pantalla de passar llista
            import time
            while treu and not treu.primerDiaFet(): time.sleep(  0.5 )
            
            #afegeix.join()      #todo: missatge i redirecció!!!  
            #(' procés d'insertar alumnes engegat, pot trigar una estona. si no apareixen els alumnes prem el butó 'refrescar' del navegador' 
            #'/presencia/passaLlista/%s/' )
            
            return HttpResponseRedirect('/presencia/passaLlista/%s/'% pk )
        
    else:
        
        #primer form: expandir
        formExpandir=afegeixAlumnesLlistaExpandirForm( 
                                            prefix='tots', 
                                            initial={'expandir_a_totes_les_meves_hores':False})
        formExpandir.fields["matmulla"].help_text = u'''Marca aquesta opció per treure alumnes tot i que hagi passat llista (només els absents)'''
        formExpandir.fields["matmulla"].label = u'Força treure'      

        formset.append( formExpandir )

        #altres forms: grups d'alumnes               
        form=afegeixTreuAlumnesLlistaForm(
                                prefix=str( 'alumnes' ),
                                queryset =  Alumne.objects.filter( pk__in = [ ca.alumne.pk for ca in impartir.controlassistencia_set.all()  ] )  ,       
                                etiqueta = 'Alumnes a treure:'                               
                                 )
        formset.append( form )
        
    return render_to_response(
                  "formset.html", 
                  {"formset": formset,
                   "head": head,
                   "missatge":u"""Atenció, no s'esborraran els alumnes que ja s'hagi passat llista o els que tinguin
                                   alguna incidència o expulsió""",
                   },
                  context_instance=RequestContext(request))
示例#2
0
def treuAlumnesLlista(request, pk):
    credentials = getImpersonateUser(request)
    (user, l4) = credentials

    head = u'Treure alumnes de la llista'

    pk = int(pk)
    impartir = Impartir.objects.get(pk=pk)

    #seg-------------------------------
    pertany_al_professor = user.pk in [ impartir.horari.professor.pk,   \
                                       impartir.professor_guardia.pk if impartir.professor_guardia else -1]
    if not (l4 or pertany_al_professor):
        raise Http404()

    formset = []
    alumnes = []
    if request.method == "POST":

        expandir = False

        #
        #primer form: expandir
        #
        formExpandir = afegeixAlumnesLlistaExpandirForm(request.POST,
                                                        prefix='tots')
        formExpandir.fields[
            "matmulla"].help_text = u'''Marca aquesta opció per treure alumnes tot i que hagi passat llista (només els absents)'''
        formExpandir.fields["matmulla"].label = u'Força treure'

        #
        #altres forms: grups d'alumnes
        #
        form = afegeixTreuAlumnesLlistaForm(
            request.POST,
            prefix=str('alumnes'),
            queryset=Alumne.objects.filter(pk__in=[
                ca.alumne.pk for ca in impartir.controlassistencia_set.all()
            ]),
            etiqueta='Alumnes a treure:')

        if form.is_valid() and formExpandir.is_valid():
            alumnes += form.cleaned_data['alumnes']
            expandir = formExpandir.cleaned_data[
                'expandir_a_totes_les_meves_hores']
            matmulla = formExpandir.cleaned_data['matmulla']

            from aula.apps.presencia.afegeixTreuAlumnesLlista import treuThread
            treu = treuThread(expandir=expandir,
                              alumnes=alumnes,
                              impartir=impartir,
                              matmulla=matmulla)
            treu.start()

            #LOGGING
            Accio.objects.create(
                tipus='LL',
                usuari=user,
                l4=l4,
                impersonated_from=request.user
                if request.user != user else None,
                text=
                u"""Treure alumnes de la classe {0} (Forçat:{1}, Expandir:{2}): {3}"""
                .format(impartir, u'Sí' if matmulla else 'No',
                        u'Sí' if expandir else 'No',
                        u', '.join([unicode(a) for a in alumnes])))

            #espero que estigui fet el primer dia abans de mostrar la pantalla de passar llista
            import time
            while treu and not treu.primerDiaFet():
                time.sleep(0.5)

            #afegeix.join()      #todo: missatge i redirecció!!!
            #(' procés d'insertar alumnes engegat, pot trigar una estona. si no apareixen els alumnes prem el butó 'refrescar' del navegador'
            #'/presencia/passaLlista/%s/' )

            return HttpResponseRedirect('/presencia/passaLlista/%s/' % pk)

    else:

        #primer form: expandir
        formExpandir = afegeixAlumnesLlistaExpandirForm(
            prefix='tots', initial={'expandir_a_totes_les_meves_hores': False})
        formExpandir.fields[
            "matmulla"].help_text = u'''Marca aquesta opció per treure alumnes tot i que hagi passat llista (només els absents)'''
        formExpandir.fields["matmulla"].label = u'Força treure'

        formset.append(formExpandir)

        #altres forms: grups d'alumnes
        form = afegeixTreuAlumnesLlistaForm(
            prefix=str('alumnes'),
            queryset=Alumne.objects.filter(pk__in=[
                ca.alumne.pk for ca in impartir.controlassistencia_set.all()
            ]),
            etiqueta='Alumnes a treure:')
        formset.append(form)

    return render_to_response("formset.html", {
        "formset":
        formset,
        "head":
        head,
        "missatge":
        u"""Atenció, no s'esborraran els alumnes que ja s'hagi passat llista o els que tinguin
                                   alguna incidència o expulsió""",
    },
                              context_instance=RequestContext(request))
示例#3
0
def afegeixAlumnesLlista(request, pk):
    credentials = getImpersonateUser(request) 
    (user, l4) = credentials   
    
    head=u'Afegir alumnes a la llista' 

    pk = int(pk)
    impartir = Impartir.objects.get ( pk = pk )
    
    #seg-------------------------------
    pertany_al_professor = user.pk in [ impartir.horari.professor.pk,   \
                                        impartir.professor_guardia.pk if impartir.professor_guardia else -1 ]
    if not ( l4 or pertany_al_professor):
        raise Http404() 
        
    alumnes_pk = [ ca.alumne.pk for ca in impartir.controlassistencia_set.all()]
    #http://www.ibm.com/developerworks/opensource/library/os-django-models/index.html?S_TACT=105AGX44&S_CMP=EDU

    #un formulari per cada grup
    grups_a_mostrar = impartir.horari.grupsPotencials()

    formset = []
    if request.method == "POST":
        
        expandir = False
        alumnes = []
        
        totBe = True
        
        #
        #primer form: expandir
        #
        formExpandir=afegeixAlumnesLlistaExpandirForm( request.POST, prefix='tots')    
        formset.append( formExpandir )    
        if formExpandir.is_valid():
            expandir = formExpandir.cleaned_data['expandir_a_totes_les_meves_hores']
            matmulla = formExpandir.cleaned_data['matmulla']
        else:
            totBe = False        
        #
        #altres forms: grups d'alumnes        
        #
        for grup in grups_a_mostrar:
            form=afegeixTreuAlumnesLlistaForm(
                                    request.POST,
                                    prefix=str( grup.pk ),
                                    queryset =  grup.alumne_set.exclude( pk__in = alumnes_pk )  ,       
                                    etiqueta = unicode(grup)                             
                                     )
            formset.append( form )
            if form.is_valid():                
                alumnes += form.cleaned_data['alumnes']
            else:
                totBe = False

        #TODO: afegir error a mà

        
        if totBe:
            from aula.apps.presencia.afegeixTreuAlumnesLlista import afegeixThread
            afegeix=afegeixThread(expandir = expandir, alumnes=alumnes, impartir=impartir, usuari = user, matmulla = matmulla)
            afegeix.start()

            #LOGGING
            Accio.objects.create( 
                    tipus = 'LL',
                    usuari = user,
                    l4 = l4,
                    impersonated_from = request.user if request.user != user else None,
                    text = u"""Posar alumnes de la classe {0} (Forçat:{1}, Expandir:{2}): {3}""".format(
                                impartir,                                                                         
                                u'Sí' if matmulla else 'No', 
                                u'Sí' if expandir else 'No', 
                                u', '.join( [ unicode(a) for a in alumnes  ] )                                                        
                                  )
                )
                        
            #espero a que estigui fet el primer dia: abans de mostrar la pantalla de passar llista
            import time
            while afegeix and not afegeix.primerDiaFet(): time.sleep(  0.5 )
            
            return HttpResponseRedirect('/presencia/passaLlista/%s/'% pk )

    else:
        
        #primer form: expandir
        formExpandir=afegeixAlumnesLlistaExpandirForm( 
                                            prefix='tots', 
                                            initial={'expandir_a_totes_les_meves_hores':False})
        formset.append( formExpandir )

        #altres forms: grups d'alumnes        
        for grup in grups_a_mostrar:
            #http://www.ibm.com/developerworks/opensource/library/os-django-models/index.html?S_TACT=105AGX44&S_CMP=EDU
            form=afegeixTreuAlumnesLlistaForm(
                                    prefix=str( grup.pk ),
                                    queryset =  grup.alumne_set.exclude( pk__in = alumnes_pk )  ,                                    
                                    etiqueta = unicode( grup )                             
                                     )
            formset.append( form )
        
    return render_to_response(
                  "formset.html", 
                  {"formset": formset,
                   "head": head,
                   },
                  context_instance=RequestContext(request))
示例#4
0
def afegeixAlumnesLlista(request, pk):
    credentials = getImpersonateUser(request)
    (user, l4) = credentials

    head = u'Afegir alumnes a la llista'

    pk = int(pk)
    impartir = Impartir.objects.get(pk=pk)

    #seg-------------------------------
    pertany_al_professor = user.pk in [ impartir.horari.professor.pk,   \
                                        impartir.professor_guardia.pk if impartir.professor_guardia else -1 ]
    if not (l4 or pertany_al_professor):
        raise Http404()

    alumnes_pk = [ca.alumne.pk for ca in impartir.controlassistencia_set.all()]
    #http://www.ibm.com/developerworks/opensource/library/os-django-models/index.html?S_TACT=105AGX44&S_CMP=EDU

    #un formulari per cada grup
    grups_a_mostrar = impartir.horari.grupsPotencials()

    formset = []
    if request.method == "POST":

        expandir = False
        alumnes = []

        totBe = True

        #
        #primer form: expandir
        #
        formExpandir = afegeixAlumnesLlistaExpandirForm(request.POST,
                                                        prefix='tots')
        formset.append(formExpandir)
        if formExpandir.is_valid():
            expandir = formExpandir.cleaned_data[
                'expandir_a_totes_les_meves_hores']
            matmulla = formExpandir.cleaned_data['matmulla']
        else:
            totBe = False
        #
        #altres forms: grups d'alumnes
        #
        for grup in grups_a_mostrar:
            form = afegeixTreuAlumnesLlistaForm(
                request.POST,
                prefix=str(grup.pk),
                queryset=grup.alumne_set.exclude(pk__in=alumnes_pk),
                etiqueta=unicode(grup))
            formset.append(form)
            if form.is_valid():
                alumnes += form.cleaned_data['alumnes']
            else:
                totBe = False

        #TODO: afegir error a mà

        if totBe:
            from aula.apps.presencia.afegeixTreuAlumnesLlista import afegeixThread
            afegeix = afegeixThread(expandir=expandir,
                                    alumnes=alumnes,
                                    impartir=impartir,
                                    usuari=user,
                                    matmulla=matmulla)
            afegeix.start()

            #LOGGING
            Accio.objects.create(
                tipus='LL',
                usuari=user,
                l4=l4,
                impersonated_from=request.user
                if request.user != user else None,
                text=
                u"""Posar alumnes de la classe {0} (Forçat:{1}, Expandir:{2}): {3}"""
                .format(impartir, u'Sí' if matmulla else 'No',
                        u'Sí' if expandir else 'No',
                        u', '.join([unicode(a) for a in alumnes])))

            #espero a que estigui fet el primer dia: abans de mostrar la pantalla de passar llista
            import time
            while afegeix and not afegeix.primerDiaFet():
                time.sleep(0.5)

            return HttpResponseRedirect('/presencia/passaLlista/%s/' % pk)

    else:

        #primer form: expandir
        formExpandir = afegeixAlumnesLlistaExpandirForm(
            prefix='tots', initial={'expandir_a_totes_les_meves_hores': False})
        formset.append(formExpandir)

        #altres forms: grups d'alumnes
        for grup in grups_a_mostrar:
            #http://www.ibm.com/developerworks/opensource/library/os-django-models/index.html?S_TACT=105AGX44&S_CMP=EDU
            form = afegeixTreuAlumnesLlistaForm(
                prefix=str(grup.pk),
                queryset=grup.alumne_set.exclude(pk__in=alumnes_pk),
                etiqueta=unicode(grup))
            formset.append(form)

    return render_to_response("formset.html", {
        "formset": formset,
        "head": head,
    },
                              context_instance=RequestContext(request))