def save_xml_data_to_db(request): form_data_id = request.session['curateFormData'] form_data = FormData.objects.get(pk=form_data_id) form_id = request.session['form_id'] root_element = SchemaElement.objects.get(pk=form_id) xml_renderer = XmlRenderer(root_element) xml_string = xml_renderer.render() template_id = form_data.template # Parse data from form form = SaveDataForm(request.POST) if not form.data['title'].lower().endswith('.xml'): form.data['title'] += ".xml" if not form.is_valid(): return HttpResponseBadRequest('Invalid form name') if xml_string == "" or xml_string is None: return HttpResponseBadRequest('No XML data found') try: # update form data if id is present if form_data.xml_data_id is not None: if not form_data.isNewVersionOfRecord: #Update the record XMLdata.update_content(form_data.xml_data_id, xml_string, title=form.data['title']) #Delete form_data if form_data.schema_element_root is not None: delete_branch_from_db(form_data.schema_element_root.pk) form_data.delete() else: form_data.xml_data = xml_string form_data.save() else: # create new data otherwise xml_data = XMLdata(schemaID=template_id, xml=xml_string, title=form.data['title'], iduser=str(request.user.id)) xml_data.save() #Delete form_data because we just create an XmlData and we don't need anymore the formdata if form_data.schema_element_root is not None: delete_branch_from_db(form_data.schema_element_root.pk) form_data.delete() return HttpResponse('ok') except Exception, e: message = e.message.replace('"', '\'') return HttpResponseBadRequest(message)
def save_xml_data_to_db(request): form_data_id = request.session['curateFormData'] form_data = FormData.objects.get(pk=form_data_id) form_id = request.session['form_id'] root_element = SchemaElement.objects.get(pk=form_id) xml_renderer = XmlRenderer(root_element) xml_string = xml_renderer.render() # xmlString = request.session['xmlString'] # template_id = request.session['currentTemplateID'] template_id = form_data.template # Parse data from form form = SaveDataForm(request.POST) if not form.data['title'].lower().endswith('.xml'): form.data['title'] += ".xml" if not form.is_valid(): return HttpResponseBadRequest('Invalid form name') if xml_string == "" or xml_string is None: return HttpResponseBadRequest('No XML data found') try: # update data if id is present if form_data.xml_data_id is not None: XMLdata.update_content( form_data.xml_data_id, xml_string, title=form.data['title'] ) else: # create new data otherwise xml_data = XMLdata( schemaID=template_id, xml=xml_string, title=form.data['title'], iduser=str(request.user.id) ) xml_data.save() form_data.delete() return HttpResponse('ok') except Exception, e: message = e.message.replace('"', '\'') return HttpResponseBadRequest(message)
def save_xml_data_to_db(request): xmlString = request.session['xmlString'] templateID = request.session['currentTemplateID'] form = SaveDataForm(request.POST) if form.is_valid(): if xmlString != "": try: # get form data from the database form_data_id = request.session['curateFormData'] form_data = FormData.objects.get(pk=ObjectId(form_data_id)) if not form.data['title'].lower().endswith('.xml'): form.data['title'] += ".xml" # update data if id is present if form_data.xml_data_id is not None: XMLdata.update_content(form_data.xml_data_id, xmlString, title=form.data['title']) else: #create new data otherwise newJSONData = XMLdata(schemaID=templateID, xml=xmlString, title=form.data['title'], iduser=str(request.user.id)) newJSONData.save() # delete form data try: form_data = FormData.objects().get(pk=form_data_id) # cascade delete references for form_element_id in form_data.elements.values(): try: form_element = FormElement.objects().get(pk=form_element_id) if form_element.xml_element is not None: try: xml_element = XMLElement.objects().get(pk=str(form_element.xml_element.id)) xml_element.delete() except: # raise an exception when element not found pass form_element.delete() except: # raise an exception when element not found pass form_data.delete() except Exception, e: return HttpResponseBadRequest('Unable to save data.') return HttpResponse('ok') except Exception, e: message = e.message.replace('"', '\'') return HttpResponseBadRequest(message)