示例#1
0
 def setUp(self):
     self.vet_1 = Vet("John", "Smith")
     self.owner_1 = Owner("Cpt.", "Jack", "Harkness", "07411000000", True)
     self.animal_1 = Animal("Tigger", datetime.date(2019, 5, 1), "Tiger",
                            self.owner_1)
     self.animal_2 = Animal("Roger", datetime.date(2018, 7, 2), "Rabbit",
                            self.owner_1, self.vet_1)
示例#2
0
    def setUp(self):
        test_vet_peter = Vet("Peter", False)
        test_vet_mark = Vet("Mark", False)
        test_vet_paul = Vet("Paul", False)

        test_owner_david = Owner("David", "Edinburgh", False)
        test_owner_carl = Owner("Carl", "liverpool", False)
        test_owner_jamie = Owner("Jamie", "Glasgow", False)
        test_owner_sarah = Owner("Sarah", "London", False)

        self.test_animal_pepper = Animal("Pepper", "10/11/2015", "Horse",
                                         test_owner_david, test_vet_paul,
                                         False)
        self.test_animal_luna = Animal("Mika", "01/03/2012", "Cat",
                                       test_owner_david, test_vet_mark, False)
        self.test_animal_buddy = Animal("Buddy", "19/01/2014", "Rabbit",
                                        test_owner_carl, test_vet_peter, False)
        self.test_animal_snowy = Animal("Snowy", "17/02/2015", "Dog",
                                        test_owner_carl, test_vet_peter, False)
        self.test_animal_lola = Animal("Lola", "04/08/2018", "Cow",
                                       test_owner_jamie, test_vet_peter, False)
        self.test_animal_apollo = Animal("Apollo", "22/03/2016", "Dog",
                                         test_owner_jamie, test_vet_paul,
                                         False)
        self.test_animal_buster = Animal("Buster", "29/04/2019", "Dog",
                                         test_owner_sarah, test_vet_paul,
                                         False)
        self.test_animal_izzy = Animal("Izzy", "30/05/2020", "Cat",
                                       test_owner_sarah, test_vet_mark, False)
示例#3
0
def get_animals_by_location(location_id):

    with sqlite3.connect("./kennel.db") as conn:
        conn.row_factory = sqlite3.Row
        db_cursor = conn.cursor()

        # Write the SQL query to get the information you want
        db_cursor.execute(
            """
        select
            a.id,
            a.name,
            a.breed,
            a.status,
            a.customer_id,
            a.location_id
        FROM Animal a
        WHERE a.location_id = ?
        """, (location_id, ))

        animals = []
        dataset = db_cursor.fetchall()

        for row in dataset:
            animal = Animal(row['id'], row['name'], row['breed'],
                            row['status'], row['customer_id'],
                            row['location_id'])
            animals.append(animal.__dict__)

    return json.dumps(animals)
示例#4
0
def get_single_animal(id):
    with sqlite3.connect("./kennel.db") as conn:
        conn.row_factory = sqlite3.Row
        db_cursor = conn.cursor()

        # Use a ? parameter to inject a variable's value
        # into the SQL statement.
        db_cursor.execute(
            """
        SELECT
            a.id,
            a.name,
            a.breed,
            a.status,
            a.customer_id,
            a.location_id
        FROM Animal a
        WHERE a.id = ?
        """, (id, ))

        # Load the single result into memory
        data = db_cursor.fetchone()

        # Create an animal instance from the current row
        animal = Animal(data['id'], data['name'], data['breed'],
                        data['status'], data['customer_id'],
                        data['location_id'])

        return json.dumps(animal.__dict__)
