Exemple #1
0
def delete_person(dbo, username, personid):
    """
    Deletes a person and all its satellite records.
    """
    l = dbo.locale
    if db.query_int(dbo, "SELECT COUNT(ID) FROM adoption WHERE OwnerID=%d OR RetailerID=%d" % (personid, personid)):
        raise utils.ASMValidationError(_("This person has movements and cannot be removed.", l))
    if db.query_int(dbo, "SELECT COUNT(ID) FROM animal WHERE BroughtInByOwnerID=%d OR OriginalOwnerID=%d OR CurrentVetID=%d OR OwnersVetID=%d" % (personid, personid, personid, personid)):
        raise utils.ASMValidationError(_("This person is linked to an animal and cannot be removed.", l))
    if db.query_int(dbo, "SELECT COUNT(ID) FROM ownerdonation WHERE OwnerID=%d" % personid):
        raise utils.ASMValidationError(_("This person has donations and cannot be removed.", l))
    animals = db.query(dbo, "SELECT AnimalID FROM adoption WHERE OwnerID = %d" % personid)
    audit.delete(dbo, username, "owner", str(db.query(dbo, "SELECT * FROM owner WHERE ID=%d" % personid)))
    db.execute(dbo, "DELETE FROM media WHERE LinkID = %d AND LinkTypeID = %d" % (personid, 1))
    db.execute(dbo, "DELETE FROM diary WHERE LinkID = %d AND LinkType = %d" % (personid, 2))
    db.execute(dbo, "DELETE FROM log WHERE LinkID = %d AND LinkType = %d" % (personid, 1))
    db.execute(dbo, "DELETE FROM additional WHERE LinkID = %d AND LinkType IN (%s)" % (personid, additional.PERSON_IN))
    db.execute(dbo, "DELETE FROM adoption WHERE OwnerID = %d" % personid)
    db.execute(dbo, "DELETE FROM ownerdonation WHERE OwnerID = %d" % personid)
    db.execute(dbo, "DELETE FROM ownervoucher WHERE OwnerID = %d" % personid)
    dbfs.delete_path(dbo, "/owner/%d" % personid)
    db.execute(dbo, "DELETE FROM owner WHERE ID = %d" % personid)
    # Now that we've removed the person, update any animals that were previously
    # attached to it so that they return to the shelter.
    for a in animals:
        animal.update_animal_status(dbo, int(a["ANIMALID"]))
        animal.update_variable_animal_data(dbo, int(a["ANIMALID"]))
Exemple #2
0
def delete_foundanimal(dbo, username, aid):
    """
    Deletes a found animal
    """
    dbo.delete("media", "LinkID=%d AND LinkTypeID=%d" % (aid, media.FOUNDANIMAL), username)
    dbo.delete("diary", "LinkID=%d AND LinkType=%d" % (aid, diary.FOUNDANIMAL), username)
    dbo.delete("log", "LinkID=%d AND LinkType=%d" % (aid, log.FOUNDANIMAL), username)
    dbo.execute("DELETE FROM additional WHERE LinkID = %d AND LinkType IN (%s)" % (aid, additional.FOUNDANIMAL_IN))
    dbo.delete("animalfound", aid, username)
    dbfs.delete_path(dbo, "/foundanimal/%d" % aid)
Exemple #3
0
def delete_lostanimal(dbo, username, aid):
    """
    Deletes a lost animal
    """
    dbo.delete("media", "LinkID=%d AND LinkTypeID=%d" % (aid, media.LOSTANIMAL), username)
    dbo.delete("diary", "LinkID=%d AND LinkType=%d" % (aid, diary.LOSTANIMAL), username)
    dbo.delete("log", "LinkID=%d AND LinkType=%d" % (aid, log.LOSTANIMAL), username)
    dbo.execute("DELETE FROM additional WHERE LinkID = %d AND LinkType IN (%s)" % (aid, additional.LOSTANIMAL_IN))
    dbo.delete("animallost", aid, username)
    dbfs.delete_path(dbo, "/lostanimal/%d" % aid)
