예제 #1
0
def gender(request, group=None):
    logger.info("view %s, group %s" % (str(stack()[0][3]), group))
    if not request.session :
        # if it doesn't have a session -> start again
        return render_to_response('start.html', {'error_message': "Your session had time out. Start again.", }, context_instance=RequestContext(request))             
    logger.info('<gender> sid: {} , POST:{}'.format(request.session.session_key, request.POST))

    if 'survey_id' in request.session:
        del request.session['survey_id']

    if request.POST['answer'] == 'Skip survey':
        request.session['type'] = 'skip'
#        return render_to_response('index.html', {}, context_instance=RequestContext(request))
        return HttpResponseRedirect(reverse('openday.views.app', kwargs={'group':group}))
    
    # create new survey
    s = Survey() 
    s.survey_date = datetime.datetime.now()
    try:
        s.group = get_group(group)
    except:
        return redirect(reverse('start_view', args=['main']))
    
    s.save()
    request.session['survey_id'] = s.id
    request.session['type'] = 'survey'
    # no data to show    
    return render_to_response('gender.html', {}, context_instance=RequestContext(request))
예제 #2
0
def new():

    error = None
    name = ''
    key = ''

    def form():
        context = {'error':error,'name':name,'key':key}
        response = make_response(render_template("survey/new.html",**context))
        return response

    if request.method == 'POST':
        if not 'name' in request.form or not request.form['name'].strip():
            error = 'You need to supply a name for your survey...'
            return form()
        name = request.form['name']
        if Survey.collection.find({'user':request.user,'name':name}).count():
            error = 'You already have a survey with that name...'
            return form()
        if 'key' in request.form and request.form['key'].strip():
            key = request.form['key']
            if re.search(r"[^\w\d\-]+",key):
                error = "Error: Please use only letters and hyphens for the survey key."
                return form()
        else:
            key = uuid.uuid4().hex
        if Survey.collection.find({'key':key}).count():
            error = 'A survey with this key already exists...'
            return form()
        survey = Survey(fields = {},authorized_keys = [],authorized_keys_only = False,key = key,name = name,user = request.user)
        survey.save()
        return redirect(url_for("details",survey_key = survey['key']))
    else:
        return form()
예제 #3
0
def example():
    survey = Survey.collection.find_one({'user':request.user,'name':'example'})
    if not survey:
        survey = Survey(fields = {},authorized_keys = [],authorized_keys_only = False,key = uuid.uuid4().hex,name = "example",user = request.user)
        survey.save()
    context = {'survey' : survey}
    response = make_response(render_template("example.html",**context))
    return response
예제 #4
0
def create_a_survey(request):
    # create a survey 
    # create a survey object
    # get input from createSurvey.html
    # return HttpResponse('create a survey ')
    logging.debug(request.POST)
    survey_name = request.POST['SurveyName']
    s = Survey(survey=survey_name, pub_date=datetime.date.today(), author=request.user.username, popularity=0)
    s.save()

    # response to /s.id/addPolls
    return HttpResponseRedirect('createSurveyPage')
예제 #5
0
def survey_add(request):
    if request.method == 'POST':
        form = SurveyForm(request.POST)
        has_errors = False
        try:
            newSurvey = Survey()

            name = request.POST.get('name')
            newSurvey.name = name
            
            title = request.POST.get('title')
            newSurvey.title = title
            
            datastore = request.POST.get('datastore')
            newSurvey.datastore_id = datastore
            
            exists = False
            projects = Project.objects.all()
            for p in projects:
                if name == p.name:
                    exists = True
            
            if name == '':
                message = _(u'You must enter an survey name')
                return render(request, 'survey_add.html', {'message': message, 'form': form})
            
            if _valid_name_regex.search(name) == None:
                message = _(u"Invalid survey name: '{value}'. Identifiers must begin with a letter or an underscore (_). Subsequent characters can be letters, underscores or numbers").format(value=name)
                return render(request, 'survey_add.html', {'message': message, 'form': form})
              
            if not exists:     
                newSurvey.save()
                return redirect('survey_update', survey_id=newSurvey.id)
            else:
                message = _(u'Exists a project with the same name')
                return render(request, 'survey_add.html', {'message': message, 'form': form})
        
       
            #msg = _("Error: fill all the survey fields")
            #form.add_error(None, msg)
            
        except Exception as e:
            try:
                msg = e.get_message()
            except:
                msg = _("Error: survey could not be published")
            form.add_error(None, msg)

    else:
        form = SurveyForm()
        
    return render(request, 'survey_add.html', {'form': form})
예제 #6
0
def create_a_survey(request):
    # create a survey
    # create a survey object
    # get input from createSurvey.html
    # return HttpResponse('create a survey ')
    logging.debug(request.POST)
    survey_name = request.POST['SurveyName']
    s = Survey(survey=survey_name,
               pub_date=datetime.date.today(),
               author=request.user.username,
               popularity=0)
    s.save()

    # response to /s.id/addPolls
    return HttpResponseRedirect('createSurveyPage')
예제 #7
0
 def all(self):
     if request.method == 'GET':
         surveys = Survey.all()
         return jsonify([s.to_dict() for s in surveys])
     elif request.method == 'POST':
         data = request.get_json()
         survey = Survey(name = data['name'])
         questions = []
         for q in data['questions']:
             question = Question(text = q['text'])
             question.choices = [Choice(text = c) for c in q['choices']]
             questions.append(question)
         survey.questions = questions
         survey.save()
         return jsonify(survey.to_dict()), 201
