Enhance change_etudid.py
This commit is contained in:
parent
7757173d1b
commit
0db128759f
69
misc/change_etudid.py
Normal file → Executable file
69
misc/change_etudid.py
Normal file → Executable file
@ -18,48 +18,57 @@ Ne traite que les inscriptions, les notes, absences, annotations, mais
|
||||
Attention: script a lancer en tant que "www-data", avec ScoDoc arrete
|
||||
et postgresql lance
|
||||
|
||||
Emmanuel Viennet, 2007
|
||||
Emmanuel Viennet, 2007-2020
|
||||
"""
|
||||
|
||||
import pdb,os,sys,psycopg2
|
||||
import pdb, os, sys, psycopg2
|
||||
|
||||
if len(sys.argv) != 4:
|
||||
print "Usage: %s database orig_etudid dest_etudid" % sys.argv[0]
|
||||
print " Fusionne l'étudiant orig dans l'étudiant dest."
|
||||
print " L'identité, adresse et admission de dest restent inchangées."
|
||||
print " Les inscriptions, notes, absences etc. d'orig sont associées à dest."
|
||||
print " Après cette operation, orig_etudid peut être supprimé."
|
||||
print "Exemple: change_etudid.py SCOGEII E1234 E87654"
|
||||
sys.exit(1)
|
||||
|
||||
DBCNXSTRING = 'dbname=SCOXXX'
|
||||
dbname = sys.argv[1]
|
||||
OLD_ID = sys.argv[2] # etudid qui est en double (que l'on supprime)
|
||||
NEW_ID = sys.argv[3] # etudid destination (celui d'origine)
|
||||
|
||||
# exemple:
|
||||
OLD_ETUDID = 'EID1512' # etudid qui est en double (que l'on supprime)
|
||||
NEW_ETUDID = '10500686' # etudid destination (celui d'origine)
|
||||
DBCNXSTRING = "dbname=%s" % dbname
|
||||
|
||||
cnx = psycopg2.connect( DBCNXSTRING )
|
||||
cnx = psycopg2.connect(DBCNXSTRING)
|
||||
|
||||
cursor = cnx.cursor()
|
||||
req = "update %s set etudid=%%(new_etudid)s where etudid=%%(old_etudid)s"
|
||||
args = { 'old_etudid' : OLD_ETUDID, 'new_etudid' : NEW_ETUDID }
|
||||
args = {"old_etudid": OLD_ID, "new_etudid": NEW_ID}
|
||||
|
||||
tables = ( 'absences',
|
||||
'absences_notifications',
|
||||
'billet_absence',
|
||||
'scolog',
|
||||
'etud_annotations',
|
||||
'entreprise_contact',
|
||||
'notes_formsemestre_inscription',
|
||||
'notes_moduleimpl_inscription',
|
||||
'notes_notes', 'notes_notes_log',
|
||||
'scolar_events',
|
||||
'scolar_formsemestre_validation',
|
||||
'scolar_autorisation_inscription',
|
||||
'notes_appreciations',
|
||||
# nouvelles absences
|
||||
#'abs_absences',
|
||||
#'abs_presences',
|
||||
#'abs_justifs',
|
||||
)
|
||||
tables = (
|
||||
"absences",
|
||||
"absences_notifications",
|
||||
"billet_absence",
|
||||
"scolog",
|
||||
"etud_annotations",
|
||||
"entreprise_contact",
|
||||
"notes_formsemestre_inscription",
|
||||
"notes_moduleimpl_inscription",
|
||||
"notes_notes",
|
||||
"notes_notes_log",
|
||||
"scolar_events",
|
||||
"scolar_formsemestre_validation",
|
||||
"scolar_autorisation_inscription",
|
||||
"notes_appreciations",
|
||||
"itemsuivi",
|
||||
"group_membership",
|
||||
# nouvelles absences
|
||||
#'abs_absences',
|
||||
#'abs_presences',
|
||||
#'abs_justifs',
|
||||
)
|
||||
|
||||
for table in tables:
|
||||
cursor.execute(req % table, args)
|
||||
print 'table %s: %s' % (table, cursor.statusmessage)
|
||||
print "table %s: %s" % (table, cursor.statusmessage)
|
||||
|
||||
cnx.commit()
|
||||
|
||||
|
||||
|
||||
|
@ -138,4 +138,5 @@ my_server = socketserver.TCPServer(("", PORT), handler_object)
|
||||
|
||||
if __name__ == "__main__":
|
||||
# Start the server
|
||||
print(f"Server listening on port {PORT}...")
|
||||
my_server.serve_forever()
|
||||
|
Loading…
Reference in New Issue
Block a user