Ejemplo n.º 1
0
    def post(self):
        teksti_input = self.form.getvalue("teksti")
        teksti = None

        if teksti_input is not None:
            parser = CommentHTMLParser(
                ok_tags=["p", "strong", "pre", "em", "b", "br", "i", "hr", "s", "sub", "sup", "tt", "u"]
            )
            teksti = parser.parse_string(teksti_input)

        kuva_input = self.form.getvalue("kuva")
        kuva = None
        if kuva_input is not None and len(kuva_input) > 0:
            kuva = kuva_input

        kommentti = Kommentti.new(kohde_id=self.kohde_id, teksti=teksti, kuva=kuva)

        if self.sessio is not None:
            kommentti.omistaja = self.sessio.henkilo_id
            kommentti.save()

        self.redirect_after_post(
            "%s/%s/%d?comment_created=%d&yyy=%s"
            % (self.conf["script_name"], self.kohde_luokka, self.kohde_id, kommentti.kommentti_id, kuva is None)
        )

        return [self.headers, self.parameters]
Ejemplo n.º 2
0
    def delete(self):
        if not self.authorized():
            self.redirect_after_post(
                "%s/%s/%d?status=not_authorized" % (self.conf["script_name"], self.kohde_luokka, self.kohde_id)
            )

            return [self.headers, self.parameters]

        #
        # Salli DELETE vain yksittäisille kommenteille. Jos
        # kommentti_id:tä ei ole määritelty polussa, olisi DELETE
        # tulkittava niin, että kaikki reseptin kommentit halutaan
        # hävittää.
        #
        if self.kommentti_id is not None:
            Kommentti.delete(self.kommentti_id)

            self.redirect_after_post(
                "%s/%s/%d?comment_deleted=%d"
                % (self.conf["script_name"], self.kohde_luokka, self.kohde_id, self.kommentti_id)
            )

        return [self.headers, self.parameters]
Ejemplo n.º 3
0
    def get(self):
        if self.kuva_id is None:
            return None
        kuva = Kommentti.load_from_database(self.kuva_id)

        #
        # Koska tietokannassa on aikaleima kuvalle, täytetään
        # 'Last-Modified'-otsake. Toivottavasti tämä säästää
        # verkkoliikennettä.
        #
        image_timestamp_utc = kuva.aika - kuva.aika.utcoffset()

        data = str(kuva.kuva)

        print "Content-Type: image/jpeg"
        print "Content-Length: %d" % (len(data))
        print "Last-Modified: %s" % (image_timestamp_utc.strftime('%a, %d %b %Y %H:%M:%S GMT'))
        print ""

        sys.stdout.write(data)

        return None