Пример #1
0
    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
Пример #2
0
        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
Пример #3
0
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
Пример #4
0
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
Пример #5
0
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
Пример #6
0
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