P5-4794 optimize listprice code and fix wallpaper listprice

This commit is contained in:
Martin Carlsson
2020-02-07 13:04:54 +01:00
committed by GitHub
parent 2f4275e66a
commit 6184328d6c
2 changed files with 6 additions and 12 deletions
+1 -5
View File
@@ -4,7 +4,6 @@ from datetime import datetime
from api.extensions import db from api.extensions import db
from flask_sqlalchemy import BaseQuery from flask_sqlalchemy import BaseQuery
from sqlalchemy import or_ from sqlalchemy import or_
from sqlalchemy.orm import joinedload
class Product(db.Model): class Product(db.Model):
@@ -99,9 +98,6 @@ class PrintProductQuery(BaseQuery):
def framed_prints(self): def framed_prints(self):
return self.filter(PrintProduct.groupid == 8) return self.filter(PrintProduct.groupid == 8)
def with_relations(self):
return self.options(joinedload("*"))
class PrintProduct(db.Model): class PrintProduct(db.Model):
@@ -115,4 +111,4 @@ class PrintProduct(db.Model):
) )
groupid = db.Column(db.Integer, nullable=False) groupid = db.Column(db.Integer, nullable=False)
product = db.relationship("Product", backref="printproducts") product = db.relationship("Product", backref="printproducts", lazy="joined")
+5 -7
View File
@@ -512,15 +512,13 @@ def inquiry(inquiry_id):
@mod.route("/list-prices/<string:territory>/wallpaper") @mod.route("/list-prices/<string:territory>/wallpaper")
def list_prices_wallpaper(territory): def list_prices_wallpaper(territory):
wallpapers = PrintProduct.query.wallpapers().with_relations().all() wallpapers = PrintProduct.query.wallpapers().all()
result = {} result = {}
material = Material.query.filter(Material.name == "standard-wallpaper").one() material = Material.query.filter(Material.name == "standard-wallpaper").one()
market = market_model.from_territory(territory) market = market_model.from_territory(territory)
for wallpaper in wallpapers: for wallpaper in wallpapers:
result[wallpaper.id] = wallpaper_price( result[wallpaper.id] = m2_price(
width=100,
height=100,
material=material, material=material,
market=market, market=market,
designer=wallpaper.product.designer, designer=wallpaper.product.designer,
@@ -530,7 +528,7 @@ def list_prices_wallpaper(territory):
@mod.route("/list-prices/<string:territory>/canvas") @mod.route("/list-prices/<string:territory>/canvas")
def list_prices_canvas(territory): def list_prices_canvas(territory):
canvases = PrintProduct.query.canvases().with_relations().all() canvases = PrintProduct.query.canvases().all()
market = market_model.from_territory(territory) market = market_model.from_territory(territory)
result = {} result = {}
@@ -547,7 +545,7 @@ def list_prices_canvas(territory):
@mod.route("/list-prices/<string:territory>/poster") @mod.route("/list-prices/<string:territory>/poster")
def list_prices_posters(territory): def list_prices_posters(territory):
posters = PrintProduct.query.posters().with_relations().all() posters = PrintProduct.query.posters().all()
market = market_model.from_territory(territory) market = market_model.from_territory(territory)
result = {} result = {}
@@ -564,7 +562,7 @@ def list_prices_posters(territory):
@mod.route("/list-prices/<string:territory>/framed-print") @mod.route("/list-prices/<string:territory>/framed-print")
def list_prices_framed_prints(territory): def list_prices_framed_prints(territory):
framed_prints = PrintProduct.query.framed_prints().with_relations().all() framed_prints = PrintProduct.query.framed_prints().all()
market = market_model.from_territory(territory) market = market_model.from_territory(territory)
result = {} result = {}