Revision 88cac5bb
- Recherche récursive dans les sous-groupes du groupe d'éléments supervisés sélectionné.
- Retour automatique à la dernière page lorsqu'on essaye d'aller au-delà (ex: après une fermeture massive d'événements). Cf. #464.
git-svn-id: https://vigilo-dev.si.c-s.fr/svn@6097 b22e2e97-25c9-44ff-b637-2e5ceca36478
vigiboard/controllers/root.py | ||
---|---|---|
28 | 28 |
from tg import expose, validate, require, flash, \ |
29 | 29 |
tmpl_context, request, config, session, redirect |
30 | 30 |
from tw.forms import validators |
31 |
from pylons.i18n import ugettext as _ |
|
32 |
from pylons.i18n import lazy_ugettext as l_ |
|
31 |
from pylons.i18n import ugettext as _, lazy_ugettext as l_ |
|
33 | 32 |
from sqlalchemy import asc |
34 | 33 |
from sqlalchemy.sql import func |
35 | 34 |
from repoze.what.predicates import Any, All, in_group, \ |
... | ... | |
149 | 148 |
# Application des filtres si nécessaire |
150 | 149 |
if supitemgroup: |
151 | 150 |
search['supitemgroup'] = supitemgroup |
152 |
aggregates.add_filter(aggregates.items.c.idsupitemgroup == \ |
|
153 |
supitemgroup) |
|
151 |
aggregates.add_join((GroupHierarchy, GroupHierarchy.idchild == |
|
152 |
aggregates.items.c.idsupitemgroup)) |
|
153 |
aggregates.add_filter(GroupHierarchy.idparent == supitemgroup) |
|
154 | 154 |
|
155 | 155 |
if host: |
156 |
search['host'] = host |
|
156 |
search['host_'] = host
|
|
157 | 157 |
host = sql_escape_like(host) |
158 | 158 |
aggregates.add_filter(aggregates.items.c.hostname.ilike( |
159 | 159 |
'%s' % host)) |
... | ... | |
209 | 209 |
total_rows = aggregates.num_rows() |
210 | 210 |
items_per_page = int(config['vigiboard_items_per_page']) |
211 | 211 |
|
212 |
# Si le numéro de page dépasse le nombre de pages existantes, |
|
213 |
# on redirige automatiquement vers la 1ère page. |
|
214 |
if total_rows and items_per_page * (page-1) > total_rows: |
|
215 |
redirect('/', page=1, **search) |
|
216 |
|
|
217 | 212 |
id_first_row = items_per_page * (page-1) |
218 | 213 |
id_last_row = min(id_first_row + items_per_page, total_rows) |
219 | 214 |
|
215 |
# Si le numéro de page dépasse le nombre de pages existantes, |
|
216 |
# on redirige automatiquement vers la 1ère page. |
|
217 |
if total_rows and id_first_row >= total_rows: |
|
218 |
redirect('/', page=total_rows / items_per_page, **search) |
|
219 |
|
|
220 | 220 |
aggregates.format_events(id_first_row, id_last_row) |
221 | 221 |
aggregates.generate_tmpl_context() |
222 | 222 |
|
... | ... | |
311 | 311 |
flash(_('No masked event or access denied'), 'error') |
312 | 312 |
redirect('/') |
313 | 313 |
|
314 |
# Calcul des éléments à afficher et du nombre de pages possibles |
|
314 |
# Calcul des éléments à afficher et du nombre de pages possibles |
|
315 |
total_rows = events.num_rows() |
|
315 | 316 |
items_per_page = int(config['vigiboard_items_per_page']) |
316 | 317 |
|
317 | 318 |
id_first_row = items_per_page * (page-1) |
... | ... | |
642 | 643 |
DBSession.add(history) |
643 | 644 |
|
644 | 645 |
history = EventHistory( |
645 |
type_action="Acknowledgement change state", |
|
646 |
type_action=u"Acknowledgement change state",
|
|
646 | 647 |
idevent=event.idcause, |
647 | 648 |
value=ack, |
648 | 649 |
text="Changed acknowledgement status " |
Also available in: Unified diff