Beispiel #1
0
def api(request):
    user = request.user
    if not user:
        username = request.POST.get("username", "")
        password = request.POST.get("password", "")
        user = authenticate(username= username, password=password)
    if user is not None and user.has_perm("apps.add_task"):
        method = request.POST.get("method")
        if method == "create_task":
            task_data = request.POST.get("task", "")
            sites_data = request.POST.get("sites", "")
            try:
                task = Task(**json.loads(task_data))
                task.user = user
                task.clean_fields()
                sites = []
                sites_data = json.loads(sites_data)
                for site_data in sites_data:
                    site = Site(**site_data)
                    site.clean_fields(exclude=['task'])
                    sites.append(site)
                task.save()
                for site in sites:
                    site.task = task
                    site.save()
                    rule = Rule(**Constants.DEFAULT_RULE)
                    rule.site = site
                    rule.save()
                controller = TaskController(task)
                controller.runTask()
                ret = {"status":"ok", "task":task.id}
            except Exception, e:
                ret = {"status":"InputError", "error_details":str(e)}
        elif method == "run_task":
            try:
                id = request.POST.get("id")
                task = Task.objects.get(id=id)
                controller = TaskController(task)
                controller.runTask()
                ret = {"status":"ok"}
            except Exception, e:
                ret = {"status":"RunError", "error_details":str(e)}
Beispiel #2
0
def site_new(request, task_id):
    user = request.user
    task = Task.objects.get(id=task_id)
    if task.user != user and not user.has_perm('apps.list_all_task'):
        raise PermissionDenied
    if request.method == 'POST':
        new_site = Site()
        new_site.task = task
        #post_site = json.loads(request.POST['site'])
        form = SiteForm(request.POST, instance=new_site)
        if form.is_valid():
            new_site = form.save()
            return HttpResponseRedirect(reverse("site", args=(task.pk, new_site.pk)))
    else:
        form = SiteForm()
    return render_to_response('site.html', {
        'post_url':reverse("site_new", args=(task.pk,)),
        'form': form,
        'task': task
    }, RequestContext(request))