def find_by_current_semester(self, current_semester):
        """Suchen eines Semester anhand vom Current Semester."""

        result = []
        cursor = self._cnx.cursor()
        command = "SELECT * FROM semester WHERE current_semester like '{}'".format(
            current_semester)
        cursor.execute(command)
        tuples = cursor.fetchall()

        if len(tuples) != 0:

            for (id, name, current_semester, create_time) in tuples:
                semester = Semester()
                semester.set_id(id)
                semester.set_name(name)
                semester.set_current_semester(current_semester)
                semester.set_create_time(create_time)
                result.append(semester)

        else:
            result = None

        self._cnx.commit()
        cursor.close()

        return result
    def find_by_key(self, id):
        """Suchen eines Semesters mit vorgegebener ID-Nummer."""

        result = []
        cursor = self._cnx.cursor()
        command = "SELECT * FROM semester WHERE id like '{}'".format(id)
        cursor.execute(command)
        tuples = cursor.fetchall()

        if len(tuples) != 0:

            for (id, name, current_semester, create_time) in tuples:
                semester = Semester()
                semester.set_id(id)
                semester.set_name(name)
                semester.set_current_semester(current_semester)
                semester.set_create_time(create_time)
                result.append(semester)

                result = semester

        else:
            result = None

        self._cnx.commit()
        cursor.close()

        return result
    def create_semester(self, name, current_semester):
        """Ein Semester anlegen"""
        semester = Semester()
        semester.set_name(name)
        semester.set_current_semester(current_semester)
        semester.set_id(1)

        with SemesterMapper() as mapper:
            return mapper.insert(semester)
Beispiel #4
0
 def post(self):
     """Semester erstellen"""
     adm = ProjectAdministration()
     proposal = Semester.from_dict(api.payload)
     if proposal is not None:
         c = adm.create_semester(proposal.get_name(),
                                 proposal.get_current_semester())
         return c, 200
     else:
         return '', 500
    def find_all(self):
        """Auslesen aller Semesters."""
        result = []
        cursor = self._cnx.cursor()
        command = "SELECT * FROM semester"
        cursor.execute(command)
        tuples = cursor.fetchall()

        for (id, name, current_semester, create_time) in tuples:
            semester = Semester()
            semester.set_id(id)
            semester.set_name(name)
            semester.set_current_semester(current_semester)
            semester.set_create_time(create_time)
            result.append(semester)

        self._cnx.commit()
        cursor.close()

        return result
    def find_by_name(self, name):

        result = []
        cursor = self._cnx.cursor()
        command = "SELECT * FROM semester WHERE name like '{}'".format(name)
        cursor.execute(command)
        tuples = cursor.fetchall()

        for (id, name, current_semester, create_time) in tuples:
            semester = Semester()
            semester.set_id(id)
            semester.set_name(name)
            semester.set_current_semester(current_semester)
            semester.set_create_time(create_time)
            result.append(semester)

        self._cnx.commit()
        cursor.close()

        return result
Beispiel #7
0
    def put(self, id):
        """Semester wird aktualisiert"""
        adm = ProjectAdministration()
        semester = Semester.from_dict(api.payload)

        if semester is None:
            return "Semester konnte nicht geändert werden", 500

        else:
            semester.set_id(id)
            adm.save_semester(semester)
            return "Semester wurde erfolgreich geändert", 200
Beispiel #8
0
    def find_semester_of_student(self, id):
        """
        finde alle Semester eines Studenten, in welcher er eine Teilnahme hat in der Datenbank

        :param id
        """
        result = []

        cursor = self._connection.cursor()

        command = "SELECT semester.id, semester.name FROM teilnahmen INNER JOIN projekte on teilnahmen.lehrangebot = projekte.id \
                    INNER JOIN semester on projekte.halbjahr = semester.id WHERE teilnahmen.teilnehmer ='{}'".format(
            id)

        cursor.execute(command)
        tuples = cursor.fetchall()

        filtered_tuples = list(set(tuples))  #entfernt doppelte Semester

        for (id, name) in filtered_tuples:
            semester = Semester()
            semester.set_id(id)
            semester.set_name(name)
            result.append(semester)

        self._connection.commit()
        cursor.close()

        return result
Beispiel #9
0
    def find_by_id(self, id):
        """Eindeutiges Auslesen eines Semesters durch ID

        :param id
        :return Semester-Objekt, das der übergebenen ID entspricht oder None wenn DB-Tupel nicht vorhanden ist
        """
        result = None

        cursor = self._connection.cursor()
        command = "SELECT id, name FROM semester WHERE id ='{}'".format(id)
        cursor.execute(command)
        tuples = cursor.fetchall()

        try:
            (id, name) = tuples[0]
            semester = Semester()
            semester.set_id(id)
            semester.set_name(name)
            result = semester

        except IndexError:
            """Der IndexError wird oben beim Zugriff auf tuples[0] auftreten, wenn der vorherige SELECT-Aufruf
			keine Tupel liefert, sondern tuples = cursor.fetchall() eine leere Sequenz zurück gibt."""
            result = None

        self._connection.commit()
        cursor.close()
        return result
