Unverified Commit 0d248a8b authored by Serge S. Koval's avatar Serge S. Koval Committed by GitHub

Merge pull request #1556 from nad2000/issues/1555

Use LEFT OUTER JOIN instead of INNER JOIN when searching rows
parents a9f4a84a edba5d60
......@@ -33,6 +33,10 @@ matrix:
addons:
postgresql: "9.4"
apt:
packages:
- postgresql-9.4-postgis-2.4
- postgresql-9.4-postgis-2.4-scripts
services:
- postgresql
......
......@@ -7,7 +7,7 @@ from flask_admin.babel import gettext, ngettext, lazy_gettext
from flask_admin.model import BaseModelView
from flask_admin.model.form import create_editable_list_form
from peewee import PrimaryKeyField, ForeignKeyField, Field, CharField, TextField
from peewee import JOIN, PrimaryKeyField, ForeignKeyField, Field, CharField, TextField
from flask_admin.actions import action
from flask_admin.contrib.peewee import filters
......@@ -309,7 +309,7 @@ class ModelView(BaseModelView):
model_name = field.model_class.__name__
if model_name not in joins:
query = query.join(field.model_class)
query = query.join(field.model_class, JOIN.LEFT_OUTER)
joins.add(model_name)
return query
......
......@@ -75,14 +75,14 @@ def tuple_operator_in(model_pk, ids):
The returning operator can be used within a filter(), as it is just an or_ operator
"""
l = []
ands = []
for id in ids:
k = []
for i in range(len(model_pk)):
k.append(eq(model_pk[i], id[i]))
l.append(and_(*k))
if len(l) >= 1:
return or_(*l)
ands.append(and_(*k))
if len(ands) >= 1:
return or_(*ands)
else:
return None
......
......@@ -8,7 +8,7 @@ skip_missing_interpreters = true
[flake8]
max_line_length = 120
ignore = E402
ignore = E402,E722
[testenv]
usedevelop = true
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment