def get_simple_instance(self, custom_values={}): simple_xforms = XForm.objects.filter(title=u"WaterSimple") if simple_xforms.count() == 0: xf = self.create_simple_xform() else: xf = simple_xforms[0] #these values can be overridden with custom values values = { u'device_id': u'12345', u'start': u'2011-01-01T09:50:06.966', u'end': u'2011-01-01T09:53:22.965', u'geopoint': u'40.783594633609184 -73.96436698913574 300.0 4.0' } if u'start' in custom_values: st = custom_values[u'start'] custom_values[u'start'] = st.strftime(XFORM_TIME_FORMAT) #if no end_time is specified, defaults to 1 hour values[u'end'] = (st + ONE_HOUR).strftime(XFORM_TIME_FORMAT) if u'end' in custom_values: custom_values[u'end'] = custom_values[u'end'].strftime( XFORM_TIME_FORMAT) values.update(custom_values) water_simple_survey = _load_simple_survey_object() simple_survey = water_simple_survey.instantiate() for k, v in values.items(): simple_survey.answer(name=k, value=v) #setting the id_string so that it doesn't end up #with the timestamp of the new survey object simple_survey._id = xf.id_string instance_xml = simple_survey.to_xml() return Instance(xml=instance_xml)
def get_registration_instance(self, custom_values={}): """ 1. Checks to see if the registration form has been created alread. If not, it loads it in. 2. Loads a registration instance. """ registration_xforms = XForm.objects.filter(title=u"registration") if registration_xforms.count() == 0: xf = self.create_registration_xform() else: xf = registration_xforms[0] values = { u'device_id': u'12345', u'start': u'2011-01-01T09:50:06.966', u'end': u'2011-01-01T09:53:22.965' } if u'start' in custom_values: st = custom_values[u'start'] custom_values[u'start'] = st.strftime(XFORM_TIME_FORMAT) #if no end_time is specified, defaults to 1 hour values[u'end'] = (st + ONE_HOUR).strftime(XFORM_TIME_FORMAT) if u'end' in custom_values: custom_values[u'end'] = custom_values[u'end'].strftime( XFORM_TIME_FORMAT) values.update(custom_values) reg_xform = _load_registration_survey_object() reg_instance = reg_xform.instantiate() reg_instance._id = xf.id_string for k, v in values.items(): reg_instance.answer(name=k, value=v) instance_xml = reg_instance.to_xml() return Instance(xml=instance_xml)