def create(self, request, *args, **kwargs):
if request.method.upper() == 'HEAD':
return Response(status=status.HTTP_204_NO_CONTENT,
headers=self.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',
UserProfile.objects.get_or_create(user=form_user)[0]
):
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 = DoXmlFormUpload(xform_def, form_user)
dd = publish_form(do_form_upload.publish)
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=self.get_openrosa_headers(request,
location=False),
template_name=self.template_name)
评论列表
文章目录