Ejemplo n.º 1
0
    def perform_ratings_from_dictionary(self, bathroom, user, dic):
        if "user_ratings" in dic:
            ratings = dic["user_ratings"]

            if ratings["cleanliness"] is not None:
                clean = Rating(0, ratings["cleanliness"])
                clean.user = user
                clean.bathroom = bathroom
                db.session.add(clean)
                db.session.commit()

            if ratings["privacy"] is not None:
                priv = Rating(1, ratings["privacy"])
                priv.user = user
                priv.bathroom = bathroom
                db.session.add(priv)
                db.session.commit()

            if ratings["atmosphere"] is not None:
                atm = Rating(2, ratings["atmosphere"])
                atm.user = user
                priv.bathroom = bathroom
                db.session.add(atm)
                db.session.commit()

            if ratings["location_accessibility"] is not None:
                loc = Rating(3, ratings["location_accessibility"])
                loc.user = user
                loc.bathroom = bathroom
                db.session.add(loc)
                db.session.commit()

        return True
Ejemplo n.º 2
0
    def set_user_bathroom_rating(self, user, rating):

        b = Bathroom.query.filter_by(id=rating["bathroom_id"]).first()
        if not b:
            return (False,
                    "bathroom with id %d not found" % rating["bathroom_id"])

        if not (rating["rating"] > 0 and rating["rating"] <= 5):
            return (False, "invalid rating")
        # need to check if rating already exists
        existing_rating = Rating.query.filter_by(user_id=user.id).filter_by(
            bathroom_id=b.id).filter_by(
                rating_type=int(rating["rating_type"])).first()
        if existing_rating:
            existing_rating.rating = rating["rating"]
        else:
            r = Rating(rating["rating_type"], rating["rating"])
            r.user = user
            r.bathroom = b
            db.session.add(r)
        db.session.commit()
        return True, ""