Пример #1
0
 def __load_from_file (self):
     f = open("fisier_probleme.txt", "r")
     for linie in f:
         linie = linie.split(",")
         if linie!=[]:
             problema = Problema(int(linie [0]), int(linie [1]), linie [2], int(linie [3]), int(linie [4]),
                                 int(linie [5]))
             self.repo_problema.adaugare_problema(problema)
     f.close()
Пример #2
0
 def sterge_problema(self, numar_laborator, numar_problema):
     """
     Metoda pentru validarea unei probleme in vederea stergerii sale din repo
     :param numar_laborator: int
     :param numar_problema: int
     :return:
     """
     problema = Problema(numar_laborator, numar_problema, "a", 12, 12, 2012)
     self.valid_problema.validare_problema(problema)
     self.repo_problema.sterge_problema(problema)
Пример #3
0
 def cauta_problema(self, numar_laborator, numar_problema):
     """
     Metoda pentru validarea unei probleme in vederea cautarii sale in repo
     :param numar_laborator: int
     :param numar_problema: int
     :return: True / False, daca problema exista sau nu in repo, raises exception daca datele nu sunt valide
     """
     problema = Problema(numar_laborator, numar_problema, "a", 12, 12, 2012)
     self.valid_problema.validare_problema(problema)
     return self.repo_problema.cauta_problema(problema)
Пример #4
0
 def asignare_student_problema(self, studentid, numar_laborator,
                               numar_problema):
     """
     Metoda pentru asignarea unei probleme la un student
     :param studentid: int
     :param numar_laborator: int
     :param numar_problema: int
     :return: -, raises exception daca datele nu sunt valide
     """
     student = Student(studentid, "bbb", 1)
     problema = Problema(numar_laborator, numar_problema, "11", 1, 1, 2001)
     student = self.repo_student.cauta_student(student)
     problema = self.repo_problema.cauta_problema(problema)
     asignare = AsignareStudentProblema(student, problema)
     self.repo_asig.asignare_student_problema(asignare)
Пример #5
0
 def __load_from_file (self):
     f = open("fisier_asignare.txt", "r")
     for linie in f:
         linie = linie.split(",")
         if linie!=[]:
             try:
                 student = Student(int(linie [0]), "bba", 1)
                 student = self.repo_student.cauta_student(student)
                 problema = Problema(int(linie [1]), int(linie [2]), "a", 1, 1, 2001)
                 problema = self.repo_problema.cauta_problema(problema)
                 asignare = AsignareStudentProblema(student, problema)
                 self.repo.asignare_student_problema(asignare)
             except RepoError:
                 pass
     f.close()
Пример #6
0
 def asignare_nota(self, studentid, numar_laborator, numar_problema, nota):
     """
     Metoda pentru validarea datelor pentru functia asignare_nota
     :param studentid: int
     :param numar_laborator: int
     :param numar_problema: int
     :param nota: float
     :return: -, raises exception daca sunt erori
     """
     student = Student(studentid, "aa", 12)
     student = self.repo_student.cauta_student(student)
     problema = Problema(numar_laborator, numar_problema, "aaa", 1, 1, 2001)
     problema = self.repo_problema.cauta_problema(problema)
     grade = Nota(student, problema, nota)
     self.valid_note.validare_nota(grade)
     self.repo_note.asignare_nota(grade)
Пример #7
0
 def adauga_problema(self, numar_laborator, numar_problema, descriere, zi,
                     luna, an):
     """
     Metoda pentru validarea unei probleme in vederea adaugarii sale in repo
     :param numar_laborator: int
     :param numar_problema: int
     :param descriere: string
     :param zi: int, 0<zi<=32
     :param luna: int, 0<luna<=12
     :param an: int, 2000<=an
     :return:
     """
     problema = Problema(numar_laborator, numar_problema, descriere, zi,
                         luna, an)
     self.valid_problema.validare_problema(problema)
     self.repo_problema.adaugare_problema(problema)
Пример #8
0
 def raport_lab(self):
     note = self.repo_note.get_all()
     situatie = {}
     for nota in note:
         numar_laborator = nota.get_problema().get_numar_laborator()
         if numar_laborator not in situatie:
             situatie[numar_laborator] = []
         situatie[numar_laborator].append(nota.get_nota())
     rez = []
     for item in situatie.items():
         lab = self.repo_problema.cauta_problema(
             Problema(item[0], 1, "a", 1, 1, 2001)).get_numar_laborator()
         medie = sum(item[1]) / len(item[1])
         mediadto = MedieDTO(lab, medie)
         rez.append(mediadto)
     rez.sort(key=lambda x: (x.get_medie(), x.get_nume()), reverse=False)
     return rez
Пример #9
0
 def afisare_dupa_nume(self, numar_laborator, numar_problema):
     """
     Metoda pentru afisarea listei de studenți și a notele lor la o problema de laborator dat, ordonat alfabetic după nume
     :param numar_laborator: int
     :param numar_problema: int
     :return: lista de studentii care au note la problema data, ordonata alfabetica
     """
     note = self.repo_note.get_all()  #lista cu note
     problema = Problema(numar_laborator, numar_problema, "11", 1, 1, 2001)
     problema = self.repo_problema.cauta_problema(problema)
     lista = []
     for i in note:
         if i.problema == problema:
             lista.append(i)
     #lista.sort(key=lambda x:x.student.get_nume(),reverse=False)
     lista = sortare(lista, False, cmp_nume)
     return lista