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]
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]
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