示例#5
0
def new():
    active_vets = vet_repository.select_all_active()
    if request.method == 'GET':
        return render_template("animals/new.html.j2", active_vets=active_vets)
    if request.method == 'POST':
        name = request.form['name']
        dob = request.form['dob']
        species = request.form['species']
        owner = owner_repository.select_id(1)
        vet_id = request.form['vet_id']
        deactivated = False
        vet = vet_repository.select_id(vet_id)
        animal = Animal(name, dob, species, owner, vet, deactivated)
        saved_animal = animal_repository.save(animal)
        if saved_animal.id != None:
            message = f"Success {saved_animal.name} added"
        else:
            message = "Failure"
        if request.form['action'] == "finish":
            return redirect(url_for("animals.index", message=message))
        elif request.form['action'] == "continue":
            return render_template("animals/new.html.j2",
                                   message=message,
                                   active_vets=active_vets)
    else:
        # POST Error 405 Method Not Allowed
        print("POST Error 405 Method Not Allowed")
示例#6
0
def update_animal(id):
    name = request.form['name']
    species = request.form['species']
    owner_id = request.form['owner_id']
    owner = owner_repository.select(owner_id)
    animal = Animal(name, species, owner, id)
    animal_repository.update(animal)
    return redirect('/animals')
def create():
    name = request.form['name']
    animal_type = request.form['animal_type']
    owner_id = request.form['owner_id']
    owner = owner_repository.select(owner_id)
    new_animal = Animal(name, animal_type, owner)
    animal_repository.save(new_animal)
    return redirect("/animals")
def select(id):
    sql = 'SELECT * FROM animals WHERE id = %s'
    values = [id]
    result = run_sql(sql, values)[0]
    animal = Animal(result['name'], result['dob'], result['type'],
                    result['owner_id'], result['vet_id'], result['id'],
                    result['treatment_notes'])
    return animal
示例#9
0
def create_animal():
    name = request.form['name']
    species = request.form['species']
    owner_id = request.form['owner_id']
    owner = owner_repository.select(owner_id)
    new_animal = Animal(name, species, owner)
    animal_repository.save(new_animal)
    return redirect('/animals')
示例#10
0
def select(id):
    animal = None
    sql = 'SELECT * FROM animals WHERE id = %s'
    values = [id]
    result = run_sql(sql, values)[0]
    if result is not None:
        owner = owner_repository.select(result['owner_id'])
        animal = Animal(result['name'], result['species'], owner, result['id'])
    return animal
示例#11
0
def select_all():
    animals = []
    sql = 'SELECT * FROM animals'
    results = run_sql(sql)

    for row in results:
        owner = owner_repository.select(row['owner_id'])
        animal = Animal(row['name'], row['species'], owner, row['id'])
        animals.append(animal)
    return animals
def update_animal(id):
    name = request.form["name"]
    date_of_birth = request.form["date_of_birth"]
    animal_type = request.form["animal_type"]
    treatment_notes = request.form["treatment_notes"]
    owner = request.form["owner_id"]
    animal = Animal(name, date_of_birth, animal_type, treatment_notes, owner,
                    id)
    animal_repository.update(animal)
    return redirect("/animals")
def create_animal():
    name = request.form["name"]
    date_of_birth = request.form["date_of_birth"]
    animal_type = request.form["animal_type"]
    treatment_notes = request.form["treatment_notes"]
    owner = owner_repository.select(request.form["owner_id"])
    new_animal = Animal(name, date_of_birth, animal_type, treatment_notes,
                        owner)
    animal_repository.save(new_animal)
    return redirect("/animals")
def create_animal():
    print(request.form)
    name = request.form["name"]
    dob = request.form["dob"]
    animal_type = request.form["animal_type"]
    notes = request.form["notes"]
    customer = customer_repository.select(request.form["customer_id"])
    animal = Animal(name, dob, animal_type, notes, customer)
    animal_repository.save(animal)
    return redirect("/animals")
def edit_animal(id):
    name = request.form["name"]
    dob = request.form["dob"]
    animal_type = request.form["animal_type"]
    treatment_notes = request.form["notes"]
    owner = owner_repository.select_owner(request.form["owner_id"])
    vet = vet_repository.select_vet(request.form["vet_id"])
    new_animal = Animal(name, dob, animal_type, owner, treatment_notes, vet, id)
    animal_repository.update_animal(new_animal)
    return redirect('/animals/'+id+'/more')
