Exemplo n.º 1
0
def get_company_name_by_pid(idx):
    positions = data_manager.imports_from_file("position/positions.txt")
    c_id = -1

    for position in positions:
        if position[0] == idx:
            c_id = position[3]
            break

    companies = data_manager.imports_from_file("company/companies.txt")

    for company in companies:
        if company[0] == c_id:
            return company[1]
Exemplo n.º 2
0
def read_position(table, idx):
    options = ["ID", "Description", "Seats", "Company"]
    mydict = common.read_element(table, idx, options)
    mydict["Company"] = get_company_data(
        data_manager.imports_from_file("company/companies.txt"),
        mydict["Company"], "name")
    return mydict
Exemplo n.º 3
0
def get_student_applications(idx, mydict):
    applications = data_manager.imports_from_file(
        "application/applications.txt")
    options = ["Application ID", "Status", "Position"]
    title = ""
    app_count = 0

    for i, item in enumerate(applications):
        if item[2] == idx:
            app_count += 1
            for n in range(len(item)):
                if n < 3:
                    title = f"{app_count}_{options[n]}"
                else:
                    continue

                if n == 2:
                    mydict.update({title: get_position_by_id(item[-1])})
                    mydict.update({
                        f"{app_count}_Company":
                        get_company_name_by_pid(item[-1])
                    })
                else:
                    mydict.update({title: item[n]})

    return mydict
Exemplo n.º 4
0
def choose():
    myfile = "position/positions.txt"
    option = ui.get_inputs("\nPlease enter a number: ")
    table = data_manager.imports_from_file(myfile)
    if option == "1":
        ui.clear()
        data_manager.export_to_file(myfile, create_position(table))
    elif option == "2":
        ui.clear()
        idx = ui.get_inputs("Enter the position ID: ")
        if common.check_valid_id(table, idx) == False:
            ui.clear()
            ui.print_error(f"Invalid position ID! ('{idx}')")
        else:
            ui.print_result(
                get_applied_students(read_position(table, idx), idx),
                "Position details")
    elif option == "3":
        ui.clear()
        result = common.read_elements(table)
        if len(result) == 0:
            ui.clear()
            ui.print_error("There are no positions in this list!")
        else:
            show_table(format_seats(result))
    elif option == "4":
        ui.clear()
        idx = ui.get_inputs("Enter position ID: ")
        if common.check_valid_id(table, idx) == False:
            ui.clear()
            ui.print_error(f"Invalid position ID! ('{idx}')")
        else:
            data_manager.export_to_file(
                myfile,
                update_position(
                    table, idx, "description",
                    ui.get_inputs(
                        "Enter the new value of the description.\n")))
    elif option == "5":
        ui.clear()
        idx = ui.get_inputs("Enter position ID: ")
        if common.check_valid_id(table, idx) == False:
            ui.clear()
            ui.print_error(f"Invalid position ID! ('{idx}')")
            return True

        if common.check_data_in_app(idx, "position") == True:
            ui.clear()
            ui.print_error("You cannot delete this position!")
        else:
            data_manager.export_to_file(myfile,
                                        common.delete_element(table, idx))
    elif option == "0":
        ui.clear()
        return False
    else:
        raise KeyError(f"There is no such option. ({option})")
    return True
Exemplo n.º 5
0
def create_position(table):
    options = [
        "Enter a description: ", "Enter the number of seats: ",
        "Enter the company name: "
    ]

    table.append(common.create_element(table, options))
    table[-1][-1] = get_company_data(
        data_manager.imports_from_file("company/companies.txt"), table[-1][-1],
        "id")
    return table
Exemplo n.º 6
0
def get_position_applies(idx):
    applications = data_manager.imports_from_file(
        "application/applications.txt")
    count = 0

    for item in applications:
        if item[-1] == idx:
            if item[1] == "applied":
                count += 1

    return count
Exemplo n.º 7
0
def get_applied_students(mydict, idx):
    applications = data_manager.imports_from_file(
        "application/applications.txt")

    for item in applications:
        if item[-1] == idx:
            if item[1] == "applied":
                if "Students" not in mydict:
                    mydict.update({"Students": [get_student_name(item[2])]})
                else:
                    mydict["Students"].append(get_student_name(item[2]))

    return mydict
Exemplo n.º 8
0
def check_data_in_app(idx, data):
    applications = data_manager.imports_from_file(
        "application/applications.txt")

    if data == "student":
        index = -2
    elif data == "position":
        index = -1

    for item in applications:
        if item[index] == idx:
            return True

    return False
Exemplo n.º 9
0
def get_student_name(idx):
    students = data_manager.imports_from_file("student/students.txt")

    for student in students:
        if student[0] == idx:
            return student[1]
Exemplo n.º 10
0
    def test_imports_from_file(self):
        actual = data_manager.imports_from_file(self.test_filename)

        self.assertListEqual(actual, self.test_list)
