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))
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()
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
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')
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})
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')
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
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))
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
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]))
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]))
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))
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')
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')