# -*- mode: python -*- # -*- coding: utf-8 -*- """Modification decision de jury """ from common import * # -> ici on est sur la page d'accueil du departement ! DeptURL = browser.url # Cherche un formsemestre_id: links = browser.find_link_by_partial_text('DUT') u = links[0]['href'] formsemestre_id = re.search( r'formsemestre_id=(SEM[0-9]*)', u ).group(1) # Cherche les etudids browser.visit( urlparse.urljoin(DeptURL, 'formsemestre_recapcomplet?modejury=1&hidemodules=1&formsemestre_id=' + formsemestre_id) ) #u = browser.find_link_by_partial_href('formsemestre_bulletinetud')[0]['href'] #etudid = re.search( r'etudid=([A-Za-z0-9]*)', u ).group(1) L = browser.find_link_by_partial_href('formsemestre_bulletinetud') etudids = [ re.search(r'etudid=([A-Za-z0-9_]*)', x['href']).group(1) for x in L ] def suppress_then_set( etudid, formsemestre_id, code='ADM' ): """Supprime decision de jury pour cet étudiant dans ce semestre puis saisie de la decision (manuelle) indiquée par code """ # Suppression décision existante browser.visit( urlparse.urljoin(DeptURL, 'formsemestre_validation_suppress_etud?etudid=%s&formsemestre_id=%s&dialog_confirmed=1' % (etudid, formsemestre_id))) # Saisie décision browser.visit( urlparse.urljoin(DeptURL, 'formsemestre_validation_etud_form?etudid=%s&formsemestre_id=%s' % (etudid, formsemestre_id))) browser.fill('code_etat', [code]) browser.find_by_name('formvalidmanu_submit').first.click() # pas de verification de la page résultat # Change decisions de jury de tous les étudiants: for etudid in etudids: print 'decision pour %s' % etudid suppress_then_set( etudid, formsemestre_id, code='ADM') t1 = time.time() print '%d etudiants traites en %gs' % (len(etudids),t1-t0)