コード例 #1
0
    def find_all(self):
        """Auslesen aller PartnerVorschlag-Objekte aus der Datenbank

        :return: Sammlung mit PartnerVorschlag-Objekten
        """
        result = []
        cursor = self._cnx.cursor()
        cursor.execute("SELECT * from partner_vorschlaege")
        tuples = cursor.fetchall()

        for (
                id,
                erstellungszeitpunkt,
                person_id,
                partner_id,
                aehnlichkeit,
                matchpoints,
                entscheidung_person,
                entscheidung_partner,
        ) in tuples:
            partner_vorschlag = PartnerVorschlag()
            partner_vorschlag.set_id(id)
            partner_vorschlag.set_erstellungszeitpunkt(erstellungszeitpunkt)
            partner_vorschlag.set_person_id(person_id)
            partner_vorschlag.set_partner_id(partner_id)
            partner_vorschlag.set_aehnlichkeit(aehnlichkeit)
            partner_vorschlag.set_matchpoints(matchpoints)
            partner_vorschlag.set_entscheidung_person(entscheidung_person)
            partner_vorschlag.set_entscheidung_partner(entscheidung_partner)
            result.append(partner_vorschlag)

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

        return result
コード例 #2
0
    def find_all_anfragen(self):
        """Auslesen aller PartnerVorschlag-Objekte aus der Datenbank, welche als Anfragen gezählt werden,
        also die eine einseitige, positive Entscheidung haben, aber noch nicht angenommen oder abgelehnt wurden

        :return:
        """
        """ Auslesen aller GruppenVorschlags-Objekte, deren Matchpoints auf 1 gesetzt ist, entweder durch eine
                    Entscheidung seitens der Gruppe, oder der Person, jedoch nicht beiderseits

        :return: Sammlung mit GruppenVorschlags-Objekten
        """
        result = []
        cursor = self._cnx.cursor()
        command = (
            "SELECT * FROM partner_vorschlaege WHERE matchpoints=1 AND "
            "((entscheidung_person=TRUE AND entscheidung_partner=FALSE) "
            "OR (entscheidung_partner=TRUE AND entscheidung_person=FALSE)) ")
        cursor.execute(command)
        tuples = cursor.fetchall()

        for (
                id,
                erstellungszeitpunkt,
                person_id,
                partner_id,
                aehnlichkeit,
                matchpoints,
                entscheidung_person,
                entscheidung_partner,
        ) in tuples:
            partner_vorschlag = PartnerVorschlag()
            partner_vorschlag.set_id(id)
            partner_vorschlag.set_erstellungszeitpunkt(erstellungszeitpunkt)
            partner_vorschlag.set_person_id(person_id)
            partner_vorschlag.set_partner_id(partner_id)
            partner_vorschlag.set_aehnlichkeit(aehnlichkeit)
            partner_vorschlag.set_matchpoints(matchpoints)
            partner_vorschlag.set_entscheidung_person(entscheidung_person)
            partner_vorschlag.set_entscheidung_partner(entscheidung_partner)
            result.append(partner_vorschlag)

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

        return result
コード例 #3
0
    def find_best_by_person_id(self, person_key):
        """Auslesen der PartnerVorschlags-Objekte der gegebenen Person ID, bei denen noch keine Entscheidung der
            Person getroffen wurde in absteigender Reihenfolge

        :param person_key: Person ID
        :return: Sammlung mit PartnerVorschlag-Objekten, der gegebenen Person ID
        """
        result = None
        cursor = self._cnx.cursor()
        command = (
            "SELECT * FROM partner_vorschlaege WHERE (person_id={} AND entscheidung_person is FALSE) "
            "OR (partner_id={} AND entscheidung_partner is FALSE) ORDER BY aehnlichkeit DESC "
            .format(person_key, person_key))
        cursor.execute(command)
        tuples = cursor.fetchall()

        try:
            (
                id,
                erstellungszeitpunkt,
                person_id,
                partner_id,
                aehnlichkeit,
                matchpoints,
                entscheidung_person,
                entscheidung_partner,
            ) = tuples[0]
            partner_vorschlag = PartnerVorschlag()
            partner_vorschlag.set_id(id)
            partner_vorschlag.set_erstellungszeitpunkt(erstellungszeitpunkt)
            partner_vorschlag.set_person_id(person_id)
            partner_vorschlag.set_partner_id(partner_id)
            partner_vorschlag.set_aehnlichkeit(aehnlichkeit)
            partner_vorschlag.set_matchpoints(matchpoints)
            partner_vorschlag.set_entscheidung_person(entscheidung_person)
            partner_vorschlag.set_entscheidung_partner(entscheidung_partner)
            result = partner_vorschlag
        except IndexError:
            """ """
            result = None

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

        return result