示例#16
0
def select(id):
    animal = None
    sql = "SELECT * FROM animals WHERE id = %s"
    values = [id]
    result = run_sql(sql, values)[0]
    if result is not None:
        owner = owner_repository.select(result['owner_id'])
        vet = vet_repository.select(result['vet_id'])
        animal = Animal(result['name'], result['type'], result['dob'], owner, vet, result['id'])
    return animal
示例#17
0
def select_all():
    animals = []
    sql = "SELECT * FROM animals"
    results = run_sql(sql)
    for row in results:
        owner = owner_repository.select(row['owner_id'])
        vet = vet_repository.select(row['vet_id'])
        animal = Animal(row['name'], row['type'], row['dob'], owner, vet, row['id'])
        animals.append(animal)
    return animals
示例#18
0
def detail(action, id):
    animal = animal_repository.select_id(id)
    len_treatments = len(treatment_repository.select_all_by_animal_id(id))
    if request.method == 'GET':
        if action == "show":
            return render_template("animals/show.html.j2",
                                   animal=animal,
                                   len_treatments=len_treatments)
        elif action == "edit":
            active_vets = vet_repository.select_all_active()
            return render_template("animals/edit.html.j2",
                                   animal=animal,
                                   active_vets=active_vets)
        elif action == "treatments":
            treatments = treatment_repository.select_all_by_animal_id(id)
            return render_template("animals/detail.html.j2",
                                   animal=animal,
                                   len_treatments=len_treatments,
                                   treatments=treatments)
        else:
            message = "Malformed URL"
            return redirect(url_for("animals.index", message=message))
    if request.method == 'POST':
        if action == "delete":
            animal_repository.delete_id(request.form['id'])
            message = f"Animal: {animal.name} (id:{animal.id}) deleted"
            return redirect(url_for("animals.index", message=message))
        elif action == "edit":
            name = request.form['name']
            dob = request.form['dob']
            species = request.form['species']
            owner_id = request.form['owner_id']
            vet_id = request.form['vet_id']
            try:
                deactivated = request.form['deactivated']
            except:
                deactivated = False
            id = request.form['id']
            vet = vet_repository.select_id(vet_id)
            owner = owner_repository.select_id(owner_id)
            animal = Animal(name, dob, species, owner, vet, deactivated, id)
            animal_repository.update(animal)
            message = f"Animal: {animal.name} (id:{animal.id}) updated"
            return redirect(url_for("animals.index", message=message))
        elif action == "deactivate":
            animal = animal_repository.select_id(id)
            animal.owner = owner_repository.select_id(1)
            animal.deactivated = True
            animal_repository.update(animal)
            message = f"{animal.name} moved to No Owner, please reassign"
            # I want an if statment to make thsi work too:  return redirect(url_for("owners.index", message=message))
            return redirect(url_for("animals.index", message=message))
        else:
            message = "Malformed URL"
            return redirect(url_for("animals.index", message=message))
示例#19
0
def update(id):
    name = request.form['name']
    type = request.form['type']
    dob = request.form['dob']
    owner_id = request.form['owner_id']
    vet_id = request.form['vet_id']
    owner = owner_repository.select(owner_id)
    vet = vet_repository.select(vet_id)
    animal = Animal(name, type, dob, owner, vet, id)
    animal_repository.update(animal)
    return redirect('/animals')
示例#20
0
def create():
    name = request.form["name"]
    dob = request.form["dob"]
    species = request.form["species"]
    breed = request.form["breed"]
    owner = owner_repository.select(request.form["owner_id"])
    vet = vet_repository.select(request.form["vet_id"])
    date_registered = datetime.datetime.now()
    animal = Animal(name, dob, species, breed, owner, vet, date_registered)
    animal_repository.save(animal)
    return redirect(f"/animals/{animal.id}")
