Revision 0f0e32ed
Refait fonctionner la recherche sur les supitemgroups (#595).
git-svn-id: https://vigilo-dev.si.c-s.fr/svn@6680 b22e2e97-25c9-44ff-b637-2e5ceca36478
vigiboard/controllers/plugins/groups.py | ||
---|---|---|
28 | 28 |
|
29 | 29 |
from vigiboard.controllers.plugins import VigiboardRequestPlugin |
30 | 30 |
from vigilo.models.session import DBSession |
31 |
from vigilo.models import tables |
|
31 | 32 |
from vigilo.models.tables.group import Group |
32 | 33 |
from vigilo.models.tables.grouphierarchy import GroupHierarchy |
34 |
from vigilo.models.tables.secondary_tables import SUPITEM_GROUP_TABLE |
|
33 | 35 |
|
34 | 36 |
from repoze.what.predicates import in_group |
35 | 37 |
from tg import request |
... | ... | |
78 | 80 |
) |
79 | 81 |
] |
80 | 82 |
|
81 |
def handle_search_fields(self, query, search): |
|
82 |
pass |
|
83 |
def handle_search_fields(self, query, search, subqueries): |
|
84 |
if search.get('supitemgroup') is None: |
|
85 |
return |
|
86 |
|
|
87 |
# Il s'agit d'un manager. On applique le filtre |
|
88 |
# indĂ©pendamment aux 2 sous-requĂȘtes. |
|
89 |
if len(subqueries) == 2: |
|
90 |
subqueries[0] = subqueries[0].join( |
|
91 |
(SUPITEM_GROUP_TABLE, |
|
92 |
or_( |
|
93 |
SUPITEM_GROUP_TABLE.c.idsupitem == \ |
|
94 |
tables.LowLevelService.idhost, |
|
95 |
SUPITEM_GROUP_TABLE.c.idsupitem == \ |
|
96 |
tables.LowLevelService.idservice, |
|
97 |
) |
|
98 |
), |
|
99 |
(GroupHierarchy, GroupHierarchy.idchild == |
|
100 |
SUPITEM_GROUP_TABLE.c.idgroup) |
|
101 |
).filter( |
|
102 |
GroupHierarchy.idparent == search['supitemgroup'] |
|
103 |
) |
|
104 |
|
|
105 |
subqueries[1] = subqueries[1].join( |
|
106 |
(SUPITEM_GROUP_TABLE, |
|
107 |
SUPITEM_GROUP_TABLE.c.idsupitem == \ |
|
108 |
tables.Host.idhost, |
|
109 |
), |
|
110 |
(GroupHierarchy, GroupHierarchy.idchild == |
|
111 |
SUPITEM_GROUP_TABLE.c.idgroup) |
|
112 |
).filter( |
|
113 |
GroupHierarchy.idparent == search['supitemgroup'] |
|
114 |
) |
|
115 |
|
|
116 |
# Il s'agit d'un utilisateur normal. |
|
117 |
else: |
|
118 |
subqueries[0] = subqueries[0].filter( |
|
119 |
tables.UserSupItem.idsupitemgroup == search['supitemgroup'] |
|
120 |
) |
Also available in: Unified diff