예제 #1
0
def delete_all_values(request):

    stack = []

    nbr_activities = 0
    for activity in Session.query(Activity).all():

        nbr_changesets = 0
        for changeset in Session.query(A_Changeset).filter(A_Changeset.fk_activity == activity.id).all():
            Session.delete(changeset)
            nbr_changesets += 1

        nbr_tag_groups = 0
        for tag_group in Session.query(A_Tag_Group).filter(A_Tag_Group.fk_activity == activity.id).all():
            tag_group.fk_a_tag = None
            Session.flush()

            nbr_tags = 0
            for tag in Session.query(A_Tag).join(A_Tag_Group, A_Tag_Group.id == A_Tag.fk_a_tag_group).join(Activity).filter(and_(A_Tag.fk_a_tag_group == tag_group.id,
                                                                                                                            A_Tag_Group.fk_activity == activity.id)).all():

                Session.delete(tag)
                nbr_tags += 1

            Session.flush()
            Session.delete(tag_group)
            nbr_tag_groups += 1

        Session.delete(activity)
        nbr_activities += 1

    try:
        stack.append(str(nbr_changesets) + ' changesets deleted.')
        stack.append(str(nbr_tags) + ' tags deleted.')
        stack.append(str(nbr_tag_groups) + ' tag groups deleted.')
        stack.append(str(nbr_activities) + ' activities deleted.')
    except UnboundLocalError:
        pass

    return {'messagestack': stack}