Exemplo n.º 1
0
def edit_activity_2(request, action_id):
    activity = get_object_or_404(Activity, id=action_id, is_active=True)
    if not activity.host == request.user:
        return HttpResponseForbidden()

    if request.method == "POST":
        data = simplejson.loads(request.POST["criteria"])
        # 从POST上来的json数据中构造问卷
        logger.debug(u"编辑活动第二步,提交到新到问卷结构是{0}".format(request.POST["criteria"]))
        try:
            questionnaire = create_questionnaire_with_json({"criteria": data}, activity, is_active=False)
            request.session["questionnaire_id_tmp"] = questionnaire.id
            return JsonResponse({
                "success": True,
                "data": {
                    "url": "/action/%s/save" % activity.id
                }
            }, content_type='text/html')
        except ValidationError, error:
            error_info = error.message
            return JsonResponse({
                "success": True,
                "data": {
                    "unknown": "未知错误"
                }
            }, content_type='text/html')
Exemplo n.º 2
0
def test_create_question():
    json = {
        "criteria": [{
            "q": "单选题",
            "type": "radio",
            "a": ["A", "B", "C"]
        }, {
            "q": "多选题",
            "type": "checkbox",
            "a": ["A", "B", "C"]
        }, {
            "q": "文字题",
            "type": "question",
        }, {
            "q": "文件题",
            "type": "upload",
        }]
    }

    activity = Activity.objects.all()[1]
    create_questionnaire_with_json(json, activity)
Exemplo n.º 3
0
def test_create_question():
    json = {
        "criteria": [
            {
                "q": "单选题",
                "type": "radio",
                "a": ["A", "B", "C"]
            }, {
                "q": "多选题",
                "type": "checkbox",
                "a": ["A", "B", "C"]
            }, {
                "q": "文字题",
                "type": "question",
            }, {
                "q": "文件题",
                "type": "upload",
            }
        ]
    }

    activity = Activity.objects.all()[1]
    create_questionnaire_with_json(json, activity)
Exemplo n.º 4
0
def create_new_activity_2(request, action_id):
    """创建活动的第二步,首先检查session中的信息"""
    # 从第一步骤出来的
    activity = get_object_or_404(Activity, id=action_id, is_active=False)
    # activity = get_object_or_404(Activity, id=action_id)
    user = request.user

    if user != activity.host or "activity_creation_info" not in request.COOKIES:
        # 如果发现试图访问这个链接的当前用户并不是当前用户的创建者,则引导其进入创建的第一步
        return HttpResponseRedirect("/action/new/create/1")

    act_info = request.COOKIES["activity_creation_info"]
    if get_activity_session_representation(activity) != act_info:
        # 检查这个链接是否是由第一步转移过来的,注意这个链接只在30分钟内有效,否则视为放弃了上面的活动
        return HttpResponseRedirect("/action/new/create/1")
    error_info = None
    if request.method == "POST":
        data = simplejson.loads(request.POST["criteria"])
        # 从POST上来的json数据中构造问卷
        try:
            create_questionnaire_with_json({"criteria": data}, activity)
            return JsonResponse({
                "success": True,
                "data": {
                    "url": "/action/%s/publish" % activity.id
                }
            }, content_type='text/html')
        except ValidationError, error:
            error_info = error.message
            logger.debug(u"创建活动第二步失败,该活动由|%s(id: %s)|创建,错误信息为: %s" % (
                user.profile.name, user.id, error_info))
            return JsonResponse({
                "success": False,
                "data": {
                    "unknown": "未知错误"
                }
            }, content_type='text/html')