def test_get_previous_nodes(self): self.assertEqual([], get_previous_nodes(get_state_by_name("New"))) self.assertEqual([ get_state_by_name("First meeting"), get_state_by_name("More than one meeting") ], get_previous_nodes(get_state_by_name("Resigned")))
def to_json(self): id = { 'id': self.pk, } photo = { 'photo': self.photo_url, 'notifications': [{ 'message': str(msg) } for msg in self.get_person_notifications()] } candidate_name = { 'candidate_id': self.pk, 'candidate_name': str(self), } contact = { 'candidate_id': self.pk, 'candidate_name': str(self), 'linkedin': self.linkedin, 'goldenline': self.goldenline, 'email': self.email, } previous_states = get_previous_nodes(self.state) next_states = get_next_nodes(self.state) state = { 'raw_state_name': str(self.state.get_name()), 'state_name': str(self.state), 'current_state_started': str(self.current_state_started.date()), 'state_view': render_to_string('state.html', { 'person_id': self.pk, 'previous_states': previous_states, 'next_states': next_states, 'state_view': str(self.state) }), 'state_history': [ { 'start_date': str(oldState.start_date.date()), 'change_date': str(oldState.change_date.date()), 'state': str(oldState.state) } for oldState in OldState.objects.filter( person_id=self.pk).order_by('-change_date') ] } attachments = { 'candidate_id': self.pk, 'attachments': [{ 'display_name': str(a), 'pk': a.pk } for a in Attachment.objects.filter(person_id=self.pk)] } caveats = { 'candidate_id': self.pk, 'candidate_name': str(self), 'caveats': self.caveats } return { 'id': id, 'photo': photo, 'candidate_name': candidate_name, 'contact': contact, 'state': state, 'attachments': attachments, 'caveats': caveats, }