Exemplo n.º 11
0
def choose():
    myfile = "student/students.txt"
    option = ui.get_inputs("\nPlease enter a number: ")
    table = data_manager.imports_from_file(myfile)
    if option == "1":
        ui.clear()
        data_manager.export_to_file(myfile, create_student(table))
    elif option == "2":
        ui.clear()
        idx = ui.get_inputs("Enter the student ID: ")
        if common.check_valid_id(table, idx) == False:
            ui.clear()
            ui.print_error(f"Invalid student ID! ('{idx}')")
        else:
            result = get_student_applications(idx, read_student(table, idx))
            ui.print_result(result, "Student details")
    elif option == "3":
        ui.clear()
        result = read_students(table)
        if len(result) == 0:
            ui.clear()
            ui.print_error("There are no students in this list!")
        else:
            show_table(result)
    elif option == "4":
        ui.clear()
        attributes = ["name", "age", "status"]
        idx = ui.get_inputs("Enter student ID: ")
        if common.check_valid_id(table, idx) == False:
            ui.clear()
            ui.print_error(f"Invalid student ID! ('{idx}')")
            return True
        update = ui.get_inputs("Which attribute do you want to change?\n")
        update = update.lower()
        if update not in attributes:
            ui.clear()
            ui.print_error(f"You cannot change this attribute! ('{update}')")
        else:
            data_manager.export_to_file(
                myfile,
                update_student(
                    table, idx, update,
                    ui.get_inputs(f"Enter the new value of the {update}.\n")))
    elif option == "5":
        ui.clear()
        idx = ui.get_inputs("Enter student ID: ")
        if common.check_valid_id(table, idx) == False:
            ui.clear()
            ui.print_error(f"Invalid student ID! ('{idx}')")
        else:
            data_manager.export_to_file(
                myfile,
                update_student(table, idx, "status",
                               get_new_status(table, idx)))
    elif option == "6":
        ui.clear()
        idx = ui.get_inputs("Enter student ID: ")
        if common.check_valid_id(table, idx) == False:
            ui.clear()
            ui.print_error(f"Invalid student ID! ('{idx}')")
            return True

        if common.check_data_in_app(idx, "student") == True:
            ui.clear()
            ui.print_error("You cannot delete this student!")
        else:
            data_manager.export_to_file(myfile,
                                        common.delete_element(table, idx))
    elif option == "0":
        ui.clear()
        return False
    else:
        raise KeyError(f"There is no such option. ({option})")
    return True
Exemplo n.º 12
0
def get_position_by_id(idx):
    positions = data_manager.imports_from_file("position/positions.txt")

    for position in positions:
        if position[0] == idx:
            return position[1]
Exemplo n.º 13
0
def choose():
    myfile = "application/applications.txt"
    option = ui.get_inputs("\nPlease enter a number: ")
    table = data_manager.imports_from_file(myfile)
    if option == "1":
        ui.clear()
        pos_name = ui.get_inputs("Enter a position name to apply: ")
        positions = data_manager.imports_from_file("position/positions.txt")
        student_id = ui.get_inputs("Enter a student id to apply: ")
        students = data_manager.imports_from_file("student/students.txt")
        opt = ui.get_inputs("Enter the status(applied/not applied): ")
        if common.check_valid_id(positions,
                                 pos_name) == False or common.check_valid_id(
                                     students, student_id) == False:
            ui.clear()
            ui.print_error("Non existing position or student!")
        else:
            if opt != "applied" and opt != "not applied":
                ui.clear()
                ui.print_error("Thats not an option")
            else:
                data_manager.export_to_file(
                    myfile,
                    create_applicaion(table, opt, pos_name, student_id,
                                      positions))
    elif option == "2":  ##Update Applications
        ui.clear()
        idx = ui.get_inputs("Enter application ID: ")
        if common.check_valid_id(table, idx) == False:
            ui.clear()
            ui.print_error(f"Invalid application ID! ('{idx}')")
            return True
        else:
            if common.check_if_applied(table, idx) == True:
                ui.clear()
                ui.print_error("You cant modify not applied status")
            else:
                for row in table:
                    if row[0] == idx:
                        row[1] = "not applied"
                data_manager.export_to_file(myfile, table)
    elif option == "3":
        ui.clear()
        idx = ui.get_inputs("Enter application ID: ")
        if common.check_valid_id(table, idx) == False:
            ui.clear()
            ui.print_error(f"Invalid application ID! ('{idx}')")
        else:
            data_manager.export_to_file(myfile,
                                        common.delete_element(table, idx))
    elif option == "4":
        ui.clear()
        result = common.read_elements(table)
        if len(result) == 0:
            ui.clear()
            ui.print_error("There are no application in this list!")
        else:
            show_table(result)
    elif option == "0":
        ui.clear()
        return False
    else:
        raise KeyError(f"There is no such option. ({option})")
    return True