示例#21
0
def select(animal_id):
    sql = "SELECT * FROM animals WHERE id = %s"
    values = [animal_id]
    result = run_sql(sql, values)

    if result:
        dict_animal = result[0]
        vet = vet_repository.select(dict_animal['vet_id']) if dict_animal['vet_id'] else None
        owner = owner_repository.select(dict_animal['owner_id'])
        animal = Animal(dict_animal['name'], dict_animal['dob'], dict_animal['animal_type'], owner, vet, dict_animal['img_url'], dict_animal['id'])
        return animal
def select(id):
    sql = "SELECT * FROM animals WHERE id = %s"
    values = [id]
    result = run_sql(sql, values)[0]
    owner = owner_repository.select(result["owner_id"])

    if result is not None:
        animal = Animal(result["name"], result["date_of_birth"],
                        result["animal_type"], result["treatment_notes"],
                        owner, result["id"])
    return animal
示例#23
0
def update(id):
    name = request.form["name"]
    dob = request.form["dob"]
    species = request.form["species"]
    breed = request.form["breed"]
    owner = owner_repository.select(request.form["owner_id"])
    vet = vet_repository.select(request.form["vet_id"])
    date_registered = request.form["date_registered"]
    animal = Animal(name, dob, species, breed, owner, vet, date_registered, id)
    animal_repository.update(animal)
    return redirect(f"/animals/{id}")
def select_all():
    animals = []
    sql = "SELECT * FROM animals"
    results = run_sql(sql)
    for result in results:
        owner = owner_repository.select(result["owner_id"])
        animal = Animal(result["name"], result["date_of_birth"],
                        result["animal_type"], result["treatment_notes"],
                        owner, result["id"])
        animals.append(animal)
    return animals
示例#25
0
def create():
    name = request.form['name']
    type = request.form['type']
    dob = request.form['dob']
    owner_id = request.form['owner']
    vet_id = request.form['vet']
    owner = owner_repository.select(owner_id)
    vet = vet_repository.select(vet_id)
    new_Animal = Animal(name, type, dob, owner, vet)
    animal_repository.save(new_Animal)
    return redirect("/animals")
def select_animal(id):
    sql = "SELECT * FROM animals WHERE id=%s"
    value = [id]
    result = run_sql(sql, value)[0]
    if result is not None:
        owner = owner_repository.select_owner(result["owner_id"])
        vet = vet_repository.select_vet(result["vet_id"])
        animal = Animal(result["name"], result["date_of_birth"],
                        result["animal_type"], owner,
                        result["treatment_notes"], vet, result["id"])
        return animal
def select(id):
    animal = None
    sql = "SELECT * FROM animals WHERE id = %s"
    values = [id]
    result = run_sql(sql, values)[0]

    if result is not None:
        customer = customer_repository.select(result['customer_id'])
        animal = Animal(result['name'], result['dob'], result['animal_type'],
                        result['notes'], customer, result['id'])
    return animal
示例#28
0
def select_id_owner(id):
    animals = []
    sql = "SELECT * FROM animals WHERE owner_id = %s"
    values = [id]
    results = run_sql(sql, values)
    for row in results:
        owner = owner_repository.select(row['owner_id'])
        vet = vet_repository.select(row['vet_id'])
        animal = Animal(row['name'], row['type'], row['dob'], owner, vet, row['id'])
        animals.append(animal)
    return animals
def select_all_animals():
    results = run_sql("SELECT * FROM animals WHERE archived=%s", ["FALSE"])
    animals = []
    for result in results:
        owner = owner_repository.select_owner(result["owner_id"])
        vet = vet_repository.select_vet(result["vet_id"])
        animal = Animal(result["name"], result["date_of_birth"],
                        result["animal_type"], owner,
                        result["treatment_notes"], vet, result["id"])
        animals.append(animal)
    return animals
def select_all():
    animals = []
    sql = 'SELECT * FROM animals'
    results = run_sql(sql)
    for result in results:
        owner = owner_repository.select(result['owner_id'])
        vet = vet_repository.select(result['vet_id'])
        animal = Animal(result['name'], result['dob'], result['type'], owner,
                        vet, result['id'], result['treatment_notes'])
        animals.append(animal)
    return animals