def create(self, request, *args, **kwargs): owner = _get_owner(request) survey = utils.publish_xlsform(request, owner) if isinstance(survey, XForm): xform = XForm.objects.get(pk=survey.pk) # The XForm has been created, but `publish_xlsform` relies on # `onadata.apps.main.forms.QuickConverter`, which uses standard # Django forms and only recognizes the `xls_file`, `xls_url`, # `dropbox_xls_url`, and `text_xls_form` fields. # Use the DRF serializer to update the XForm with values for other # fields. serializer = XFormSerializer(xform, data=request.data, context={'request': request}, partial=True) serializer.is_valid(raise_exception=True) serializer.save() headers = self.get_success_headers(serializer.data) return Response(serializer.data, status=status.HTTP_201_CREATED, headers=headers) return Response(survey, status=status.HTTP_400_BAD_REQUEST)
def create(self, request, *args, **kwargs): owner = _get_owner(request) survey = utils.publish_xlsform(request, owner) if isinstance(survey, XForm): xform = XForm.objects.get(pk=survey.pk) # The XForm has been created, but `publish_xlsform` relies on # `onadata.apps.main.forms.QuickConverter`, which uses standard # Django forms and only recognizes the `xls_file`, `xls_url`, # `dropbox_xls_url`, and `text_xls_form` fields. # Use the DRF serializer to update the XForm with values for other # fields. serializer = XFormSerializer(xform, data=request.data, context={'request': request}, partial=True) serializer.is_valid(raise_exception=True) serializer.save() # noti = xform.logs.create(source=request.user, type=7, title="new Kobo form", # organization=request.organization, # description="new kobo form {0} created by {1}". # format(xform.title, request.user.username)) # result = {} # result['description'] = noti.description # result['url'] = noti.get_absolute_url() # ChannelGroup("notify-0").send({"text":json.dumps(result)}) # if noti.organization: # ChannelGroup("notify-{}".format(noti.organization.id)).send({"text":json.dumps(result)}) headers = self.get_success_headers(serializer.data) return Response(serializer.data, status=status.HTTP_201_CREATED, headers=headers) return Response(survey, status=status.HTTP_400_BAD_REQUEST)
def create(self, request, *args, **kwargs): owner = _get_owner(request) survey = utils.publish_xlsform(request, owner) if isinstance(survey, XForm): xform = XForm.objects.get(pk=survey.pk) # The XForm has been created, but `publish_xlsform` relies on # `onadata.apps.main.forms.QuickConverter`, which uses standard # Django forms and only recognizes the `xls_file`, `xls_url`, # `dropbox_xls_url`, and `text_xls_form` fields. # Use the DRF serializer to update the XForm with values for other # fields. serializer = XFormSerializer( xform, data=request.data, context={'request': request}, partial=True ) serializer.is_valid(raise_exception=True) serializer.save() headers = self.get_success_headers(serializer.data) return Response(serializer.data, status=status.HTTP_201_CREATED, headers=headers) return Response(survey, status=status.HTTP_400_BAD_REQUEST)