Exemple #4
0
def delete_person(dbo, username, personid):
    """
    Deletes a person and all its satellite records.
    """
    l = dbo.locale
    if db.query_int(
            dbo,
            "SELECT COUNT(ID) FROM adoption WHERE OwnerID=%d OR RetailerID=%d"
            % (personid, personid)):
        raise utils.ASMValidationError(
            _("This person has movements and cannot be removed.", l))
    if db.query_int(
            dbo,
            "SELECT COUNT(ID) FROM animal WHERE BroughtInByOwnerID=%d OR OriginalOwnerID=%d OR CurrentVetID=%d OR OwnersVetID=%d"
            % (personid, personid, personid, personid)):
        raise utils.ASMValidationError(
            _("This person is linked to an animal and cannot be removed.", l))
    if db.query_int(
            dbo,
            "SELECT COUNT(ID) FROM ownerdonation WHERE OwnerID=%d" % personid):
        raise utils.ASMValidationError(
            _("This person has donations and cannot be removed.", l))
    animals = db.query(
        dbo, "SELECT AnimalID FROM adoption WHERE OwnerID = %d" % personid)
    audit.delete(
        dbo, username, "owner",
        str(db.query(dbo, "SELECT * FROM owner WHERE ID=%d" % personid)))
    db.execute(
        dbo, "DELETE FROM media WHERE LinkID = %d AND LinkTypeID = %d" %
        (personid, 1))
    db.execute(
        dbo, "DELETE FROM diary WHERE LinkID = %d AND LinkType = %d" %
        (personid, 2))
    db.execute(
        dbo,
        "DELETE FROM log WHERE LinkID = %d AND LinkType = %d" % (personid, 1))
    db.execute(
        dbo, "DELETE FROM additional WHERE LinkID = %d AND LinkType IN (%s)" %
        (personid, additional.PERSON_IN))
    db.execute(dbo, "DELETE FROM adoption WHERE OwnerID = %d" % personid)
    db.execute(dbo, "DELETE FROM ownerdonation WHERE OwnerID = %d" % personid)
    db.execute(dbo, "DELETE FROM ownervoucher WHERE OwnerID = %d" % personid)
    dbfs.delete_path(dbo, "/owner/%d" % personid)
    db.execute(dbo, "DELETE FROM owner WHERE ID = %d" % personid)
    # Now that we've removed the person, update any animals that were previously
    # attached to it so that they return to the shelter.
    for a in animals:
        animal.update_animal_status(dbo, int(a["ANIMALID"]))
        animal.update_variable_animal_data(dbo, int(a["ANIMALID"]))
Exemple #5
0
def delete_waitinglist(dbo, username, wid):
    """
    Deletes a waiting list record
    """
    dbo.delete("media",
               "LinkID=%d AND LinkTypeID=%d" % (wid, media.WAITINGLIST),
               username)
    dbo.delete("diary", "LinkID=%d AND LinkType=%d" % (wid, diary.WAITINGLIST),
               username)
    dbo.delete("log", "LinkID=%d AND LinkType=%d" % (wid, log.WAITINGLIST),
               username)
    dbo.execute(
        "DELETE FROM additional WHERE LinkID = %d AND LinkType IN (%s)" %
        (wid, additional.WAITINGLIST_IN))
    dbo.delete("animalwaitinglist", wid, username)
    dbfs.delete_path(dbo, "/waitinglist/%d" % wid)
Exemple #6
0
def delete_animalcontrol(dbo, username, acid):
    """
    Deletes an animal control record
    """
    dbo.delete("media",
               "LinkID=%d AND LinkTypeID=%d" % (acid, media.ANIMALCONTROL),
               username)
    dbo.delete("diary",
               "LinkID=%d AND LinkType=%d" % (acid, diary.ANIMALCONTROL),
               username)
    dbo.delete("log", "LinkID=%d AND LinkType=%d" % (acid, log.ANIMALCONTROL),
               username)
    dbo.execute(
        "DELETE FROM additional WHERE LinkID = %d AND LinkType IN (%s)" %
        (acid, additional.INCIDENT_IN))
    dbo.delete("animalcontrol", acid, username)
    dbfs.delete_path(dbo, "/animalcontrol/%d" % acid)
Exemple #7
0
 def test_create_path(self):
     dbfs.create_path(base.get_dbo(), "/", "test")
     dbfs.delete_path(base.get_dbo(), "test")
     dbfs.delete(base.get_dbo(), "test")
     dbfs.delete_filepath(base.get_dbo(), "/test")
Exemple #8
0
 def test_create_path(self):
     dbfs.create_path(base.get_dbo(), "/", "test")
     dbfs.delete_path(base.get_dbo(), "test")
     dbfs.delete(base.get_dbo(), "test")
     dbfs.delete_filepath(base.get_dbo(), "/test")