コード例 #4
0
    def find_by_key(self, key):
        """Auslesen aller PartnerVorschlag-Objekte der zugehörigen PartnerVorschlag ID

        :param key: PartnerVorschlag ID
        :return: Sammlung mit PartnerVorschlag-Objekten, der zugehörigen PartnerVorschlag ID
        """
        result = None
        cursor = self._cnx.cursor()
        command = (
            "SELECT id, erstellungszeitpunkt, person_id, partner_id, aehnlichkeit, matchpoints, entscheidung_person,"
            "entscheidung_partner FROM partner_vorschlaege WHERE id={}".format(
                key))
        cursor.execute(command)
        tuples = cursor.fetchall()

        try:
            (
                id,
                erstellungszeitpunkt,
                person_id,
                partner_id,
                aehnlichkeit,
                matchpoints,
                entscheidung_person,
                entscheidung_partner,
            ) = tuples[0]
            partner_vorschlag = PartnerVorschlag()
            partner_vorschlag.set_id(id)
            partner_vorschlag.set_erstellungszeitpunkt(erstellungszeitpunkt)
            partner_vorschlag.set_person_id(person_id)
            partner_vorschlag.set_partner_id(partner_id)
            partner_vorschlag.set_aehnlichkeit(aehnlichkeit)
            partner_vorschlag.set_matchpoints(matchpoints)
            partner_vorschlag.set_entscheidung_person(entscheidung_person)
            partner_vorschlag.set_entscheidung_partner(entscheidung_partner)
            result = partner_vorschlag
        except IndexError:
            """ """
            result = None

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

        return result
コード例 #5
0
    def find_eingehende_by_person_id(self, person_key):
        """Auslesen der PartnerVorschlag-Objekte der gegebenen Person ID bei dem die Entscheidung des Partners schon
                    getroffen ist, die Entscheidung der Person jedoch noch nicht

        :param person_key: Person ID
        :return: Sammlung mit PartnerVorschlag-Objekten, der gegebenen Person ID
        """
        result = []
        cursor = self._cnx.cursor()
        command = (
            "SELECT * FROM partner_vorschlaege WHERE "
            "(person_id={} AND entscheidung_person=FALSE AND entscheidung_partner=TRUE AND matchpoints=1) "
            "OR (partner_id={} AND entscheidung_person=TRUE AND entscheidung_partner=FALSE AND matchpoints=1) "
            .format(person_key, person_key))
        cursor.execute(command)
        tuples = cursor.fetchall()

        for (
                id,
                erstellungszeitpunkt,
                person_id,
                partner_id,
                aehnlichkeit,
                matchpoints,
                entscheidung_person,
                entscheidung_partner,
        ) in tuples:
            partner_vorschlag = PartnerVorschlag()
            partner_vorschlag.set_id(id)
            partner_vorschlag.set_erstellungszeitpunkt(erstellungszeitpunkt)
            partner_vorschlag.set_person_id(person_id)
            partner_vorschlag.set_partner_id(partner_id)
            partner_vorschlag.set_aehnlichkeit(aehnlichkeit)
            partner_vorschlag.set_matchpoints(matchpoints)
            partner_vorschlag.set_entscheidung_person(entscheidung_person)
            partner_vorschlag.set_entscheidung_partner(entscheidung_partner)
            result.append(partner_vorschlag)

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

        return result
コード例 #6
0
    def find_all_offene_for_person_id(self, person_key):
        """Auslesen aller PartnerVorschlags-Objekte der gegebenen Person ID, bei denen noch keine Entscheidung der
                    Person getroffen

        :param person_key: Person ID
        :return: Sammlung mit PartnerVorschlag-Objekten, der gegebenen Person ID
        """
        result = []
        cursor = self._cnx.cursor()
        command = (
            "SELECT * FROM partner_vorschlaege WHERE (person_id={} AND entscheidung_person is FALSE) "
            "OR (partner_id={} AND entscheidung_partner is FALSE)".format(
                person_key, person_key))
        cursor.execute(command)
        tuples = cursor.fetchall()

        for (
                id,
                erstellungszeitpunkt,
                person_id,
                partner_id,
                aehnlichkeit,
                matchpoints,
                entscheidung_person,
                entscheidung_partner,
        ) in tuples:
            partner_vorschlag = PartnerVorschlag()
            partner_vorschlag.set_id(id)
            partner_vorschlag.set_erstellungszeitpunkt(erstellungszeitpunkt)
            partner_vorschlag.set_person_id(person_id)
            partner_vorschlag.set_partner_id(partner_id)
            partner_vorschlag.set_aehnlichkeit(aehnlichkeit)
            partner_vorschlag.set_matchpoints(matchpoints)
            partner_vorschlag.set_entscheidung_person(entscheidung_person)
            partner_vorschlag.set_entscheidung_partner(entscheidung_partner)
            result.append(partner_vorschlag)

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

        return result
コード例 #7
0
        """
        cursor = self._cnx.cursor()

        command = "DELETE FROM partner_vorschlaege WHERE id={}".format(
            partner_vorschlag.get_id())
        cursor.execute(command)

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


"""Testbereich, ob die Klasse funktioniert"""

if __name__ == "__main__":
    with PartnerVorschlagMapper() as mapper:
        result = mapper.find_all()
        print("los")
        for p in result:
            print(p)

        neu = PartnerVorschlag()
        neu.set_aehnlichkeit(100)
        mapper.insert(neu)

        weg = mapper.find_by_key(2)
        mapper.delete(weg)
        result = mapper.find_all()
        print("los")
        for p in result:
            print(p)