예제 #1
0
def addsurvey():
    if request.method == 'POST':
        name = request.get_json().get('name')
        session.add(Survey(name=name))
        output = "Record Added"
    session.commit()
    return make_response(output)
예제 #2
0
def add_survey():
    if request.form:
        newSurvey = Survey(title=request.form.get('title'),
                           category=request.form.get('category'),
                           nbOfQuestions=int(
                               request.form.get('nbOfQuestions')),
                           idU=request.form.get('idU'))
        db.session.add(newSurvey)
        db.session.commit()
    return redirect("/")
예제 #3
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})
예제 #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 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
예제 #6
0
    def create(self, survey_name):
        survey = Survey(name=survey_name.lower(),
                        pretty_name=survey_name,
                        language='en')
        db.session.add(survey)

        try:
            db.session.flush()
            self._replace_survey_questions(survey=survey,
                                           questions=default_stack)
            self._generate_multicolumn_index(survey)
            db.session.commit()
            return survey
        except IntegrityError:
            db.session.rollback()
예제 #7
0
    def post(self):
        current_username = get_jwt_identity()
        u = User.find_by_username(current_username)

        parser = reqparse.RequestParser()
        parser.add_argument('name',
                            help='This field cannot be blank',
                            required=True,
                            location='headers')
        parser.add_argument('desc', location='headers')
        parser.add_argument('duedate',
                            help='This field cannot be blank',
                            required=True,
                            location='headers')
        parser.add_argument('isactive', location='headers')
        parser.add_argument('questions', action='append')

        data = parser.parse_args()

        boolActive = True if hasattr(
            data, 'isactive') and data['isactive'] == 'True' else False

        new_survey = Survey(name=data['name'],
                            desc=data['desc'],
                            dueDate=data['duedate'],
                            isActive=boolActive,
                            idUser=u.idUser)

        try:
            new_survey.flush_to_db()
        except:
            return {'message': 'Something went wrong'}, 500

        print("Survey zapisany, teraz questions")

        if not data.questions == None:

            for i in data.questions:
                dict = ast.literal_eval(i)
                print(dict)
                new_question = Question(content=dict['content'],
                                        type=dict['type'],
                                        replyContent=dict['replyContent'],
                                        idSurvey=new_survey.idSurvey)
                new_question.save_to_db()

        new_survey.commit_to_db()
        return {'message': 'Survey {} was created'.format(data['name'])}
예제 #8
0
    def post(self):
        args = parser.parse_args()
        response = {}
        survey = Survey(args['code'], args['proficiency'], args['experience'],
                        args['education'], args['interrupted'])
        db.session.add(survey)
        db.session.commit()
        response['error'] = False
        response['survey'] = {
            'code': survey.code,
            'proficiency': survey.proficiency,
            'experience': survey.experience,
            'education': survey.education,
            'interrupted': survey.interrupted
        }

        return response
def prepopulate(db, survey_schema_fn):
    survey_schema = read_schema(survey_schema_fn)
    survey_name = survey_schema['surveyName']
    language = survey_schema['language']

    survey = Survey(name=survey_name.lower(),
                    pretty_name=survey_name,
                    language=language)
    db.session.add(survey)
    db.session.commit()

    survey_questions = default_stack + survey_schema['surveyQuestions']
    load_survey_questions(db, survey, survey_questions)
    load_survey_prompts(db, survey, prompts=survey_schema['surveyPrompts'])
    create_admin_user(db, survey, survey_schema['adminEmail'],
                      survey_schema['adminPassword'])
    db.session.commit()
예제 #10
0
def register_survey(survey_id):
    survey = request.get_json()
    survey_size = survey['size']
    survey_title = survey['title']
    survey_subtitle = survey['subtitle']
    user = User.query.filter_by(id=session['userid']).first()
    if user.q_point < 100:
        return jsonify({'result': 'q_shortage'})
    user.q_point -= 100
    question_len = len(session['tmp_question_dict'][survey_id])
    if question_len < 5:
        survey_que = question_len * 10
    else:
        survey_que = 50
    survey = Survey(link=survey_id,
                    title=survey_title,
                    subtitle=survey_subtitle,
                    userID=user.id,
                    que=survey_que)
    db.session.add(survey)
    db.session.commit()
    db.session.flush()
    session['userid'] = user.id

    print 'question dict', session['tmp_question_dict'][survey_id]
    for question_idx, each_question in session['tmp_question_dict'][
            survey_id].iteritems():
        print 'value', each_question
        question = Question(title=each_question['title'],
                            subtitle=each_question['subtitle'],
                            questionType=each_question['type'],
                            isEssential=True,
                            surveyID=survey.id)
        db.session.add(question)
        db.session.commit()
        db.session.flush()
        question = Question.query.filter_by(title=question.title).first()
        for each_option in each_question['option']:
            option = Option(content=each_option, questionID=question.id)
            db.session.add(option)
            db.session.commit()
            db.session.flush()

    return jsonify({'result': 'success'})
