def list(self, request, *args, **kwargs): self.object_list = self.filter_queryset(self.get_queryset()) headers = get_openrosa_headers(request, location=False) serializer = self.get_serializer(self.object_list, many=True) if request.method in ['HEAD']: return Response('', headers=headers, status=204) return Response(serializer.data, headers=headers)
def manifest(self, request, *args, **kwargs): self.object = self.get_object() object_list = MetaData.objects.filter(data_type='media', object_id=self.object.id) context = self.get_serializer_context() serializer = XFormManifestSerializer(object_list, many=True, context=context) return Response(serializer.data, headers=get_openrosa_headers(request, location=False))
def list(self, request, *args, **kwargs): self.object_list = self.filter_queryset(self.get_queryset()) data = {'instances': self.object_list, 'resumptionCursor': self.resumptionCursor} return Response(data, headers=get_openrosa_headers(request, location=False), template_name='submissionList.xml')
def manifest(self, request, *args, **kwargs): self.object = self.get_object() object_list = MetaData.objects.filter(data_type='media', object_id=self.object.pk) context = self.get_serializer_context() context[GROUP_DELIMETER_TAG] = ExportBuilder.GROUP_DELIMITER_DOT context[REPEAT_INDEX_TAGS] = '_,_' serializer = XFormManifestSerializer(object_list, many=True, context=context) return Response(serializer.data, headers=get_openrosa_headers(request, location=False))
def create(self, request, *args, **kwargs): if request.method.upper() == 'HEAD': return Response(status=status.HTTP_204_NO_CONTENT, headers=get_openrosa_headers(request), template_name=self.template_name) xform_def = request.FILES.get('form_def_file', None) response_status = status.HTTP_201_CREATED username = kwargs.get('username') form_user = (username and get_object_or_404(User, username=username)) \ or request.user if not request.user.has_perm('can_add_xform', form_user.profile): raise exceptions.PermissionDenied( detail=_(u"User %(user)s has no permission to add xforms to " "account %(account)s" % { 'user': request.user.username, 'account': form_user.username })) data = {} if isinstance(xform_def, File): do_form_upload = PublishXForm(xform_def, form_user) dd = publish_form(do_form_upload.publish_xform) if isinstance(dd, XForm): data['message'] = _(u"%s successfully published." % dd.id_string) else: data['message'] = dd['text'] response_status = status.HTTP_400_BAD_REQUEST else: data['message'] = _(u"Missing xml file.") response_status = status.HTTP_400_BAD_REQUEST return Response(data, status=response_status, headers=get_openrosa_headers(request, location=False), template_name=self.template_name)
def retrieve(self, request, *args, **kwargs): self.object = self.get_object() xml_obj = clean_and_parse_xml(self.object.xml) submission_xml_root_node = xml_obj.documentElement submission_xml_root_node.setAttribute('instanceID', u'uuid:%s' % self.object.uuid) submission_xml_root_node.setAttribute( 'submissionDate', self.object.date_created.isoformat()) data = { 'submission_data': submission_xml_root_node.toxml(), 'media_files': Attachment.objects.filter(instance=self.object), 'host': request.build_absolute_uri().replace(request.get_full_path(), '') } return Response(data, headers=get_openrosa_headers(request, location=False), template_name='downloadSubmission.xml')
def retrieve(self, request, *args, **kwargs): self.object = self.get_object() return Response(self.object.xml, headers=get_openrosa_headers(request, location=False))