Fix incorrect rate query
This commit is contained in:
parent
d6ca5e2922
commit
04358a5506
|
@ -7,7 +7,7 @@ from typing import Dict, List, Set
|
||||||
|
|
||||||
from boltons import urlutils
|
from boltons import urlutils
|
||||||
from citext import CIText
|
from citext import CIText
|
||||||
from ereuse_utils.naming import Naming
|
from ereuse_utils.naming import Naming, HID_CONVERSION_DOC
|
||||||
from more_itertools import unique_everseen
|
from more_itertools import unique_everseen
|
||||||
from sqlalchemy import BigInteger, Boolean, Column, Enum as DBEnum, Float, ForeignKey, Integer, \
|
from sqlalchemy import BigInteger, Boolean, Column, Enum as DBEnum, Float, ForeignKey, Integer, \
|
||||||
Sequence, SmallInteger, Unicode, inspect, text
|
Sequence, SmallInteger, Unicode, inspect, text
|
||||||
|
@ -57,11 +57,7 @@ class Device(Thing):
|
||||||
from Devicehub using literal identifiers from the device,
|
from Devicehub using literal identifiers from the device,
|
||||||
so it can re-generated *offline*.
|
so it can re-generated *offline*.
|
||||||
|
|
||||||
The HID is the result of joining the type of device, S/N,
|
""" + HID_CONVERSION_DOC
|
||||||
manufacturer name, and model. Devices that do not have one
|
|
||||||
of these fields cannot generate HID, thus not guaranteeing
|
|
||||||
global uniqueness.
|
|
||||||
"""
|
|
||||||
model = Column(Unicode(), check_lower('model'))
|
model = Column(Unicode(), check_lower('model'))
|
||||||
model.comment = """The model or brand of the device in lower case.
|
model.comment = """The model or brand of the device in lower case.
|
||||||
|
|
||||||
|
|
|
@ -51,7 +51,10 @@ class Filters(query.Query):
|
||||||
model = query.ILike(Device.model)
|
model = query.ILike(Device.model)
|
||||||
manufacturer = query.ILike(Device.manufacturer)
|
manufacturer = query.ILike(Device.manufacturer)
|
||||||
serialNumber = query.ILike(Device.serial_number)
|
serialNumber = query.ILike(Device.serial_number)
|
||||||
rating = query.Join(Device.id == events.Rate.device_id, RateQ)
|
# todo test query for rating (and possibly other filters)
|
||||||
|
rating = query.Join((Device.id == events.EventWithOneDevice.device_id)
|
||||||
|
& (events.EventWithOneDevice.id == events.Rate.id),
|
||||||
|
RateQ)
|
||||||
tag = query.Join(Device.id == Tag.device_id, TagQ)
|
tag = query.Join(Device.id == Tag.device_id, TagQ)
|
||||||
# todo This part of the query is really slow
|
# todo This part of the query is really slow
|
||||||
# And forces usage of distinct, as it returns many rows
|
# And forces usage of distinct, as it returns many rows
|
||||||
|
|
|
@ -5,7 +5,7 @@ click==6.7
|
||||||
click-spinner==0.1.8
|
click-spinner==0.1.8
|
||||||
colorama==0.3.9
|
colorama==0.3.9
|
||||||
colour==0.1.5
|
colour==0.1.5
|
||||||
ereuse-utils[naming, test, session, cli]==0.4.0b19
|
ereuse-utils[naming, test, session, cli]==0.4.0b20
|
||||||
Flask==1.0.2
|
Flask==1.0.2
|
||||||
Flask-Cors==3.0.6
|
Flask-Cors==3.0.6
|
||||||
Flask-SQLAlchemy==2.3.2
|
Flask-SQLAlchemy==2.3.2
|
||||||
|
|
2
setup.py
2
setup.py
|
@ -32,7 +32,7 @@ setup(
|
||||||
'teal>=0.2.0a35', # teal always first
|
'teal>=0.2.0a35', # teal always first
|
||||||
'click',
|
'click',
|
||||||
'click-spinner',
|
'click-spinner',
|
||||||
'ereuse-utils[naming, test, session, cli]>=0.4b19',
|
'ereuse-utils[naming, test, session, cli]>=0.4b20',
|
||||||
'hashids',
|
'hashids',
|
||||||
'marshmallow_enum',
|
'marshmallow_enum',
|
||||||
'psycopg2-binary',
|
'psycopg2-binary',
|
||||||
|
|
Reference in New Issue