예제 #11
0
    def create_from_schema(self, survey_name, admin_email, admin_password,
                           language, survey_questions, survey_prompts):
        try:
            with db.session.begin_nested():
                survey = Survey(name=survey_name.lower(),
                                pretty_name=survey_name,
                                language=language)
                db.session.add(survey)

                hardcoded_questions = default_stack + survey_questions
                self._load_survey_questions(survey=survey,
                                            questions=hardcoded_questions)
                self._load_survey_prompts(survey=survey,
                                          prompts=survey_prompts)
                self._create_admin(survey, admin_email, admin_password)
            db.session.commit()
        except IntegrityError as e:
            db.session.rollback()
            return e.message
예제 #12
0
def complete(module_number, submodule_number):
    if not allowed_submodule(module_number - 1, submodule_number - 1):
        abort(404)
    if request.method == 'GET':
        return render_template('survey.jinja2')
    q1 = request.form.get('q1')
    q2 = request.form.get('q2')
    q3 = request.form.get('q3')
    q4 = request.form.get('q4')
    q5 = request.form.get('q5')
    if not q1 or not q2 or not q3 or not q4 or not q5:
        return render_template('survey.jinja2', fail=True)
    survey = Survey(username=current_user.username, module=module_number - 1, submodule=submodule_number - 1,\
        responses=[q1] + [q2] + [q3] + [q4] + [q5])
    db.session.add(survey)
    if submodule_number < num_submodules()[module_number - 1]:
        current_user.locked_sub[module_number - 1][submodule_number] = False
        flag_modified(current_user, 'locked_sub')
    db.session.commit()
    return redirect('/modules/' + str(module_number))
예제 #13
0
def create():
    session['tmp_question_dict'] = {}
    if request.method == 'GET':
        current_time = datetime.datetime.now().strftime("%Y-%m-%d,%H:%M:%S")
        print current_time
        print session['userid']
        hash = hashlib.md5(str(session['userid']) + current_time).hexdigest()
        return redirect('survey/' + hash + '/edit')

    else:
        survey_title = request.form['survey_title']
        survey_subtitle = request.form['survey_subtitle']
        question_type = request.form['question_type']
        isEssential = request.form['is_essential']
        userid = session['userid']
        survey = Survey(title=title, subtitle=subtitle, userID=userid)
        db.session.add(survey)
        db.session.commit()
        # question = Question(title=survey_title, subtitle=survey_subtitle, questionType=question_type, surveyID)
        return render_template("create.html")
예제 #14
0
def survey():
    post_data = request.get_json()

    survey_data = Survey(
        dryness = post_data["dryness"],
        oiliness = post_data["oiliness"],
        redness = post_data["redness"],
        sensitivity = post_data["sensitivity"],
        acne = post_data["acne"],
        wrinkles = post_data["wrinkles"],
        scarring = post_data["scarring"]
    )
    db.session.add(survey_data)

    db.session.commit()

    response_object = {
        'status': 'success',
        'message': 'Survey was added!'
    }
    return jsonify(response_object), 201
예제 #15
0
def store():
    '''Salva i dati del questionario nel db'''

    # Set up data to store
    data = dict(request.args)
    type = 'POST'
    age = None
    if data.get('history') == 'NA':
        type = 'PRE'
    if data.get('age') != '':
        age = data.put('age')

    survey = Survey(data.get('tag'), classtoken, type, data.get('path'),
                    data.get('history'), data.get('gender'), age,
                    data.get('residence'), data.get('q1'), data.get('q2'),
                    data.get('q3'), data.get('q4'), data.get('q5'),
                    data.get('q6'), data.get('q7'), data.get('q8'),
                    data.get('q9'), data.get('freetext'))
    db_session.add(survey)
    db_session.commit()
    return render_template('credits.html', type=type, path=data.get('path'))
예제 #16
0
def store_surveys_to_db(db_session, requests_session):
    surveys_by_hash_id = {
        obj.public_hash_id: obj
        for obj in db_session.query(Survey).all()
    }
    res = []
    for survey in get_surveys(requests_session):
        if not filter_survey(survey):
            continue
        res.append(survey['public_hash_id'])
        survey_obj = surveys_by_hash_id.get(survey['public_hash_id'])
        if survey_obj:
            survey_obj.title = survey['title']
            survey_obj.status = survey['status']
            db_session.commit()
        else:
            db_session.add(
                Survey(
                    title=survey['title'],
                    public_hash_id=survey['public_hash_id'],
                    status=survey['status'],
                ))
            db_session.commit()
    return res
from app import db
from models import Survey, Task, Assignment, Response

import os

try:
    os.remove("sample.db")
except:
    pass

db.create_all()

survey = Survey()
task = Task()
assignment = Assignment()

fileNames = ["file1.mp3", "file2.mp3", "file3.mp3", "file4.mp3"]
answers = ["A", "B", "C", "D", "E"]

counts = []
counts.append([10, 8, 5, 0, 1])
counts.append([1, 26, 2, 3, 7])
counts.append([4, 0, 0, 3, 57])
counts.append([1, 6, 1, 5, 28])

index = 0

for i in range(0, len(fileNames)):
    answerCounts = counts[i]
    for j in range(0, len(answerCounts)):
        for k in range(0, answerCounts[j]):
예제 #18
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')