def process_request(self, request): if settings.RECORDING == True: if request.method == 'POST': posti = request.POST address = request.path kisa_haku = re.search("^/kipa/(.*?)/.*$", address) if not kisa_haku: return None kisa_nimi = kisa_haku.group(1) if kisa_nimi == "uusiKisa": kisa_nimi = posti['nimi'] record_name = "record/" + kisa_nimi + ".xml" data = impl.createDocument(None, "uusi_lisa", None) post_test = data.createElement('post_request') post_test.setAttribute("address", address) for n, v in posti.iteritems(): elem = data.createElement('input') elem.setAttribute("name", n) elem.setAttribute("value", v) post_test.appendChild(elem) data.childNodes[0].appendChild(post_test) if not os.path.isfile(record_name): uusi = open(record_name, "w") if not kisa_haku.group(1) == "uusiKisa": kisa = Kisa.objects.get(nimi=kisa_haku.group(1)) vanha = kisa_xml(kisa) print vanha uusi.write( kisa_xml(kisa)) # talletetaan kisan kanta pohjaksi else: uusi.write( record_base ) # uusi kisa -> ei olemassaolevaa tietokantaa. uusi.close() pos = next = 0 filuu = open(record_name, 'r') for line in filuu.readlines(): pos = next # position of beginning of this line next += len( line) # compute position of beginning of next line filuu.close() FILE = open(record_name, "r+") FILE.seek(pos, 0) uusi = data.toprettyxml(encoding="utf-8", indent=' ', newl="\n") for line in uusi.splitlines()[2:-1]: FILE.write(line + "\n") FILE.write("</django-objects>") FILE.close() return None
def process_request(self, request) : if settings.RECORDING==True: if request.method == 'POST': posti=request.POST address=request.path kisa_haku = re.search("^/kipa/(.*?)/.*$",address) if not kisa_haku: return None kisa_nimi = kisa_haku.group(1) if kisa_nimi == "uusiKisa" : kisa_nimi = posti['nimi'] record_name="record/" + kisa_nimi +".xml" data = impl.createDocument(None, "uusi_lisa", None) post_test = data.createElement('post_request') post_test.setAttribute("address", address ) for n,v in posti.iteritems(): elem = data.createElement('input') elem.setAttribute("name", n ) elem.setAttribute("value", v ) post_test.appendChild(elem) data.childNodes[0].appendChild(post_test) if not os.path.isfile(record_name) : uusi = open(record_name,"w") if not kisa_haku.group(1) == "uusiKisa" : kisa = Kisa.objects.get( nimi=kisa_haku.group(1) ) vanha = kisa_xml(kisa) print vanha uusi.write( kisa_xml(kisa) ) # talletetaan kisan kanta pohjaksi else : uusi.write(record_base) # uusi kisa -> ei olemassaolevaa tietokantaa. uusi.close() pos = next = 0 filuu = open(record_name, 'r') for line in filuu.readlines(): pos = next # position of beginning of this line next += len(line) # compute position of beginning of next line filuu.close() FILE = open(record_name,"r+") FILE.seek(pos,0) uusi=data.toprettyxml(encoding="utf-8",indent=' ', newl="\n") for line in uusi.splitlines()[2:-1]: FILE.write(line+"\n") FILE.write( "</django-objects>" ) FILE.close() return None
def post_txt(request,parametrit): """ Apunäkymä virhetilanteisiin. (error 500,server internal error) -Luo kisan tietokannan xml formaattiin ja lisää perään post_data:n testausta varten. -Palauttaa xml tiedoston. """ from xml.dom.minidom import parseString kisa_nimi = re.search(r'^osoite=/kipa/(\w+)/',parametrit).group(1) kisa = get_object_or_404(Kisa, nimi=kisa_nimi) test_data=kisa_xml(kisa) post_data= parametrit.split("&") doc = parseString( test_data ) post_test = doc.createElement('post_request') post_test.setAttribute("address", post_data[0].split('=')[1]) for p in post_data[1:]: data=p.split('=') elem = doc.createElement('input') elem.setAttribute("name", data[0] ) elem.setAttribute("value", data[1] ) post_test.appendChild(elem) doc.childNodes[0].appendChild(post_test) response = HttpResponse(doc.toprettyxml(indent=" "), mimetype='application/xml', context_instance=RequestContext(request),) response['Content-Disposition'] = 'attachment; filename=tietokanta.xml' return response
def post_txt(request, parametrit): """ Apunäkymä virhetilanteisiin. (error 500,server internal error) -Luo kisan tietokannan xml formaattiin ja lisää perään post_data:n testausta varten. -Palauttaa xml tiedoston. """ from xml.dom.minidom import parseString kisa_nimi = re.search(r'^osoite=/kipa/(\w+)/', parametrit).group(1) kisa = get_object_or_404(Kisa, nimi=kisa_nimi) test_data = kisa_xml(kisa) post_data = parametrit.split("&") doc = parseString(test_data) post_test = doc.createElement('post_request') post_test.setAttribute("address", post_data[0].split('=')[1]) for p in post_data[1:]: data = p.split('=') elem = doc.createElement('input') elem.setAttribute("name", data[0]) elem.setAttribute("value", data[1]) post_test.appendChild(elem) doc.childNodes[0].appendChild(post_test) response = HttpResponse( doc.toprettyxml(indent=" "), mimetype='application/xml', context_instance=RequestContext(request), ) response['Content-Disposition'] = 'attachment; filename=tietokanta.xml' return response
def tallennaKisa(request, kisa_nimi): """ Palauttaa käyttäjälle valitun kisan xml formaatissa. Jättää henkilöt ja allergiat tallentamatta. """ kisa = get_object_or_404(Kisa, nimi=kisa_nimi) response = HttpResponse( kisa_xml(kisa) , mimetype='application/xml') response['Content-Disposition'] = 'attachment; filename=tietokanta.xml' return response
def tallennaKisa(request, kisa_nimi): """ Palauttaa käyttäjälle valitun kisan xml formaatissa. Jättää henkilöt ja allergiat tallentamatta. """ kisa = get_object_or_404(Kisa, nimi=kisa_nimi) response = HttpResponse(kisa_xml(kisa), mimetype='application/xml') response['Content-Disposition'] = 'attachment; filename=tietokanta.xml' return response