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))
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))
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))
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))