def add_survey(): form = SurveyForm() form.event.query_factory = event_query if form.validate_on_submit(): value_average = (form.value_1.data + form.value_2.data + form.value_3.data + form.value_4.data + form.value_5.data) / 5 speaker_average = (form.speaker_1.data + form.speaker_2.data + form.speaker_3.data) / 3 content_average = (form.content_1.data + form.content_2.data) / 2 facility_average = (form.facility_1.data + form.facility_2.data) / 2 overall_average = (value_average + speaker_average + content_average + facility_average) / 4 survey = Survey(value_1=form.value_1.data, value_2=form.value_2.data, value_3=form.value_3.data, value_4=form.value_4.data, value_5=form.value_5.data, value_average=value_average, speaker_1=form.speaker_1.data, speaker_2=form.speaker_2.data, speaker_3=form.speaker_3.data, speaker_average=speaker_average, content_1=form.content_1.data, content_2=form.content_2.data, content_average=content_average, facility_1=form.facility_1.data, facility_2=form.facility_2.data, facility_average=facility_average, response_1=form.response_1.data, response_2=form.response_2.data, response_3=form.response_3.data, response_4=form.response_4.data, name=form.name.data, email=form.email.data, overall_average=overall_average ) db.session.add(survey) db.session.commit() survey.event = form.event.data db.session.commit() for speaker in survey.event.speakers: update_speaker(speaker) update_event(survey.event) flash("Survey Saved.") return redirect(url_for('index')) return render_template('add_survey.html', title='Add Survey', form=form)
def reports(): """Generate reports.""" from app import mail from flask_mail import Message from app.models import User, Survey user = User() survey = Survey() msg = Message("MS-Registry Reports", recipients=app.config['MAIL_RECIPIENTS']) user_report_filename = user.getCSVReportInformedConsent() with app.open_resource( os.path.join(app.config['REPORTS_DIR'], user_report_filename)) as fp: msg.attach(user_report_filename, "text/csv", fp.read()) survey_report_filename = survey.getCSVReportTagsAndOngoing() with app.open_resource( os.path.join(app.config['REPORTS_DIR'], survey_report_filename)) as fp: msg.attach(survey_report_filename, "text/csv", fp.read()) mail.send(msg)
def addSurvey(): form = addSurveyForm() if form.validate_on_submit(): survey = Survey( title=form.title.data, description=form.describe.data, content_origin=form.content.data, dimension=form.dimension.data, uptime=datetime.now(), author=current_user ) if current_user.is_administrator(): survey.status = SurveyStatus.PUB survey_origin = SurveyMeta( meta_key='survey_origin', meta_value=form.content.data, author_id=current_user.id, survey=survey ) db.session.add(survey) db.session.add(survey_origin) db.session.add(Distribute(owner=current_user, survey=survey, type=OwnerType.OWNER)) db.session.commit() flash(u'操作成功') return redirect(url_for('manage.listSurvey')) return render_template('manage/add_survey.html', form=form, pagetitle=u'添加问卷', surveyManage='active' )
def InsertData(request): if request.method == 'POST': Survey( #rnum = len(list(Survey.objects.all().values())) + 1, #자동증가 칼럼이 아닌 경우 gender=request.POST.get('gender'), age=request.POST.get('age'), co_survey=request.POST.get('co_survey'), ).save()
def get_all_users(): """ Get all users """ from app.models import User, Survey user = User() survey = Survey() all_users = user.getAll() all_surveys = survey.getAll() print("Found {0} users".format(len(all_users))) print("Found {0} surveys".format(len(all_surveys)))
def add_survey(data): form = AddSurveyForm() if form.validate_on_submit(): try: s = Survey(name=form.name.data, survey_id=form.survey_id.data) db.session.add(s) db.session.commit() except IntegrityError: flash('Survey already registered') return redirect(url_for('survey'))
def test_addByUniqueID(self): u = User() self.assertTrue(u.createIfNotExistsByUniqueID(self.uniqueID)) s = Survey() self.assertTrue( s.addByUniqueID(self.uniqueID, { 'survey': { 'value': 'any' }, 'tags': ['tag'], 'ongoing': True }))
def test_delete_user(test_client, test_db): admin_user = User.query.filter_by(username='******').first() user_to_delete = User.query.filter_by(username='******').first() user_to_delete_id = user_to_delete.id # add a survey survey = Survey(name='test survey', structure={}, created_by=user_to_delete, updated_by=user_to_delete) test_db.session.add(survey) test_db.session.commit() # posts some responses survey_response = SurveyResponse(survey_id=survey.id, structure={}, created_by=user_to_delete, updated_by=user_to_delete) test_db.session.add(survey_response) survey_response2 = SurveyResponse(survey_id=survey.id, structure={}, created_by=user_to_delete, updated_by=user_to_delete) test_db.session.add(survey_response2) test_db.session.commit() # add a case definition case_definition = CaseDefinition(name="Test Case Definition", key='TCD', created_by=user_to_delete, updated_by=user_to_delete) test_db.session.add(case_definition) test_db.session.commit() access_token = create_access_token(identity=admin_user.id) response = test_client.delete(f"/users/{user_to_delete.id}", headers={ 'Content-Type': 'application/json', 'Authorization': f"Bearer {access_token}" }) assert response.status_code == 200 # assert all references to user are now admin assert survey.created_by.id == admin_user.id assert survey.updated_by.id == admin_user.id assert survey_response.created_by.id == admin_user.id assert survey_response.updated_by.id == admin_user.id assert survey_response2.created_by.id == admin_user.id assert survey_response2.updated_by.id == admin_user.id assert case_definition.created_by.id == admin_user.id assert case_definition.updated_by.id == admin_user.id # assert user is deleted assert len(User.query.filter_by(username='******').all()) == 0
def create_survey(): req_data = request.get_json() new_survey = Survey(title=req_data['title']) db.session.add(new_survey) for question_data in req_data.get('questions', []): question = Question(survey=new_survey, text=question_data['text']) db.session.add(question) db.session.commit() return jsonify(new_survey.as_dict())
def survey(): visit = User.query.filter_by(username=current_user.username).first() visit.surveyVisted = 1 form = SurveyForm() if form.validate_on_submit(): option = Survey(major=form.major.data, outdoor=form.outdoor.data, indoor=form.indoor.data, question = form.question.data, answer = form.answer.data, user_id=current_user.id) db.session.add(option) db.session.commit() return redirect(url_for('user', username=current_user.username)) return render_template('Survey.html', form=form, title="Survey")
def test_new_survey(): survey = Survey(name='hiren raj') assert survey.name == 'hiren raj'
def test_survey_repr(): survey = repr(Survey(name='Test')) assert survey == '<name : Test>'
def test_survey_verify(): survey = Survey(name='') with pytest.raises(Exception): survey.verify(survey)
def test_survey_can_delete(): survey = Survey(name='Hiren Raj') with pytest.raises(Exception): survey.can_delete()
def test_post_valid_case_definition(test_client, test_db): num_definitions_before = test_db.session.query(CaseDefinition).count() user = User.query.filter_by(username='******').first() survey = Survey(name='Test Survey', reporting_table_name='test_survey', structure={ "pages": [{ "name": "page1", "elements": [{ "type": "text", "name": "question1" }] }], "title": "Test Survey" }, created_by=user, updated_by=user) test_db.session.add(survey) test_db.session.commit() survey_id = survey.id case_definition = { "name": "Test Case Definition 6", "key": "TCD1", "description": "This is a description of the test case definition 6", "surveys": [survey_id], "documents": [{ "name": "Birth Certificate", "description": "blash blah", "is_required": True }, { "name": "Document 2", "description": "blash blah", "is_required": False }], "custom_fields": [{ "name": "Household Long Text", "field_type": "textarea", "selections": None, "validation_rules": None, "custom_section_id": None, "help_text": "This is for longer answers", "sort_order": 1 }, { "name": "Household Selection Field", "field_type": "select", "selections": [{ "id": "1", "value": "Household Selection Option A" }, { "id": "2", "value": "Household Selection Option B" }, { "id": "3", "value": "Household Selection Option C" }], "validation_rules": None, "custom_section_id": None, "help_text": "This is for a single selection among many", "sort_order": 2 }] } access_token = create_access_token(identity=user.id) response = test_client.post("/case_definitions/", data=json.dumps(case_definition), headers={ 'Content-Type': 'application/json', 'Authorization': f"Bearer {access_token}" }) assert response.status_code == 200 assert (num_definitions_before + 1) == test_db.session.query(CaseDefinition).count() json_data = response.get_json() assert json_data['id'] assert len(json_data['surveys']) == 1 assert len(json_data['documents']) == 2 assert len(json_data['custom_fields']) == 2 cd = CaseDefinition.query.get(json_data['id']) assert cd assert len(cd.surveys.all()) == 1 assert len(cd.documents) == 2 assert len(cd.custom_fields) == 2