@@ -26,6 +26,7 @@ def get_practices(): | |||
@practice.route('/practices/<int:practice_id>') | |||
def show_practice(practice_id): | |||
practice = get_full_resource(practice_id) | |||
practice.references = replace_urls(practice.references) | |||
return render_template('resource.html', resource=practice) | |||
# route for editing a single practice based on the ID in the database |
@@ -33,6 +33,36 @@ def get_relationships(primary_id): | |||
links.extend(Resource.query.filter_by(id=primary_id).all()) | |||
return links | |||
# function to append relationships to a resource object | |||
def append_relationships(resource): | |||
relationships = get_relationships(resource.id) | |||
if relationships: | |||
for relationship in relationships: | |||
if relationship.type == 'tool': | |||
if 'tools' not in resource.__dict__.keys(): | |||
resource.__dict__['tools'] = relationship | |||
elif type(resource.__dict__['tools']) == list: | |||
resource.__dict__['tools'].append(relationship) | |||
else: | |||
resource.__dict__['tools'] = [resource.__dict__['tools'], relationship] | |||
elif relationship.type == 'practice': | |||
if 'practices' not in resource.__dict__.keys(): | |||
resource.__dict__['practices'] = relationship | |||
elif type(resource.__dict__['practices']) == list: | |||
resource.__dict__['practices'].append(relationship) | |||
else: | |||
resource.__dict__['practices'] = [resource.__dict__['practices'], relationship] | |||
elif relationship.type == 'book': | |||
if 'books' not in resource.__dict__.keys(): | |||
resource.__dict__['books'] = relationship | |||
elif type(resource.__dict__['books']) == list: | |||
resource.__dict__['books'].append(relationship) | |||
else: | |||
resource.__dict__['books'] = [resource.__dict__['books'], relationship] | |||
return resource | |||
else: | |||
return resource | |||
# function to add a relationship to a linked resource | |||
def add_relationship(resource_id, linked_resource_id): | |||
first_resource_id = resource_id |
@@ -26,32 +26,11 @@ def get_resource(resource_id): | |||
# function to retrieve data about a resource and its relationships | |||
def get_full_resource(resource_id): | |||
resource = get_resource(resource_id) | |||
relationships = get_relationships(resource_id) | |||
for relationship in relationships: | |||
if relationship.type == 'tool': | |||
if 'tools' not in resource.__dict__.keys(): | |||
resource.__dict__['tools'] = relationship | |||
elif type(resource.__dict__['tools']) == list: | |||
resource.__dict__['tools'].append(relationship) | |||
else: | |||
resource.__dict__['tools'] = [resource.__dict__['tools'], relationship] | |||
elif relationship.type == 'practice': | |||
if 'practices' not in resource.__dict__.keys(): | |||
resource.__dict__['practices'] = relationship | |||
elif type(resource.__dict__['practices']) == list: | |||
resource.__dict__['practices'].append(relationship) | |||
else: | |||
resource.__dict__['practices'] = [resource.__dict__['practices'], relationship] | |||
elif relationship.type == 'book': | |||
if 'books' not in resource.__dict__.keys(): | |||
resource.__dict__['books'] = relationship | |||
elif type(resource.__dict__['books']) == list: | |||
resource.__dict__['books'].append(relationship) | |||
else: | |||
resource.__dict__['books'] = [resource.__dict__['books'], relationship] | |||
resource = append_relationships(resource) | |||
if resource.type == 'book': | |||
book_data = get_book_data(resource.isbn) | |||
resource.__dict__.update(book_data) | |||
if book_data: | |||
resource.__dict__.update(book_data) | |||
return resource | |||
# function to delete a single resource |