def regeneraImpartir(request): head = u'Reprogramar classes segons horari actual' if request.method == 'POST': form = regeneraImpartirForm(request.POST) if form.is_valid(): r = regeneraThread(data_inici=form.cleaned_data['data_inici'], franja_inici=form.cleaned_data['franja_inici'], user=request.user) r.start() errors = [] warnings = [] infos = [u'Iniciat procés regeneració'] resultat = {'errors': errors, 'warnings': warnings, 'infos': infos} return render_to_response('resultat.html', { 'head': head, 'msgs': resultat }, context_instance=RequestContext(request)) else: form = regeneraImpartirForm() return render_to_response('form.html', { 'form': form, 'head': head }, context_instance=RequestContext(request))
def regeneraImpartir(request): head=u'Reprogramar classes segons horari actual' if request.method == 'POST': form = regeneraImpartirForm(request.POST) if form.is_valid(): r=regeneraThread( data_inici=form.cleaned_data['data_inici'], franja_inici = form.cleaned_data['franja_inici'], user = request.user ) r.start() errors=[] warnings=[] infos=[u'Iniciat procés regeneració'] resultat = { 'errors': errors, 'warnings': warnings, 'infos': infos } return render_to_response( 'resultat.html', {'head': head , 'msgs': resultat }, context_instance=RequestContext(request)) else: form = regeneraImpartirForm() return render_to_response( 'form.html', {'form': form, 'head': head}, context_instance=RequestContext(request))
def fesCarrega(): msg = u"" #Calen fixtures carregades: # extKronowin incidencies presencia assignatures horaris seguimentTutorial missatgeria usuaris fitxerSaga = os.path.join(os.path.dirname(__file__), '../tmp/exportSaga.txt') fitxerKronowin = os.path.join(os.path.dirname(__file__), '../tmp/exportKrono.txt') frangesMatins, frangesTardes = range(1, 5), range(6, 10) userDemo, new = User.objects.get_or_create(username='******', defaults={ 'is_staff': True, 'is_superuser': True, }) if new: userDemo.set_password('djAu') nivellsCursosGrups = ( ( 'ESO', ( ( 1, ('A', 'B', 'C'), ), ( 2, ( 'A', 'B', ), ), ( 3, ( 'A', 'B', ), ), ), ), ( 'CFI', ( ( 1, ('A', ), ), ( 2, ('A', ), ), ), ), ( 'CFA', ( ( 1, ('A', 'B'), ), ( 2, ('A', ), ), ), ), ) print u"#GENEREM FITXERS DE DADES " generaFitxerSaga(fitxerSaga, nivellsCursosGrups) generaFitxerKronowin(fitxerKronowin, nivellsCursosGrups, nivellsMatins=[ 'ESO', ], frangesMatins=frangesMatins, frangesTardes=frangesTardes) print u"#CREEM NIVELL-CURS-GRUP" handlerKronowin = open(fitxerKronowin, 'r') inici_curs = date.today() + relativedelta(months=-1) fi_curs = date.today() + relativedelta(days=10) sincronitzaKronowin.creaNivellCursGrupDesDeKronowin( handlerKronowin, inici_curs, fi_curs) print u"#Creem correspondències amb horaris" frangesAula = FranjaHoraria.objects.filter(hora_inici__in=[ '09:15', '10:30', '11:30', '12:45', '15:45', '16:45', '18:05', '19:00' ]).order_by('hora_inici') frangesKronowin = frangesMatins + frangesTardes for frangaAula, franjaKronowin in zip(frangesAula, frangesKronowin): Franja2Aula.objects.get_or_create(franja_kronowin=franjaKronowin, franja_aula=frangaAula) print u"#CREEM CORRESPONDÈNCIES SAGA-KRONOWIN-AULA" for nivell, GrupsCursos in nivellsCursosGrups: for curs, Grups in GrupsCursos: for grup in Grups: lgrup = u"{nivell}{curs}{grup}".format(nivell=nivell, grup=grup, curs=curs) grupAula = Grup.objects.get(descripcio_grup=lgrup) SGrup2Aula.objects.create(grup_saga=lgrup, Grup2Aula=grupAula) #KGrup2Aula.objects.create( grup_kronowin = lgrup, Grup2Aula = grupAula ) #ho fa als crear els grups print u"#Importem Kronowin 1 ( Per crear professors )" handlerKronowin = open(fitxerKronowin, 'r') result = sincronitzaKronowin.sincronitza(handlerKronowin, userDemo) print u"Resultat importació kroniwin 1: ", result["errors"], result[ "warnings"], print u"#Importem Kronowin 2 ( Per importar horaris )" handlerKronowin = open(fitxerKronowin, 'r') result = sincronitzaKronowin.sincronitza(handlerKronowin, userDemo) print u"Resultat importació kroniwin 2: ", result["errors"], result[ "warnings"], print u"#Importem saga" handlerSaga = open(fitxerSaga, 'r') result = sincronitzaSaga.sincronitza(handlerSaga, userDemo) print u"Resultat importació saga: ", result["errors"], result["warnings"], print u"#Assignem tutors" for g in Grup.objects.all(): professors_del_grup = Professor.objects.filter( horari__grup=g).distinct() if professors_del_grup: Tutor.objects.create(professor=random.choice(professors_del_grup), grup=g) msg += "\nProfessors: " + u" ,".join( sorted(set([unicode(t.username) for t in Professor.objects.all()]))) msg += "\nTutors: " + u" ,".join( sorted( set([unicode(t.professor.username) for t in Tutor.objects.all()]))) print u"#Assignem equip directiu" direccio, _ = Group.objects.get_or_create(name='direcció') sisplau_que_no_siguin_mediocres = [ random.choice(Professor.objects.all()) ] + [p for p in Professor.objects.filter(username__endswith='1')] for sisplau_que_no_sigui_mediocre in sisplau_que_no_siguin_mediocres: sisplau_que_no_sigui_mediocre.groups.add(direccio) sisplau_que_no_sigui_mediocre.is_staff = True sisplau_que_no_sigui_mediocre.is_superuser = True sisplau_que_no_sigui_mediocre.save() msg += u"\nDirecció: " + u" ,".join( sorted( set([ unicode(t.username) for t.username in sisplau_que_no_siguin_mediocres ]))) print u"Regenerar impartir" r = regeneraThread( data_inici=None, #data inici de curs franja_inici=FranjaHoraria.objects.all()[:1].get(), user=userDemo) r.start() r.join() print u"Posar alumnes a llistes" seguents7dies = Impartir.objects.values('dia_impartir').order_by( 'dia_impartir').distinct()[:5] for dia in seguents7dies: print 'Dia', dia, u' ( ompliré 5 dies )' for impartir in Impartir.objects.filter( dia_impartir=dia['dia_impartir']): if not impartir.controlassistencia_set.exists(): alumnes = [ alumne for grup in impartir.horari.grupsPotencials() for alumne in grup.alumne_set.all() ] random.shuffle(alumnes) n_alumnes = random.randint(1, 4) afegeix = afegeixThread(expandir=False, alumnes=alumnes[:n_alumnes], impartir=impartir, usuari=impartir.horari.professor, matmulla=False) afegeix.start() afegeix.join() print u"canviant dades dels professors" for p in Professor.objects.all(): p.first_name, p.last_name = getRandomNomICognoms() p.set_password('djAu') p.save() msg += u"\nTots els passwords de professors: 'djAu' " return msg
def fesCarrega( ): msg = u"" #Calen fixtures carregades: # extKronowin incidencies presencia assignatures horaris seguimentTutorial missatgeria usuaris fitxerSaga = os.path.join( os.path.dirname(__file__), '../tmp/exportSaga.txt') fitxerKronowin = os.path.join( os.path.dirname(__file__), '../tmp/exportKrono.txt') frangesMatins, frangesTardes = range(1,5), range(6,10) userDemo, new = User.objects.get_or_create( username = '******', defaults={'is_staff':True, 'is_superuser':True, } ) if new: userDemo.set_password( '1234' ) nivellsCursosGrups = ( ( 'ESO', ( ( 1, ( 'A','B','C'), ), ( 2, ( 'A','B',), ), ( 3, ( 'A','B',), ), ), ), ( 'CFI', ( ( 1, ( 'A',), ), ( 2, ( 'A',), ), ), ), ( 'CFA', ( ( 1, ( 'A','B'), ), ( 2, ( 'A',), ), ), ), ) print u"#GENEREM FITXERS DE DADES " generaFitxerSaga(fitxerSaga, nivellsCursosGrups ) generaFitxerKronowin( fitxerKronowin, nivellsCursosGrups, nivellsMatins=['ESO',], frangesMatins = frangesMatins, frangesTardes = frangesTardes ) print u"#CREEM NIVELL-CURS-GRUP" handlerKronowin=open( fitxerKronowin, 'r' ) inici_curs = date.today() + relativedelta( months = -1) fi_curs = date.today() + relativedelta( months = 1) sincronitzaKronowin.creaNivellCursGrupDesDeKronowin( handlerKronowin, inici_curs, fi_curs ) print u"#Creem correspondències amb horaris" frangesAula = FranjaHoraria.objects.filter( hora_inici__in = ['09:15', '10:30', '11:30' ,'12:45', '15:45', '16:45', '18:05', '19:00'] ).order_by ( 'hora_inici' ) frangesKronowin = frangesMatins + frangesTardes for frangaAula, franjaKronowin in zip(frangesAula, frangesKronowin ): Franja2Aula.objects.get_or_create( franja_kronowin= franjaKronowin, franja_aula = frangaAula ) print u"#CREEM CORRESPONDÈNCIES SAGA-KRONOWIN-AULA" for nivell, GrupsCursos in nivellsCursosGrups: for curs, Grups in GrupsCursos: for grup in Grups: lgrup = u"{nivell}{curs}{grup}".format( nivell = nivell, grup = grup, curs = curs) grupAula = Grup.objects.get( descripcio_grup = lgrup ) SGrup2Aula.objects.create( grup_saga = lgrup, Grup2Aula = grupAula ) #KGrup2Aula.objects.create( grup_kronowin = lgrup, Grup2Aula = grupAula ) #ho fa als crear els grups print u"#Importem Kronowin 1 ( Per crear professors )" handlerKronowin=open( fitxerKronowin, 'r' ) result = sincronitzaKronowin.sincronitza( handlerKronowin, userDemo ) print u"Resultat importació kroniwin 1: ", result["errors"], result["warnings"], print u"#Importem Kronowin 2 ( Per importar horaris )" handlerKronowin=open( fitxerKronowin, 'r' ) result = sincronitzaKronowin.sincronitza( handlerKronowin, userDemo ) print u"Resultat importació kroniwin 2: ", result["errors"], result["warnings"], print u"#Importem saga" handlerSaga=open( fitxerSaga, 'r' ) result = sincronitzaSaga.sincronitza( handlerSaga, userDemo ) print u"Resultat importació saga: ", result["errors"], result["warnings"], print u"#Assignem tutors" for g in Grup.objects.all(): professors_del_grup = Professor.objects.filter( horari__grup = g ).distinct() if professors_del_grup: Tutor.objects.create( professor = random.choice( professors_del_grup ) , grup = g ) msg += "\nProfessors: " + u" ,".join( sorted( set( [ unicode( t.username ) for t in Professor.objects.all() ] ) ) ) msg += "\nTutors: " + u" ,".join( sorted( set( [ unicode( t.professor.username ) for t in Tutor.objects.all() ] ) ) ) print u"#Assignem equip directiu" direccio, _ = Group.objects.get_or_create(name= 'direcció' ) sisplau_que_no_siguin_mediocres = [ random.choice( Professor.objects.all() ) ] + [ p for p in Professor.objects.filter( username__endswith = '1' )] for sisplau_que_no_sigui_mediocre in sisplau_que_no_siguin_mediocres: sisplau_que_no_sigui_mediocre.groups.add( direccio ) sisplau_que_no_sigui_mediocre.is_staff = True sisplau_que_no_sigui_mediocre.is_superuser = True sisplau_que_no_sigui_mediocre.save() msg += u"\nDirecció: " + u" ,".join( sorted( set( [ unicode( t.username ) for t.username in sisplau_que_no_siguin_mediocres ] ) ) ) print u"Regenerar impartir" r=regeneraThread( data_inici= None, #data inici de curs franja_inici = FranjaHoraria.objects.all()[:1].get(), user = userDemo ) r.start() r.join() print u"Posar alumnes a llistes" seguents7dies = Impartir.objects.values( 'dia_impartir').order_by('dia_impartir').distinct()[:5] for dia in seguents7dies: for impartir in Impartir.objects.filter( dia_impartir = dia['dia_impartir'] ): if not impartir.controlassistencia_set.exists(): alumnes = [ alumne for grup in impartir.horari.grupsPotencials() for alumne in grup.alumne_set.all() ] random.shuffle( alumnes ) n_alumnes = random.randint( 3,7 ) afegeix=afegeixThread(expandir = True, alumnes=alumnes[:n_alumnes], impartir=impartir, usuari = impartir.horari.professor, matmulla = False) afegeix.start() afegeix.join() print u"canviant dades dels professors" for p in Professor.objects.all(): p.first_name, p.last_name = getRandomNomICognoms() p.set_password( 'djAu' ) p.save() msg += u"\nTots els passwords de professors: 'djAu' " return msg