def forms(self, request, **kwargs): """Add a form to a project or list forms for the project. The request key `xls_file` holds the XLSForm file object. """ project = get_object_or_404(Project, pk=kwargs.get('pk')) if request.method.upper() == 'POST': survey = utils.publish_project_xform(request, project) if isinstance(survey, XForm): xform = XForm.objects.get(pk=survey.pk) serializer = XFormSerializer( xform, context={'request': request}) return Response(serializer.data, status=status.HTTP_201_CREATED) return Response(survey, status=status.HTTP_400_BAD_REQUEST) project_xforms = project.projectxform_set.values('xform') xforms = XForm.objects.filter(pk__in=project_xforms) serializer = XFormSerializer(xforms, context={'request': request}, many=True) return Response(serializer.data)
def forms(self, request, **kwargs): """ POST - publish xlsform file to a specific project. xls_file -- xlsform file object """ project = get_object_or_404( Project, pk=kwargs.get('pk', None), organization__username=kwargs.get('owner', None)) if request.method.upper() == 'POST': survey = utils.publish_project_xform(request, project) if isinstance(survey, XForm): xform = XForm.objects.get(pk=survey.pk) serializer = serializers.XFormSerializer( xform, context={'request': request}) return Response(serializer.data, status=201) return Response(survey, status=400) filter = {'project': project} many = True if 'formid' in kwargs: many = False filter['xform__pk'] = int(kwargs.get('formid')) if many: qs = ProjectXForm.objects.filter(**filter) data = [px.xform for px in qs] else: qs = get_object_or_404(ProjectXForm, **filter) data = qs.xform serializer = serializers.XFormSerializer( data, many=many, context={'request': request}) return Response(serializer.data)
def forms(self, request, **kwargs): """Add a form to a project or list forms for the project. The request key `xls_file` holds the XLSForm file object. """ project = self.object = self.get_object() if request.method.upper() == 'POST': survey = utils.publish_project_xform(request, project) if isinstance(survey, XForm): if 'formid' in request.data: serializer_cls = XFormSerializer else: serializer_cls = XFormCreateSerializer serializer = serializer_cls(survey, context={'request': request}) published_by_formbuilder = request.data.get( 'published_by_formbuilder' ) if str_to_bool(published_by_formbuilder): MetaData.published_by_formbuilder(survey, 'True') return Response(serializer.data, status=status.HTTP_201_CREATED) return Response(survey, status=status.HTTP_400_BAD_REQUEST) xforms = XForm.objects.filter(project=project) serializer = XFormSerializer(xforms, context={'request': request}, many=True) return Response(serializer.data)
def forms(self, request, **kwargs): """Add a form to a project or list forms for the project. The request key `xls_file` holds the XLSForm file object. """ project = self.object = self.get_object() if request.method.upper() == 'POST': survey = utils.publish_project_xform(request, project) if isinstance(survey, XForm): if 'formid' in request.data: serializer_cls = XFormSerializer else: serializer_cls = XFormCreateSerializer serializer = serializer_cls(survey, context={'request': request}) published_by_formbuilder = request.data.get( 'published_by_formbuilder' ) if str_to_bool(published_by_formbuilder): MetaData.published_by_formbuilder(survey, 'True') return Response(serializer.data, status=status.HTTP_201_CREATED) return Response(survey, status=status.HTTP_400_BAD_REQUEST) xforms = XForm.objects.filter(project=project) serializer = XFormSerializer(xforms, context={'request': request}, many=True) return Response(serializer.data)
def forms(self, request, **kwargs): """Add a form to a project or list forms for the project. The request key `xls_file` holds the XLSForm file object. """ project = get_object_or_404(Project, pk=kwargs.get('pk')) if request.method.upper() == 'POST': survey = utils.publish_project_xform(request, project) if isinstance(survey, XForm): xform = XForm.objects.get(pk=survey.pk) serializer = XFormSerializer(xform, context={'request': request}) return Response(serializer.data, status=status.HTTP_201_CREATED) return Response(survey, status=status.HTTP_400_BAD_REQUEST) xforms = XForm.objects.filter(project=project) serializer = XFormSerializer(xforms, context={'request': request}, many=True) return Response(serializer.data)