示例#1
0
def _get_submissions_for_display(current_page,
                                 dbm,
                                 questionnaire_code,
                                 questions,
                                 pagination,
                                 start_time=None,
                                 end_time=None):
    if pagination:
        submissions, ids = get_submissions_made_for_form(
            dbm,
            questionnaire_code,
            start_time=start_time,
            end_time=end_time,
            page_number=current_page,
            page_size=PAGE_SIZE)
    else:
        submissions, ids = get_submissions_made_for_form(
            dbm,
            questionnaire_code,
            start_time=start_time,
            end_time=end_time,
            page_number=current_page,
            page_size=None)
    submissions = helper.get_submissions(questions, submissions)
    return submissions, ids
示例#2
0
def _get_submissions_for_display(current_page, dbm, questionnaire_code, questions, pagination, start_time = None, end_time = None):
    if pagination:
        submissions, ids = get_submissions_made_for_form(dbm, questionnaire_code, start_time=start_time, end_time=end_time, page_number=current_page,
                                                         page_size=PAGE_SIZE)
    else:
        submissions, ids = get_submissions_made_for_form(dbm, questionnaire_code, start_time=start_time, end_time=end_time, page_number=current_page,
                                                         page_size=None)
    submissions = helper.get_submissions(questions, submissions)
    return submissions, ids
示例#3
0
 def test_error_messages_are_being_logged_in_submissions(self):
     text = "clinic +EID %s +ARV 150 " % self.entity.id
     self.send_sms(text)
     oneDay = datetime.timedelta(days=1)
     tomorrow = datetime.datetime.now() + oneDay
     submission_list, ids = get_submissions_made_for_form(self.dbm, "clinic", 0,
                                                          int(mktime(tomorrow.timetuple())) * 1000)
     self.assertEquals(1, len(submission_list))
     self.assertEquals(u"Answer 150 for question ARV is greater than allowed.", submission_list[0]['error_message'])
示例#4
0
    def test_get_submissions_for_form(self):
        self.dbm._save_document(
            SubmissionLogDocument(channel="transport",
                                  source=1234,
                                  destination=12345,
                                  form_code="abc",
                                  values={
                                      'Q1': 'ans1',
                                      'Q2': 'ans2'
                                  },
                                  status=False,
                                  error_message="",
                                  data_record_id='2345678'))
        self.dbm._save_document(
            SubmissionLogDocument(channel="transport",
                                  source=1234,
                                  destination=12345,
                                  form_code="abc",
                                  values={
                                      'Q1': 'ans12',
                                      'Q2': 'ans22'
                                  },
                                  status=False,
                                  error_message="",
                                  data_record_id='1234567'))
        self.dbm._save_document(
            SubmissionLogDocument(channel="transport",
                                  source=1234,
                                  destination=12345,
                                  form_code="def",
                                  values={
                                      'defQ1': 'defans12',
                                      'defQ2': 'defans22'
                                  },
                                  status=False,
                                  error_message="",
                                  data_record_id='345678'))

        oneDay = datetime.timedelta(days=1)
        tomorrow = datetime.datetime.now() + oneDay
        submission_list, ids = get_submissions_made_for_form(
            self.dbm, "abc", 0,
            int(mktime(tomorrow.timetuple())) * 1000)
        self.assertEquals(2, len(submission_list))
        self.assertEquals({
            'Q1': 'ans12',
            'Q2': 'ans22'
        }, submission_list[0]['values'])
        self.assertEquals({
            'Q1': 'ans1',
            'Q2': 'ans2'
        }, submission_list[1]['values'])
        self.assertEquals(2, len(ids))
        self.assertListEqual(['1234567', '2345678'], ids)
示例#5
0
 def test_error_messages_are_being_logged_in_submissions(self):
     text = "clinic +EID %s +ARV 150 " % self.entity.id
     self.send_sms(text)
     oneDay = datetime.timedelta(days=1)
     tomorrow = datetime.datetime.now() + oneDay
     submission_list, ids = get_submissions_made_for_form(
         self.dbm, "clinic", 0,
         int(mktime(tomorrow.timetuple())) * 1000)
     self.assertEquals(1, len(submission_list))
     self.assertEquals(
         u"Answer 150 for question ARV is greater than allowed.",
         submission_list[0]['error_message'])
示例#6
0
def activate_project(request, project_id=None):
    manager = get_database_manager(request)
    project = models.get_project(project_id, manager)
    project.activate(manager)
    form_model = helper.load_questionnaire(manager, project.qid)
    oneDay = datetime.timedelta(days=1)
    tomorrow = datetime.datetime.now() + oneDay
    submissions, ids = get_submissions_made_for_form(manager, form_model.form_code, start_time=0, end_time=int(mktime(tomorrow.timetuple())) * 1000,
                                                         page_size=None)
    for each in ids:
        if each is not None:
            data_record = manager._load_document(each, DataRecordDocument)
            manager.invalidate(each)
            SubmissionLogger(manager).void_data_record(data_record.submission.get("submission_id"))
    return HttpResponseRedirect(reverse(project_overview, args=[project_id]))
示例#7
0
def activate_project(request, project_id=None):
    manager = get_database_manager(request)
    project = models.get_project(project_id, manager)
    project.activate(manager)
    form_model = helper.load_questionnaire(manager, project.qid)
    oneDay = datetime.timedelta(days=1)
    tomorrow = datetime.datetime.now() + oneDay
    submissions, ids = get_submissions_made_for_form(
        manager,
        form_model.form_code,
        start_time=0,
        end_time=int(mktime(tomorrow.timetuple())) * 1000,
        page_size=None)
    for each in ids:
        if each is not None:
            data_record = manager._load_document(each, DataRecordDocument)
            manager.invalidate(each)
            SubmissionLogger(manager).void_data_record(
                data_record.submission.get("submission_id"))
    return HttpResponseRedirect(reverse(project_overview, args=[project_id]))
示例#8
0
    def test_get_submissions_for_form(self):
        self.dbm._save_document(SubmissionLogDocument(channel="transport", source=1234,
                                                      destination=12345, form_code="abc",
                                                      values={'Q1': 'ans1', 'Q2': 'ans2'},
                                                      status=False, error_message="", data_record_id='2345678'))
        self.dbm._save_document(SubmissionLogDocument(channel="transport", source=1234,
                                                      destination=12345, form_code="abc",
                                                      values={'Q1': 'ans12', 'Q2': 'ans22'},
                                                      status=False, error_message="", data_record_id='1234567'))
        self.dbm._save_document(SubmissionLogDocument(channel="transport", source=1234,
                                                      destination=12345, form_code="def",
                                                      values={'defQ1': 'defans12', 'defQ2': 'defans22'},
                                                      status=False, error_message="", data_record_id='345678'))

        oneDay = datetime.timedelta(days=1)
        tomorrow = datetime.datetime.now() + oneDay
        submission_list, ids = get_submissions_made_for_form(self.dbm, "abc", 0,
                                                             int(mktime(tomorrow.timetuple())) * 1000)
        self.assertEquals(2, len(submission_list))
        self.assertEquals({'Q1': 'ans12', 'Q2': 'ans22'}, submission_list[0]['values'])
        self.assertEquals({'Q1': 'ans1', 'Q2': 'ans2'}, submission_list[1]['values'])
        self.assertEquals(2, len(ids))
        self.assertListEqual(['1234567', '2345678'], ids)