def action(user_object, message, event):
        work_item = user_object.get_work_item()
        user_email = str(event['user']['email'])
        user_email = user_email.split("@")[0] + '@staff.gramedia.com'
        work_item.requested_by = user_email

        if message == "Fill your own..":
            work_item.save()
            user_object.state = OtherSoftwareType.STATE_LABEL
            user_object.save()

            send_message(text_format("Please enter your own software type"), user_object.name)
            return generate_update_response(text_format("You have chosen `%s`" % message))

        work_item.third_party = message
        work_item.save()
        user_object.state = SeverityChoice.STATE_LABEL
        user_object.save()

        if user_object.is_finished:
            user_object.state = EndState.STATE_LABEL
            user_object.save()
            card = generate_edit_work_item(work_item, EndState.STATE_LABEL)
        else:
            card = generate_choices("How severe is this issue?", work_item.severities_list, SeverityChoice.STATE_LABEL)

        send_message(card, user_object.name)
        return generate_update_response(text_format("You have chosen `%s`" % message))
    def action(user_object, message, event):
        work_item = user_object.get_work_item()
        work_item.severity = message
        work_item.save()

        user_object.state = EndState.STATE_LABEL
        user_object.save()
        card = generate_edit_work_item(work_item, EndState.STATE_LABEL)

        send_message(card, user_object.name)
        return generate_update_response(text_format("You have chosen `%s`" % message))
    def action(user_object, message, event):
        work_item = user_object.get_work_item()
        work_item.title = message
        work_item.save()
        user_object.state = DescriptionState.STATE_LABEL
        user_object.save()

        if user_object.is_finished:
            user_object.state = EndState.STATE_LABEL
            user_object.save()
            return generate_edit_work_item(work_item, EndState.STATE_LABEL)

        return text_format("Please describe your issue.")
    def action(user_object, message, event):
        work_item = user_object.get_work_item()
        work_item.third_party = message
        work_item.save()

        user_object.state = SeverityChoice.STATE_LABEL
        user_object.save()

        if user_object.is_finished:
            user_object.state = EndState.STATE_LABEL
            user_object.save()
            return generate_edit_work_item(work_item, EndState.STATE_LABEL)

        return generate_choices("How severe is this issue?", work_item.severities_list, SeverityChoice.STATE_LABEL)
    def action(user_object, message, event):
        work_item = user_object.get_work_item()
        work_item.hardware_type = message
        work_item.save()
        user_object.state = SeverityChoice.STATE_LABEL
        user_object.save()

        if user_object.is_finished:
            user_object.state = EndState.STATE_LABEL
            user_object.save()
            card = generate_edit_work_item(work_item, EndState.STATE_LABEL)
        else:
            card = generate_choices("How severe is this issue?", work_item.severities_list, SeverityChoice.STATE_LABEL)

        send_message(card, user_object.name)
        return generate_update_response(text_format("You have chosen `%s`" % message))
    def action(user_object, message, event):
        work_item = user_object.get_work_item()
        work_item.description = message
        work_item.save()

        if user_object.is_finished:
            user_object.state = EndState.STATE_LABEL
            user_object.save()
            return generate_edit_work_item(work_item, EndState.STATE_LABEL)

        if isinstance(work_item, HardwareSupport):
            user_object.state = HardwareChoice.STATE_LABEL
            user_object.save()
            return generate_choices("Choose Hardware Type", work_item.hardware_list, HardwareChoice.STATE_LABEL)
        elif isinstance(work_item, SoftwareSupport):
            user_object.state = SoftwareChoice.STATE_LABEL
            user_object.save()
            return generate_choices("Choose 3rd Party Software", work_item.software_list, SoftwareChoice.STATE_LABEL)