Пример #1
0
def uusi_viesti():

    form = ViestiForm(request.form)
    # tagit = Tagi.query.all()
    form.tagit.query = Tagi.query.all()
    print(form.tagit)

    if request.method == "GET":
        return render_template("viestit/uusi_viesti.html", form=form)

    if not form.validate():
        return render_template(
            "viestit/uusi_viesti.html",
            form=form,
            sanoma=
            "Otsikon pitää olla vähintään neljä ja enintään neljäkymmentä sekä viestin vähintään neljä ja enintään tuhat merkkiä pitkä"
        )

    viesti = Viesti(form.otsikko.data, form.sisalto.data, None)
    viesti.kayttaja_id = current_user.id

    db.session().add(viesti, viesti.id)
    db.session().commit()

    Tagitus.tallenna_viestin_tagit(form.tagit.data, viesti.id)

    return redirect(url_for("index"))
Пример #2
0
def tagi(tagi_id):
    t = Tagi.query.get(tagi_id)
    v = Tagitus.query.filter_by(tagi_id=tagi_id).count()
    viestit = Viesti.viestit_tagista_vastausmaarilla(tagi_id)

    # viritellään paginaatio
    def get_viestit(offset=0, per_page=10):
        return viestit[offset:offset + per_page]

    page, per_page, offset = get_page_args(page_parameter='page',
                                           per_page_parameter='per_page')
    total = len(viestit)
    pagination_viestit = get_viestit(offset=offset, per_page=per_page)
    pagination = Pagination(page=page,
                            per_page=per_page,
                            total=total,
                            css_framework='bootstrap4')
    return render_template(
        "viestit/tagi.html",
        viestit=pagination_viestit,
        page=page,
        tagi=t,
        viesteja=v,
        per_page=per_page,
        pagination=pagination,
    )
Пример #3
0
def uusi_vastaus(viesti_id):
    form = VastausForm(request.form)
    viesti = Viesti.query.get(viesti_id)

    if not form.validate():
        return render_template(
            "/viesti/<viesti_id>",
            form=form,
            sanoma=
            "Vastauksen pitää olla vähintään neljä ja enintään tuhat merkkiä pitkä",
            viesti=viesti)

    vastaus = Viesti(None, form.sisalto.data, int(viesti_id))
    vastaus.kayttaja_id = current_user.id

    db.session().add(vastaus)
    db.session().commit()

    return redirect(url_for("viesti", viesti_id=viesti_id))
Пример #4
0
def viesti(viesti_id):
    viesti = Viesti.query.get(viesti_id)
    kayttaja = Kayttaja.query.filter_by(id=viesti.kayttaja_id).first()

    return render_template(
        "viestit/viesti.html",
        viesti=Viesti.query.get(viesti_id),
        tagit=Tagi.tagit_viestille(viesti_id),
        kayttaja=kayttaja,
        vastaukset=Viesti.kaikki_vastaukset_kayttajanimilla(viesti_id),
        form=VastausForm(),
    )
Пример #5
0
def poista_kayttaja(kayttaja_id):

    if current_user.yllapitaja == False:
        return redirect(url_for("index"))

    if int(kayttaja_id) == current_user.id:
        kayttajat = Kayttaja.query.all()
        sanoma="Et voi poistaa itseäsi"
        return render_template("auktorisointi/kayttajien_hallinta.html", sanoma=sanoma, kayttajat = kayttajat)

    t = request.form.get("poista")
    
    if t == 'poistele':

        poistettavaKayttaja = Kayttaja.query.filter_by(id=kayttaja_id).first()

        Viesti.vaihda_viestien_luojaa(poistettavaKayttaja.id)

        db.session.delete(poistettavaKayttaja)
        db.session.commit()
        

    return redirect(url_for("kayttajien_hallinta"))
Пример #6
0
def viestit_luo():
    form = ViestiLomake(request.form)

    # choises asetettava uudelleen koska niitä ole asetettu lomakkeessa
    # tehtävä jo tässä koska automaattinen validointi tarvitsee niitä
    form.aiheet.choices = [(aihe.id, aihe.aihe) for aihe in Aihe.query.all()]

    if not form.validate():
        return render_template("viestit/uusi.html", form=form)

    aiheet = Aihe.query.filter(Aihe.id.in_(form.aiheet.data)).all()

    viesti = Viesti(form.otsikko.data, form.teksti.data, aiheet,
                    form.vastattava_viesti.data, current_user.id)
    viesti.lukeneet.append(current_user)
    db.session().add(viesti)
    db.session().commit()

    return redirect(url_for("viestit_index"))
Пример #7
0
 def get_viestit(offset=0, per_page=10):
     return Viesti.kaikki_viestit_vastausmaarilla()[offset:offset +
                                                    per_page]