'Submit User Feedback
Submit and associate user feedback with an issue.
:pparam string organization_slug: the slug of the organization.
:pparam string project_slug: the slug of the project.
:auth: required
:param string event_id: the event ID
:param string name: user\'s name
:param string email: user\'s email address
:param string comments: comments supplied by user'

@attach_scenarios([create_user_feedback_scenario])
def post(self, request, project):

    serializer = UserReportSerializer(data=request.DATA)
    if (not serializer.is_valid()):
        return Response(serializer.errors, status=400)
    report = serializer.object
    report.project = project
    euser = self.find_event_user(report)
    if (euser and (not euser.name) and report.name):
        euser.update(name=report.name)
    if euser:
        report.event_user_id = euser.id
    try:
        mapping = EventMapping.objects.get(event_id=report.event_id, project_id=project.id)
    except EventMapping.DoesNotExist:
        pass
    else:
        report.group = Group.objects.get(id=mapping.group_id)
    try:
        with transaction.atomic():
            report.save()
    except IntegrityError:
        existing_report = UserReport.objects.get(project=report.project, event_id=report.event_id)
        existing_report.update(name=report.name, email=report.email, comments=report.comments, date_added=timezone.now(), event_user_id=(euser.id if euser else None))
        report = existing_report
    return Response(serialize(report, request.user, ProjectUserReportSerializer()))
