def view_task(request, uid, return_context=False): task = Task.get(uid)[0] # Replace newlines with <br>, etc. task["definition"] = clean_html(task["definition"]) contrasts = Task.get_contrasts(task["id"]) # Make a lookup dictionary based on concept id concept_lookup = dict() for contrast in contrasts: contrast_concepts = Contrast.get_concepts(contrast["contrast_id"]) for concept in contrast_concepts: concept_lookup = update_lookup(concept_lookup, concept["concept_id"], contrast) # Retrieve conditions, make associations with contrasts conditions = Task.get_conditions(uid) context = { "task": task, "concepts": concept_lookup, "contrasts": contrasts, "conditions": conditions, "domain": DOMAIN } if return_context == True: return context return render(request, 'atlas/view_task.html', context)
class NodeChildrenTest(TestCase): def setUp(self): self.task = Task() self.node_name = "test_name" self.node_properties = {'test_key': 'test_value'} self.graph = Graph("http://graphdb:7474/db/data/") self.task1 = self.task.create( name=self.node_name, properties=self.node_properties) self.task2 = self.task.create( name=self.node_name, properties=self.node_properties) condition = Condition() self.cond = condition.create( name=self.node_name, properties=self.node_properties) contrast = Contrast() self.cont = contrast.create( name=self.node_name, properties=self.node_properties) concept = Concept() self.con = concept.create( name=self.node_name, properties=self.node_properties) self.task.link( self.task1.properties['id'], self.cond.properties['id'], "HASCONDITION", endnode_type='condition') self.task.link( self.task1.properties['id'], self.con.properties['id'], "ASSERTS", endnode_type='concept') condition.link( self.cond.properties['id'], self.cont.properties['id'], "HASCONTRAST", endnode_type='contrast') concept.link( self.con.properties['id'], self.cont.properties['id'], "MEASUREDBY", endnode_type='contrast') def tearDown(self): self.task1.delete_related() self.task2.delete_related() self.cond.delete_related() self.cont.delete_related() self.con.delete_related() self.task1.delete() self.task2.delete() self.cond.delete() self.cont.delete() self.con.delete() def test_task_get_contrasts(self): contrasts = self.task.get_contrasts(self.task1.properties['id']) self.assertEqual(len(contrasts), 1) self.assertEqual( contrasts[0]['contrast_id'], self.cont.properties['id']) def test_task_get_conditions(self): conditions = self.task.get_conditions(self.task1.properties['id']) self.assertEqual(len(conditions), 1) self.assertEqual( conditions[0]['condition_id'], self.cond.properties['id']) def test_contrast_get_conditions(self): contrast = Contrast() conditions = contrast.get_conditions(self.cont.properties['id']) self.assertEqual(len(conditions), 1) self.assertEqual( conditions[0]['condition_id'], self.cond.properties['id']) def test_contrast_get_concepts(self): contrast = Contrast() concepts = contrast.get_concepts(self.cont.properties['id']) self.assertEqual(len(concepts), 1) self.assertEqual(concepts[0]['concept_id'], self.con.properties['id']) def test_contrast_get_tasks(self): contrast = Contrast() tasks = contrast.get_tasks(self.cont.properties['id']) self.assertEqual(len(tasks), 1) self.assertEqual(tasks[0]['task_id'], self.task1.properties['id'])