Esempio n. 1
0
 def test_get_next_nodes(self):
     self.assertEqual([], get_next_nodes(get_state_by_name("Hired")))
     self.assertEqual([
         get_state_by_name("No response"),
         get_state_by_name("Negative response"),
         get_state_by_name("Positive response")
     ], get_next_nodes(get_state_by_name("First message")))
Esempio n. 2
0
    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,
        }