ifms-conselho/conta_professores.py
2023-03-08 11:41:05 -04:00

86 lines
2.3 KiB
Python

from libx import *
def conta_tudo(ano_sem,por_professores,por_turmas,alfaberito,desconsiderar,ip1,porta1,user1,senha1,db1):
if ip1 =="localhost":
link1 = f"mongodb://{ip1}:{str(porta1)}/?readPreference=primary"
else:
link1 = f"mongodb://{user1}:{senha1}@{ip1}:{porta1}/?authSource=admin&readPreference=primary&ssl=false"
db_origem = MongoClient(link1).get_database(db1)
db_marcas = db_origem.get_collection("marcas")
db_comentarios = db_origem.get_collection("comentarios")
cm = 0
cc = 0
contator = {}
cp = 0
lista_turma = {}
for m in db_marcas.find({"ano_sem":ano_sem}):
turma = m["curso"]+" "+m["semestre"]+" "+m["turno"]
if not turma in lista_turma:
lista_turma[turma] = [m["professor"]]
else:
if not m["professor"] in lista_turma[turma]:
lista_turma[turma].append(m["professor"])
if not m["professor"] in desconsiderar:
cm +=1
if m["professor"] in contator:
contator[m["professor"]]["marcas"] +=1
else:
contator[m["professor"]] = {"marcas":1,"comentarios":0}
for m in db_comentarios.find({"ano_sem":ano_sem}):
if not m["professor"] in desconsiderar:
cc +=1
if m["professor"] in contator:
contator[m["professor"]]["comentarios"] +=1
else:
contator[m["professor"]] = {"marcas":0,"comentarios":1}
if por_turmas:
print("\n\n\n","_"*40,"|",ano_sem,"|","_"*40)
lto = []
for p in lista_turma:
lto.append(p)
if alfaberito:
lto.sort()
for t in lto:
n = 0
print("\n\t\t",t,"\n")
lista_turma[t].sort()
for p in lista_turma[t]:
n += 1
print("\t\t\t\t",n,"\t",p)
if por_professores:
print("\n\n\n","_"*40,"|",ano_sem,"|","_"*40)
print("")
print("\t","","\t","PROFESSOR", " "*(50-len("professor")),"MARCAS","\t","COMENTARIOS")
print("")
po = []
for p in contator:
po.append(p)
if alfaberito:
po.sort()
for p in po:
cp+=1
print("\t",cp,"\t",p, " "*(50-len(p)),contator[p]["marcas"],"\t",contator[p]["comentarios"])
print("")
print("\t"," ","\t", " "*(50-len("TOTAL ")),"TOTAL ",cm,"\t",cc)
print("\n\n")
while True:
conta_tudo("2021-2",True,True,True,["Tania Fujii","Lia Daniel","Ivan Herrmann","Ana Carolina Bezerra dos Santos","Letricia Pereira Soares Avalhais","Giseli Klauck"],"0.0.0.0",2323,"USUARIO","SENHA","connect")
time.sleep(60)