def enter_data(request, username, id_string): owner = get_object_or_404(User, username=username) xform = get_object_or_404(XForm, user__username=username, id_string=id_string) if not has_edit_permission(xform, owner, request, xform.shared): return HttpResponseForbidden(_(u'Not shared.')) try: formhub_url = "http://%s/" % request.META['HTTP_HOST'] except: formhub_url = "http://formhub.org/" form_url = formhub_url + username if settings.TESTING_MODE: form_url = "https://testserver.com/bob" try: url = enketo_url(form_url, xform.id_string) if not url: return HttpResponseRedirect(reverse('main.views.show', kwargs={'username': username, 'id_string': id_string})) return HttpResponseRedirect(url) except Exception, e: context = RequestContext(request) owner = User.objects.get(username=username) context.profile, created = \ UserProfile.objects.get_or_create(user=owner) context.xform = xform context.content_user = owner context.form_view = True context.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_to_response("profile.html", context_instance=context)
def test_enketo_remote_server(self): if not self._running_enketo(): return server_url = 'https://testserver.com/bob' form_id = "test_%s" % re.sub(re.compile("\."), "_", str(time())) url = enketo_url(server_url, form_id) self.assertIsInstance(url, basestring) self.assertIsNone(URLValidator()(url))
def test_enketo_remote_server(self): if not self._running_enketo(): raise SkipTest server_url = 'https://testserver.com/bob' form_id = "test_%s" % re.sub(re.compile("\."), "_", str(time())) url = enketo_url(server_url, form_id) self.assertIsInstance(url, basestring) self.assertIsNone(URLValidator()(url))
def edit_data(request, username, id_string, data_id): context = RequestContext(request) owner = User.objects.get(username=username) xform = get_object_or_404(XForm, user__username=username, id_string=id_string) instance = get_object_or_404(Instance, pk=data_id, xform=xform) if not has_edit_permission(xform, owner, request, xform.shared): return HttpResponseForbidden(_(u'Not shared.')) if not hasattr(settings, 'ENKETO_URL'): return HttpResponseRedirect( reverse('main.views.show', kwargs={ 'username': username, 'id_string': id_string })) url = '%sdata/edit_url' % settings.ENKETO_URL # see commit 220f2dad0e for tmp file creation try: formhub_url = "http://%s/" % request.META['HTTP_HOST'] except: formhub_url = "http://formhub.org/" injected_xml = inject_instanceid(instance.xml, instance.uuid) return_url = request.build_absolute_uri( reverse('odk_viewer.views.instance', kwargs={ 'username': username, 'id_string': id_string }) + "#/" + str(instance.id)) form_url = formhub_url + username if settings.TESTING_MODE: form_url = "https://testserver.com/bob" try: url = enketo_url(form_url, xform.id_string, instance_xml=injected_xml, instance_id=instance.uuid, return_url=return_url) except Exception, e: context.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)
def edit_data(request, username, id_string, data_id): context = RequestContext(request) owner = User.objects.get(username=username) xform = get_object_or_404( XForm, user__username=username, id_string=id_string) instance = get_object_or_404( Instance, pk=data_id, xform=xform) if not has_edit_permission(xform, owner, request, xform.shared): return HttpResponseForbidden(_(u'Not shared.')) if not hasattr(settings, 'ENKETO_URL'): return HttpResponseRedirect( reverse( 'main.views.show', kwargs={'username': username, 'id_string': id_string} ) ) url = '%sdata/edit_url' % settings.ENKETO_URL # see commit 220f2dad0e for tmp file creation try: formhub_url = "http://%s/" % request.META['HTTP_HOST'] except: formhub_url = "http://formhub.org/" injected_xml = inject_instanceid(instance.xml, instance.uuid) return_url = request.build_absolute_uri( reverse( 'odk_viewer.views.instance', kwargs={ 'username': username, 'id_string': id_string} ) + "#/" + str(instance.id)) form_url = formhub_url + username if hasattr(settings, "TESTING_MODE") and settings.TESTING_MODE: form_url = "https://testserver.com/bob" try: url = enketo_url( form_url, xform.id_string, instance_xml=injected_xml, instance_id=instance.uuid, return_url=return_url ) except Exception, e: context.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)
def qrcode(request, username, id_string): try: formhub_url = "http://%s/" % request.META['HTTP_HOST'] except: formhub_url = "http://formhub.org/" formhub_url = formhub_url + username if settings.TESTING_MODE: formhub_url = "https://testserver.com/bob" results = _(u"Unexpected Error occured: No QRCODE generated") status = 200 try: url = enketo_url(formhub_url, id_string) except Exception, e: error_msg = _(u"Error Generating QRCODE: %s" % e) results = """<div class="alert alert-error">%s</div>""" % error_msg status = 400
def qrcode(request, username, id_string): try: formhub_url = "http://%s/" % request.META['HTTP_HOST'] except: formhub_url = "http://formhub.org/" formhuburl = formhub_url + username url = enketo_url(formhuburl, id_string) if url: image = generate_qrcode(url) results = """<img class="qrcode" src="%s" alt="%s" /> </br><a href="%s" target="_blank">%s</a>""" % (image, url, url, url) else: error_msg = _(u"Error Generating QRCODE") results = """<div class="alert alert-error">%s</div>""" % error_msg return HttpResponse(results, mimetype='text/html')