コード例 #1
0
ファイル: handler.py プロジェクト: Stolpovskaya/amcat
def index(request, webscriptName):
    if not hasattr(webscripts, webscriptName) or webscriptName not in webscripts.webscriptNames:
        return showErrorMsg('invalid webscript name', 'json')
    webscriptClass = getattr(webscripts, webscriptName)


    project = Project.objects.only("id").get(id=request.GET["project"])
    user = request.user

    data = (request.POST if request.method == "POST" else request.GET).copy()
    data['projects'] = project.id

    try:
        try:
            called_with = dict(user=user.id, project=project.id, data=from_querydict(data))
            ws = webscriptClass(**called_with)
        except TypeError:
            called_with = dict(data=from_querydict(data))
            ws = webscriptClass(**called_with)
        # HACK: put query in session to allow highlighting
        request.session['query'] = data.get('query')

        if "delay" in request.GET:
            h = WebScriptHandler.call(target_class=ws.__class__, arguments=called_with, project=project, user=user)
            return HttpResponse(json.dumps({"task_uuid" : h.task.uuid}), content_type="application/json")
        else:
            return ws.run()
    except InvalidFormException, e:
        log.exception('Invalid form for Webscript: %s' % webscriptName)
        return showErrorMsg('Invalid form', 'json', fields=e.getErrorDict())
コード例 #2
0
ファイル: handler.py プロジェクト: kasperwelbers/amcat
def index(request, webscriptName):
    if not hasattr(webscripts, webscriptName) or webscriptName not in webscripts.webscriptNames:
        return showErrorMsg('invalid webscript name', 'json')
    webscriptClass = getattr(webscripts, webscriptName)


    project = Project.objects.only("id").get(id=request.GET["project"])
    user = request.user

    data = (request.POST if request.method == "POST" else request.GET).copy()
    data['projects'] = project.id

    try:
        try:
            called_with = dict(user=user.id, project=project.id, data=from_querydict(data))
            ws = webscriptClass(**called_with)
        except TypeError:
            called_with = dict(data=from_querydict(data))
            ws = webscriptClass(**called_with)
        if "delay" in request.GET:
            task = ws.delay()
            Task.objects.create(
                task_name=task.task_name, uuid=task.task_id, called_with=called_with, project=project,
                class_name=".".join((ws.__class__.__module__, ws.__class__.__name__)), user=user
            )
            return HttpResponse(json.dumps({"task_uuid" : task.task_id}), content_type="application/json")
        else:
            return ws.run()
    except InvalidFormException, e:
        log.exception('Invalid form for Webscript: %s' % webscriptName)
        return showErrorMsg('Invalid form', 'json', fields=e.getErrorDict())
コード例 #3
0
ファイル: handler.py プロジェクト: Stolpovskaya/amcat
def model(request, modelName):
    data = request.POST if request.method == "POST" else request.GET
    data = data.copy()
    data['model'] = modelName
    try:
        return webscripts.viewmodel.ViewModel(data).run()
    except InvalidFormException, e:
        log.exception('model webscript exception')
        return showErrorMsg('Invalid form', 'json', fields=e.getErrorDict())
コード例 #4
0
ファイル: handler.py プロジェクト: kasperwelbers/amcat
def model(request, modelName):
    data = request.POST if request.method == "POST" else request.GET
    data = data.copy()
    data['model'] = modelName
    try:
        return webscripts.viewmodel.ViewModel(data).run()
    except InvalidFormException, e:
        log.exception('model webscript exception')
        return showErrorMsg('Invalid form', 'json', fields=e.getErrorDict())
コード例 #5
0
ファイル: handler.py プロジェクト: Stolpovskaya/amcat
def getWebscriptForm(request, webscriptName):
    if not hasattr(webscripts, webscriptName) or webscriptName not in webscripts.webscriptNames:
        return showErrorMsg('invalid webscript name', 'json')
    webscriptClass = getattr(webscripts, webscriptName)

    project = None
    if 'project' in request.GET:
        project = Project.objects.get(id=request.GET.get('project'))

    return HttpResponse(webscriptClass.formHtml(project))
