Project

General

Profile

Revision 88cac5bb

ID88cac5bb3f59b414d3d63473f48402e6d63bed38
Parent 0bcaefe4
Child 6f6efdcd

Added by Francois POIROTTE about 13 years ago

- 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

View differences:

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