def enter_data(request, username, id_string):
owner = get_object_or_404(User, username__iexact=username)
xform = get_object_or_404(XForm, user__username__iexact=username,
id_string__exact=id_string)
if not has_edit_permission(xform, owner, request, xform.shared):
return HttpResponseForbidden(_(u'Not shared.'))
form_url = _get_form_url(request, username, settings.ENKETO_PROTOCOL)
try:
url = enketo_url(form_url, xform.id_string)
if not url:
return HttpResponseRedirect(reverse('onadata.apps.main.views.show',
kwargs={'username': username,
'id_string': id_string}))
return HttpResponseRedirect(url)
except Exception as e:
data = {}
owner = User.objects.get(username__iexact=username)
data['profile'], created = \
UserProfile.objects.get_or_create(user=owner)
data['xform'] = xform
data['content_user'] = owner
data['form_view'] = True
data['message'] = {
'type': 'alert-error',
'text': u"Enketo error, reason: %s" % e}
messages.add_message(
request, messages.WARNING,
_("Enketo error: enketo replied %s") % e, fail_silently=True)
return render(request, "profile.html", data)
return HttpResponseRedirect(reverse('onadata.apps.main.views.show',
kwargs={'username': username,
'id_string': id_string}))
评论列表
文章目录