コード例 #6
0
ファイル: handler.py プロジェクト: kasperwelbers/amcat
def getWebscriptForm(request, webscriptName):
    if not hasattr(
            webscripts,
            webscriptName) or webscriptName not in webscripts.webscriptNames:
        return showErrorMsg('invalid webscript name', 'json')
    webscriptClass = getattr(webscripts, webscriptName)

    project = None
    if 'project' in request.GET:
        project = Project.objects.get(id=request.GET.get('project'))

    return HttpResponse(webscriptClass.formHtml(project))
コード例 #7
0
ファイル: handler.py プロジェクト: kasperwelbers/amcat
def index(request, webscriptName):
    if not hasattr(
            webscripts,
            webscriptName) or webscriptName not in webscripts.webscriptNames:
        return showErrorMsg('invalid webscript name', 'json')
    webscriptClass = getattr(webscripts, webscriptName)

    project = Project.objects.only("id").get(id=request.GET["project"])
    user = request.user

    data = (request.POST if request.method == "POST" else request.GET).copy()
    data['projects'] = project.id

    try:
        try:
            called_with = dict(user=user.id,
                               project=project.id,
                               data=from_querydict(data))
            ws = webscriptClass(**called_with)
        except TypeError:
            called_with = dict(data=from_querydict(data))
            ws = webscriptClass(**called_with)
        if "delay" in request.GET:
            task = ws.delay()
            Task.objects.create(task_name=task.task_name,
                                uuid=task.task_id,
                                called_with=called_with,
                                project=project,
                                class_name=".".join((ws.__class__.__module__,
                                                     ws.__class__.__name__)),
                                user=user)
            return HttpResponse(json.dumps({"task_uuid": task.task_id}),
                                content_type="application/json")
        else:
            return ws.run()
    except InvalidFormException, e:
        log.exception('Invalid form for Webscript: %s' % webscriptName)
        return showErrorMsg('Invalid form', 'json', fields=e.getErrorDict())
コード例 #8
0
ファイル: handler.py プロジェクト: Stolpovskaya/amcat
        if "delay" in request.GET:
            h = WebScriptHandler.call(target_class=ws.__class__, arguments=called_with, project=project, user=user)
            return HttpResponse(json.dumps({"task_uuid" : h.task.uuid}), content_type="application/json")
        else:
            return ws.run()
    except InvalidFormException, e:
        log.exception('Invalid form for Webscript: %s' % webscriptName)
        return showErrorMsg('Invalid form', 'json', fields=e.getErrorDict())
    except Exception, e:
        log.exception('Webscript exception: %s' % webscriptName)

        if hasattr(e, 'reason') and e.reason == 'null':
            e.reason = 'This query could not be parsed.'

        return showErrorMsg('error running webscript: %s' % e, 'json')



def getWebscriptForm(request, webscriptName):
    if not hasattr(webscripts, webscriptName) or webscriptName not in webscripts.webscriptNames:
        return showErrorMsg('invalid webscript name', 'json')
    webscriptClass = getattr(webscripts, webscriptName)

    project = None
    if 'project' in request.GET:
        project = Project.objects.get(id=request.GET.get('project'))

    return HttpResponse(webscriptClass.formHtml(project))

コード例 #9
0
ファイル: handler.py プロジェクト: kasperwelbers/amcat
                                                     ws.__class__.__name__)),
                                user=user)
            return HttpResponse(json.dumps({"task_uuid": task.task_id}),
                                content_type="application/json")
        else:
            return ws.run()
    except InvalidFormException, e:
        log.exception('Invalid form for Webscript: %s' % webscriptName)
        return showErrorMsg('Invalid form', 'json', fields=e.getErrorDict())
    except Exception, e:
        log.exception('Webscript exception: %s' % webscriptName)

        if hasattr(e, 'reason') and e.reason == 'null':
            e.reason = 'This query could not be parsed.'

        return showErrorMsg('error running webscript: %s' % e, 'json')


def getWebscriptForm(request, webscriptName):
    if not hasattr(
            webscripts,
            webscriptName) or webscriptName not in webscripts.webscriptNames:
        return showErrorMsg('invalid webscript name', 'json')
    webscriptClass = getattr(webscripts, webscriptName)

    project = None
    if 'project' in request.GET:
        project = Project.objects.get(id=request.GET.get('project'))

    return HttpResponse(webscriptClass.formHtml(project))