def _post_save(self, response, new_submission=False):
        mail_feed_errors(response, self.manager.database_name)
        if response.errors:
            logger.error("Error in submission : \n%s" %
                         get_errors(response.errors))
            messages.error(self.request,
                           ugettext('Submission failed %s' %
                                    get_errors(response.errors)),
                           extra_tags='error')
            return HttpResponseBadRequest()

        self.organization.increment_message_count_for(incoming_web_count=1)
        content = json.dumps({
            'submission_uuid':
            response.survey_response_id,
            'version':
            response.version,
            'created':
            py_datetime_to_js_datestring(response.created)
        })
        success_response = HttpResponse(content,
                                        status=201,
                                        content_type='application/json')
        success_response['submission_id'] = response.survey_response_id

        if new_submission:
            messages.success(self.request,
                             ugettext('Successfully submitted'),
                             extra_tags='success')

        check_quotas_and_update_users(self.organization)
        return success_response
예제 #2
0
 def get_submissions(self):
     submission_list = []
     submissions = get_survey_responses(
         self.manager,
         self.questionnaire.id,
         None,
         None,
         view_name="undeleted_survey_response")
     for submission in submissions:
         submission_list.append({
             'submission_uuid':
             submission.id,
             'version':
             submission.version,
             'project_uuid':
             self.questionnaire.id,
             'created':
             py_datetime_to_js_datestring(submission.created)
         })
     return submission_list
예제 #3
0
    def get_submission(self, submission_uuid):
        submission = get_survey_response_by_id(self.manager, submission_uuid)
        imageProcessor = XFormImageProcessor()

        return {
            'submission_uuid':
            submission.id,
            'version':
            submission.version,
            'project_uuid':
            self.questionnaire.id,
            'created':
            py_datetime_to_js_datestring(submission.created),
            'media_file_names_string':
            imageProcessor.get_media_files_str(self.questionnaire.fields,
                                               submission.values),
            'xml':
            self._model_str_of(
                submission.id,
                get_generated_xform_id_name(self.questionnaire.xform)),
            'data':
            json.dumps(submission.values)
        }
예제 #4
0
 def _to_json(self, value):
     if isinstance(value, struct_time):
         value = datetime.datetime.utcfromtimestamp(calendar.timegm(value))
     elif not isinstance(value, datetime.datetime):
         value = datetime.datetime.combine(value, datetime.time(0))
     return py_datetime_to_js_datestring(value)