예제 #8
0
def handleForm(request):
    new_title = request.POST['title']
    new_author = request.POST['author']
    new_desc = request.POST['desc']
    answers = []
    for i in range(1, 20):
        input_name = "answer" + str(i)
        if input_name in request.POST:
            s = request.POST[input_name].replace("'", "")
            answers.append(s)
    new_survey = Survey(title=new_title, author=new_author, desc=new_desc)
    new_survey.save()
    for answer in answers:
        new_answer = Answer(survey=new_survey, text=answer, votes=0)
        new_answer.save()
    return HttpResponseRedirect('/survey/' + str(new_survey.id))
예제 #9
0
파일: app.py 프로젝트: oowda/rapidsms1
    def survey(self,message, fname , lname, gender ,age, activity ):
    	
    	if gender == 'M':
        	sex = 'Male'
	else:
		sex = 'Female'
	
	if activity == '1':
	        prof = 'Student'
	else:
		prof = 'Professional'
    	
    	act = Activities.objects.get(code=activity)
    	survey = Survey(firsName=fname , lastName=lname, sex=gender, age=age, activity=act, enteredDate = date.today() )
    	
    	try:
    		survey.save()
    		message.respond(u"You have entered  first name :%s. last name: %s. gender: %s. age: %s. activity: %s. " %((fname,lname,sex,age,prof)))
    	except:
    		message.respond(u"Faild to insert")
	return True 
예제 #10
0
파일: views.py 프로젝트: xmduhan/qisite
def surveyAddAction(request):
    # print request.REQUEST
    # 读取问卷标识
    paperIdSigned = request.REQUEST['paperId']

    # 验证问卷的数字签名
    sign = Signer()
    paperId = sign.unsign(paperIdSigned)
    # print  'paperId=', paperId

    # 检查用户的登录状态
    user = getCurrentUser(request)
    if user is None:
        raise Exception(u'没有登录')

    # 读取问卷并创建实例
    paper = Paper.objects.get(id=paperId)
    paperInstance = paper.createPaperInstance(user)
    # 如果文件设置了跳转,但其step却设置为False,这样很容易造成困扰
    # 这里对问卷在发布的时候强行修改step为True
    if paperInstance.isStepNeed():
        paperInstance.step = True
        paperInstance.save()

    # 创建survey对象
    survey = Survey()
    updateModelInstance(survey, request.REQUEST, tryUnsigned=True)
    survey.paper = paperInstance
    survey.createBy = user
    survey.modifyBy = user
    survey.save()

    # 设置文件到调查的反向连接,主要用于级联删除时使用
    paperInstance.survey = survey
    paperInstance.save()

    # 返回调查列表
    return HttpResponseRedirect(reverse('survey:view.survey.publish', args=[survey.id]))
예제 #11
0
파일: views.py 프로젝트: xmduhan/qisite
def paperPreview(request, paperId):
    '''
    问卷预览
    '''
    # 检查用户的登录状态
    user = getCurrentUser(request)
    if user is None:
        raise Exception(u'没有登录')

    # 读取问卷并创建实例
    paper = Paper.objects.get(id=paperId)
    if paper.createBy != user:
        raise Exception(u'没有权限预览该问卷')

    # 在系统系统管理源的名下创建一个调查
    admin = User.objects.get(code='admin')
    paperInstance = paper.createPaperInstance(admin)
    # 如果文件设置了跳转,但其step却设置为False,这样很容易造成困扰
    # 这里对问卷在发布的时候强行修改step为True
    if paperInstance.isStepNeed():
        paperInstance.step = True
        paperInstance.save()

    # 创建survey对象
    survey = Survey()
    survey.paper = paperInstance
    survey.createBy = admin
    survey.modifyBy = admin
    survey.save()

    # 清理之前的预览对象, 关联当前预览对象
    if paper.previewSurvey:
        paper.previewSurvey.delete()
    paper.previewSurvey = survey
    paper.save()

    # 返回答题界面
    return HttpResponseRedirect(reverse('survey:view.survey.answer', args=[survey.id]))
예제 #12
0
파일: views.py 프로젝트: Hepstar/openday
def gender(request):

    if not request.session :
        # if it doesn't have a session -> start again
        return render_to_response('start', {'error_message': "Your session had time out. Start again.", }, context_instance=RequestContext(request))             
    logging.info('<gender> sid: {} , POST:{}'.format(request.session.session_key, request.POST))

    if 'survey_id' in request.session:
        del request.session['survey_id']

    if request.POST['answer'] == 'Skip survey':
        request.session['type'] = 'skip'
#        return render_to_response('index.html', {}, context_instance=RequestContext(request))
        return HttpResponseRedirect(reverse('openday.views.app'))
    
    # create new survey
    s = Survey() 
    s.survey_date = datetime.datetime.now()
    s.save()
    request.session['survey_id'] = s.id
    request.session['type'] = 'survey'
    # no data to show    
    return render_to_response('gender.html', {}, context_instance=RequestContext(request))
예제 #13
0
파일: views.py 프로젝트: ryanyue123/Django
def survey_create(request):
    newSurvey=Survey()
    newSurvey.title=request.POST['survey_title']
    newSurvey.save()
    request.session['current_survey']=newSurvey.id
    return redirect('admin-question-add-view')
예제 #14
0
def survey_create(request):
    newSurvey = Survey()
    newSurvey.title = request.POST['survey_title']
    newSurvey.save()
    request.session['current_survey'] = newSurvey.id
    return redirect('admin-question-add-view')