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
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
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) }
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)