Project

General

Profile

Revision 080abea3

ID080abea37cf5e941c465faae9221a11db431bfb5
Parent 90a4b850
Child 398c727b

Added by Francois POIROTTE over 14 years ago

Déplacement de la fonction sql_escape_like() utilisée par Vigiboard & Vigicore vers le modèle (dans vigilo.models.functions).
Ajout de champs pour la recherche par nom de groupe/service dans Vigiboard.
TODO: Ajout d'auto-complétion sur ces champs.
TODO: Prise en compte des champs dans le filtrage.

git-svn-id: https://vigilo-dev.si.c-s.fr/svn@1607 b22e2e97-25c9-44ff-b637-2e5ceca36478

View differences:

vigiboard/controllers/root.py
22 22
from vigiboard.widgets.edit_event import edit_event_status_options
23 23
from vigiboard.controllers.vigiboardrequest import VigiboardRequest
24 24
from vigiboard.controllers.vigiboard_controller import VigiboardRootController
25
from vigilo.models.functions import sql_escape_like
25 26
from vigilo.models.secondary_tables import HOST_GROUP_TABLE, \
26 27
                                            SERVICE_GROUP_TABLE
27 28
from vigilo.common.conf import settings
28 29

  
29 30
__all__ = ('RootController', )
30 31

  
31
def sql_escape_like(s):
32
    return s.replace('%', '\\%').replace('_', '\\_') \
33
                .replace('*', '%').replace('?', '_')
34

  
35 32
class RootController(VigiboardRootController):
36 33
    """
37 34
    Le controller général de vigiboard
......
61 58

  
62 59
    @expose('vigiboard.html')
63 60
    @require(Any(not_anonymous(), msg=l_("You need to be authenticated")))
64
    def default(self, page=None, host=None, service=None, output=None,
65
            trouble_ticket=None, from_date=None, to_date=None,
66
            *argv, **krgv):
61
    def default(self, page=None, hostgroup=None, servicegroup=None,
62
            host=None, service=None, output=None, trouble_ticket=None,
63
            from_date=None, to_date=None, *argv, **krgv):
67 64
            
68 65
        """
69 66
        Page d'accueil de Vigiboard. Elle affiche, suivant la page demandée
......
109 106
            'tt': '',
110 107
            'from_date': '',
111 108
            'to_date': '',
109
            'hostgroup': '',
110
            'servicegroup': '',
112 111
        }
113 112
        # Application des filtres si nécessaire
114 113
        if host:
......
310 309
                        'tt': None,
311 310
                        'from_date': None,
312 311
                        'to_date': None,
312
                        'hostgroup': None,
313
                        'servicegroup': None,
313 314
                    },
314 315
                   refresh_times=self.refresh_times,
315 316
                )
......
370 371
                        'tt': None,
371 372
                        'from_date': None,
372 373
                        'to_date': None,
374
                        'hostgroup': None,
375
                        'servicegroup': None,
373 376
                    },
374 377
                    refresh_times=self.refresh_times,
375 378
                )
......
519 522
                        ServiceLowLevel.servicename.ilike('%' + value + '%')).all()
520 523
        return dict(results=[s[0] for s in services])
521 524

  
525
    @expose('json')
526
    def autocomplete_hostgroup(self, value):
527
        value = sql_escape_like(value)
528
        hostnames = DBSession.query(
529
                        Host.name.distinct()).filter(
530
                        Host.name.ilike('%' + value + '%')).all()
531
        return dict(results=[h[0] for h in hostnames])
532

  
533
    @expose('json')
534
    def autocomplete_servicegroup(self, value):
535
        value = sql_escape_like(value)
536
        services = DBSession.query(
537
                        ServiceLowLevel.servicename.distinct()).filter(
538
                        ServiceLowLevel.servicename.ilike('%' + value + '%')).all()
539
        return dict(results=[s[0] for s in services])
540

  
vigiboard/widgets/search_form.py
22 22
    submit_text = None
23 23
    action = './'
24 24
    fields = [
25
        TextField('hostgroup', label_text=l_('Host group')),
26
        TextField('servicegroup', label_text=l_('Service group')),
25 27
        TextField('host', label_text=l_('Host')),
26 28
        TextField('service', label_text=l_('Service')),
27 29
        TextField('output', label_text=l_('Output')),

Also available in: Unified diff