Beispiel #10
0
    def put(self, id):
        """Update eines bestimmten Semester-Objekts.

        """
        adm = ProjectAdministration()
        sem = Semester.from_dict(api.payload)

        if sem is not None:
            sem.set_id(id)
            adm.save_semester(sem)
            return '', 200
        else:
            return '', 500
Beispiel #11
0
    def post (self):
        """Anlegen eines neuen Semester-Objekts."""
        adm = ProjektAdministration()
        semester = Semester.from_dict(api.payload)

        if semester is not None:
            """ Wir verwenden semester des Proposals für
             die Erzeugung eines Modul-Objekts. Das serverseitig erzeugte 
             Objekt ist das maßgebliche und  wird auch dem Client zurückgegeben. """
            m = adm.create_semester(semester)
            return m, 200
        else: 
            """ Wenn irgendetwas schiefgeht, dann geben wir nichts zurück und
            werfen einen Server-Fehler. """
            return '', 500
Beispiel #12
0
    def post(self):
        """Anlegen eines neuen Semester-Objekts.

        **ACHTUNG:** Wir fassen die vom Client gesendeten Daten als Vorschlag auf.
        So ist zum Beispiel die Vergabe der ID nicht Aufgabe des Clients.
        Selbst wenn der Client eine ID in dem Proposal vergeben sollte, so
        liegt es an der BankAdministration (Businesslogik), eine korrekte ID
        zu vergeben. *Das korrigierte Objekt wird schließlich zurückgegeben.*
        """
        adm = ProjectAdministration()

        se = Semester.from_dict(api.payload)
        """RATSCHLAG: Prüfen Sie stets die Referenzen auf valide Werte, bevor Sie diese verwenden!"""
        if se is not None:
            """ Wir verwenden id, evaluator, to_be_assessed, passed, grade des Proposals für die Erzeugung
            eines Customer-Objekts. Das serverseitig erzeugte Objekt ist das maßgebliche und 
            wird auch dem Client zurückgegeben. 
            """
            s = adm.create_semester(se.get_creation_time(), se.get_name(),
                                    se.get_start(), se.get_end())
            return s, 200
        else:
            # Wenn irgendetwas schiefgeht, dann geben wir nichts zurück und werfen einen Server-Fehler.
            return '', 500
Beispiel #13
0
    def find_all(self):
        """Auslesen aller vorhandenen Semester

        :return Eine Sammlung aller Semester-Objekten.
        """
        result = []

        cursor = self._connection.cursor()

        command = "SELECT id, name FROM semester"

        cursor.execute(command)
        tuples = cursor.fetchall()

        for (id, name) in tuples:
            semester = Semester()
            semester.set_id(id)
            semester.set_name(name)
            result.append(semester)

        self._connection.commit()
        cursor.close()

        return result
Beispiel #14
0
    def find_by_id(self, id): #suche semester nach id

        result = None

        cursor = self._cnx.cursor()
        command = "SELECT id, creation_time, name, start, end  FROM semester WHERE id={}".format(id)
        cursor.execute(command)
        tuples = cursor.fetchall()

        if tuples[0] is not None:
            (id, creation_time, name, start, end) = tuples[0]
            semester = Semester()
            semester.set_id(id)
            semester.set_creation_time(creation_time)
            semester.set_name(name)
            semester.set_start(start)
            semester.set_end(end)

            result = semester

        self._cnx.commit()
        cursor.close()

        return result
Beispiel #15
0
        self._cnx.commit()
        cursor.close()


"""Zu Testzwecken können wir diese Datei bei Bedarf auch ausführen, 
um die grundsätzliche Funktion zu überprüfen.

Anmerkung: Nicht professionell aber hilfreich..."""
if (__name__ == "__main__"):
    with SemesterMapper() as mapper:
        result = mapper.delete(2020)
        for p in result:
            print(p)

if (__name__ == "__main__"):
    s = Semester()
    s.set_id(2023)
    s.set_creation_time(2023-12-10)
    s.set_name("SSSasfsfaf")
    s.set_start(2023-10-10)
    s.set_end(2023-10-10)

    with SemesterMapper() as mapper:
        result = mapper.update(s)






Beispiel #16
0
    def find_all(self):

        result = []
        cursor = self._cnx.cursor()
        cursor.execute("SELECT id, creation_time, start, end, name FROM semester")
        tuples = cursor.fetchall()

        for (id, creation_time, start, end, name) in tuples:
            semester = Semester()
            semester.set_id(id)
            semester.set_creation_time(creation_time)
            semester.set_name(name)
            semester.set_start(start)
            semester.set_end(end)
            result.append(semester)

        self._cnx.commit()
        cursor.close()

        return result
    def create_semester(self, creation_time, name, start, end):
        """Ein Semester anlegen"""
        semester = Semester()
        semester.set_creation_time(creation_time)
        semester.set_name(name)
        semester.set_start(start)
        semester.set_end(end)
        semester.set_id(1)

        with SemesterMapper() as mapper:
            return mapper.insert(semester)