def busca_turmas_disciplina(codigo): # busca e retorna lista contendo turmas vinculadas à disciplina identificada por 'codigo' turmas = [] turmas_copia = f.copiar_lista(lista_turmas) for turma in turmas_copia: if turma[3] == codigo: turmas.append(turma.copy()) return turmas
def _acha_turma(id_turma): # busca turma por id da turma e retorna tupla com dados da turma # ou None se turma não encontrada turma_copia = f.copiar_lista(lista_turmas) for turma in turma_copia: if turma[0] == id_turma: return turma.copy() return None
def busca_aluno_turmas(cpf): # busca e retorna as turmas em que o aluno identificado por cpf está matriculado turmas_do_aluno = [] turmas_copia = f.copiar_lista(lista_turmas) for turma in turmas_copia: # varre as turmas em busca do aluno if _checa_aluno(cpf, turma[0]): # vê se aluno está matriculado na turma turma.append(acha_disciplina(turma[3])[1]) # acrescenta nome da disciplina ao cadastro da turma turmas_do_aluno.append(turma.copy()) # acumula cadastro da turma na lista de retorno return turmas_do_aluno
def _acha_professores(id_turma): # retorna lista contendo os cadastros dos professores pertencentes á turma identificada por id_turma professores = [] profs_copia = f.copiar_lista(lista_profs) for entrada in profs_copia: if entrada[0] == id_turma: # usa função definida no módulo 'professores' para fazer busca do cadastro do professor prof = acha_professor(entrada[1]) if prof is not None: professores.append(prof.copy()) # acumula cadastro encontrado na lista de retorno return professores
def acha_turmas_professor(cpf): # busca e retorna turmas às quais o professor identificado por cpf está vinculado, baseando-se # na lista associativa entre professores e turmas (lista 'turmas_professor') turmas_professor = [] profs_copia = f.copiar_lista(lista_profs) for entrada in profs_copia: if entrada[1] == cpf: # bingo! achou turma associada ao professor turma = _acha_turma(entrada[0]) # usa função local para ler cadastro da turma # busca cadastro da disciplina correspondente à turma usando função importada do módulo 'disciplinas' turma.append(acha_disciplina(turma[3])[1]) # acrescenta nome por extenso da disciplina ao cadastro lido turmas_professor.append(turma.copy()) # acumula turma na lista de retorno return turmas_professor
def _imprimir_turmas(): # copia a lista de turmas lista = f.copiar_lista(lista_turmas) # prepara a cópia da lista de turmas para impressão for turma in lista: # inclui nome da disciplina na cópia # a posição 3 contém o código da disciplina na lista das turmas; # a posição 1 da lista retornada pela busca contém o nome da disciplina turma.append(acha_disciplina(turma[3])[1]) # inclui o(s) nome(s) do(s) professor(es) na listagem # lista os nomes dos professores (conteúdos na posição 1) dos resultados da busca pelos professores # e une-os com vírgula professores = ', '.join([x[1] for x in _acha_professores(turma[0])]) turma.append(professores) # elimina campo da id da turma antes de imprimir lista = [x[1:] for x in lista] # ordena lista por período da turma lista.sort(key=lambda turma: turma[1]) f.imprimir_tabela(cabeçalho_turmas, lista)
def exportar_tabela(): # função usada pelo módulo 'turmas' para composição de nova turma f.imprimir_tabela(cabeçalho, lista) # printa lista atualizada de disciplinas return f.copiar_lista(lista) # chama função auxiliar em 'ferramentas' para retornar cópia da lista
def exportar_tabela(): f.imprimir_tabela(cabeçalho, lista) return f.copiar_lista(lista)
def _exportar_alunos(): # exporta cópia de lista de referência entre alunos e turmas usando função de cópia definida no módulo 'ferramentas' # (função importada pelo módulo 'relatorios' para a emissão de reportes) return f.copiar_lista(lista_alunos)