예제 #1
0
def add_phone_number(contact):
    new_number = get_phone_number_input()

    # Kontakt ändern
    contact["Rufnummern"].append(new_number)

    # Geänderten Kontakt in DB schreiben
    crud_db.update(contact)
    made_changes = True
예제 #2
0
def change_email(contact):
    # Alle E-Mails eines Kontaktes ausgeben.
    print("\nDer Kontakt hat folgende E-Mail-Adressen: ")
    counter = 0
    for item in contact["E-Mail-Adressen"]:
        counter = counter + 1
        print(str(counter) + ":   " + item["Typ"] + ": " + item["E-Mail"])

    # Abfrage, welche E-Mail geändert werden soll.
    repeat = True
    while repeat:
        index = input(
            "\nWelche E-Mail-Adresse möchten sie bearbeiten? ('cancel' für Abbrechen)"
        )
        if is_number(index):
            index = int(index)
            # Überprüfen, ob der angegebene Index existiert.
            if index > 0 and index <= len(contact["E-Mail-Adressen"]):
                repeat = False
                # Abfrage, ob die E-Mail geändert oder gelöscht werden soll.
                repeat2 = True
                while repeat2:
                    change_or_delete = input(
                        "Möchten Sie die E-Mail-Adresse ändern (change) oder löschen (delete)? ('cancel' für Abbrechen)"
                    )
                    if change_or_delete == "change":
                        repeat2 = False
                        contact["E-Mail-Adressen"][index -
                                                   1] = get_email_input()

                        # Geänderten Kontakt in DB schreiben
                        crud_db.update(contact)
                        made_changes = True
                        print("Erfolgreich geändert!")
                    elif change_or_delete == "delete":
                        repeat2 = False
                        del contact["E-Mail-Adressen"][index - 1]

                        # Geänderten Kontakt in DB schreiben
                        crud_db.update(contact)
                        made_changes = True
                        print("Erfolgreich gelöscht!")
                    elif change_or_delete == "cancel":
                        repeat2 = False
                        print("Abgebrochen")
                    else:
                        print("Falsche Eingabe!")
            else:
                print("Dieser Index ist nicht vergeben!")
        elif index == "cancel":
            print("Abgebrochen!")
        else:
            print("Bitte einen Index angeben!")
예제 #3
0
def change_contact():
    # 1. Liste auf Einträge prüfen.
    # 2. Position (Kontakt) auswählen.
    # 3. Die zu bearbeitende Spalte auswählen.
    # 4. Falls Email oder Rufnummer: bearbeiten oder neues Objekt hinzufügen
    #    Entsprechende change und add Funktionen aufrufen.
    # 5. Falls Name, Straße etc. nach Input abfragen.

    # Überprüfen, ob die Liste leer ist.
    if crud_db.get_len() == 0:
        print("Die Liste ist leer!")
    else:
        repeat = True
        while repeat:
            contact_index = input(
                "--> Welche Position möchten Sie ändern? ('cancel' für Abbrechen)"
            )

            # Prüfen, ob die Eingabe numerisch ist und ob die Position existiert.
            if contact_index.isnumeric():
                contact_index = int(contact_index)

                # Kontakt als Variable festhalten.
                contact = crud_db.search_by_id(contact_index)

                # Wenn Contact auch einen Kontakt enthält
                if not contact == -1:
                    repeat = False

                    # Abfragen, welche Spalte geändert werden soll.
                    repeat2 = True
                    while repeat2:
                        print("")
                        print(
                            "Welche Spalte möchten Sie bearbeiten?\n"
                            "1: Anrede   2: Name    3: Vorname       4: Straße            5: Hausnummer"
                        )
                        print(
                            "6: PLZ      7: Stadt   8: Rufnummern    9: E-Mail-Adressen  10: Abbrechen"
                        )
                        print("")
                        column_index = input("Ihre Eingabe:")

                        # Überprüfen, ob Eingabe numerisch und kleiner 11.
                        if column_index.isnumeric():
                            column_index = int(column_index)
                            if column_index < 10 and column_index > 0:
                                repeat2 = False
                                # Änderung wird abgebrochen.
                                if column_index == 11:
                                    repeat2 = False

                                # Spalte wurde ausgewählt und entsprechende Abfrage wird ausgeführt.
                                else:
                                    # Liste, um die Strings den Funktionen get_input und change_column zu übergeben.
                                    columns = [
                                        "Anrede", "Name", "Vorname", "Straße",
                                        "Hausnummer", "PLZ", "Stadt",
                                        "Rufnummern", "E-Mail-Adressen"
                                    ]
                                    column = columns[column_index - 1]

                                    # Überprüfen, ob Rufnummern oder E-Mail-Adressen geändert werden sollen.
                                    if column == "Rufnummern":
                                        repeat3 = True
                                        while repeat3:
                                            change_or_add = input(
                                                "Möchten Sie eine Rufummer bearbeiten (change) oder hinzufügen (new)? ('cancel' für abbrechen)"
                                            )
                                            if change_or_add == "change":
                                                change_phone_number(contact)
                                                repeat3 = False
                                            elif change_or_add == "new":
                                                add_phone_number(contact)
                                                repeat3 = False
                                            elif change_or_add == "cancel":
                                                print("Abgebrochen!")
                                                return
                                            else:
                                                print("Falsche Eingabe!")
                                    elif column == "E-Mail-Adressen":
                                        repeat3 = True
                                        while repeat3:
                                            change_or_add = input(
                                                "Möchten Sie eine E-Mail-Adresse bearbeiten (change) oder hinzufügen (new)? ('cancel' für abbrechen)"
                                            )
                                            if change_or_add == "change":
                                                change_email(contact)
                                                repeat3 = False
                                            elif change_or_add == "new":
                                                add_email(contact)
                                                repeat3 = False
                                            elif change_or_add == "cancel":
                                                print("Abgebrochen!")
                                                return
                                            else:
                                                print("Falsche Eingabe!")

                                    else:
                                        old_value = contact[column]
                                        new_value = get_input(column)
                                        # Alten Wert überschreiben
                                        contact[column] = new_value

                                        # In DB schreiben
                                        crud_db.update(contact)
                                        made_changes = True
                                        print("Die Spalte wurde geändert!")

                            else:
                                print("Bitte einen Wert von 1 bis 9 eingeben!")
                        else:
                            print("Bitte eine Nummer eingeben!")
                else:
                    print("Falsche Eingabe!")

            elif contact_index == "cancel":
                print("Abgebrochen!")
                return
            else:
                print("Falsche Eingabe!")
예제 #4
0
def add_email(contact):
    new_email = get_email_input()
    contact["E-Mail-Adressen"].append(new_email)
    crud_db.update(contact)
    made_changes = True