Project

General

Profile

Statistics
| Branch: | Tag: | Revision:

vigiboard / vigiboard / controllers / plugins / __init__.py @ 011743be

History | View | Annotate | Download (2.97 KB)

1
# -*- coding: utf-8 -*-
2
# vim:set expandtab tabstop=4 shiftwidth=4:
3
# Copyright (C) 2007-2020 CS GROUP - France
4
# License: GNU GPL v2 <http://www.gnu.org/licenses/gpl-2.0.html>
5

    
6
"""
7
Module complémentaire générique.
8
"""
9

    
10
# État lorsque les plugins sont appelés avec les sous-requêtes.
11
INNER = 0
12
# État lorsque les plugins sont appelés lorsque "items" est défini.
13
ITEMS = 1
14

    
15

    
16
class VigiboardRequestPlugin(object):
17
    """
18
    Classe que les plugins de VigiBoard doivent étendre.
19
    """
20

    
21
    def get_bulk_data(self, events_ids):
22
        """
23
        Cette méthode est appelée par le L{RootController} : elle
24
        retourne toutes les données affichées par le plugin dans le
25
        tableau des évènements de la page principale de VigiBoard.
26

27
        Cette méthode DEVRAIT être surchargée dans les classes dérivées.
28

29
        @param events_ids: Liste des identifiants des C{CorrEvent} affichés
30
            sur la page.
31
        @type  events_ids:  C{List} of C{int}
32
        @return: Dictionnaire associant à chaque identifiant
33
            d'évènement les données à afficher par le plugin.
34
        @rtype:  C{dict}
35
        """
36
        pass
37

    
38
    def get_json_data(self, idcorrevent, *args, **kwargs):
39
        """
40
        Cette méthode est appelée par le template du plugin via
41
        la méthode get_plugin_json_data du L{RootController} de VigiBoard.
42

43
        Cette méthode DEVRAIT être surchargée dans les classes dérivées
44
        si le plugin en question doit avoir recours à une requête JSON.
45

46
        @param idcorrevent: Identifiant du C{CorrEvent} à interroger.
47
        @type idcorrevent:  C{int}
48
        @return: Dictionnaire contenant la ou les valeur(s) correspondantes.
49
        @rtype:  C{dict}
50
        """
51
        pass
52

    
53
    def get_generated_columns_count(self):
54
        """
55
        Cette méthode renvoie le nombre de colonnes ajoutées dans le tableau
56
        des événements par ce plugin. Par défaut, on suppose que chaque plugin
57
        n'ajoute qu'une seule colonne au tableau.
58

59
        Cette méthode PEUT être surchargée dans les classes dérivées.
60

61
        @return: Nombre de colonnes ajoutées par ce plugin.
62
        @rtype: C{int}
63
        """
64
        return 1
65

    
66
    def get_data(self, event):
67
        return {}
68

    
69
    def get_search_fields(self):
70
        return []
71

    
72
    def get_sort_criterion(self, query, column):
73
        """
74
        Cette méthode renvoie le critère à utiliser par SQLAlchemy pour trier
75
        la requête alimentant le tableau des événements.
76

77
        Cette méthode DEVRAIT être surchargée dans les classes dérivées
78
        si le plugin en question implémente un tri.
79

80
        @param query: La requête VigiBoard servant à alimenter le tableau des
81
            événements.
82
        @type  query: L{VigiboardRequest}
83
        @param column: La colonne sur laquelle l'utilisateur souhaite opérer le
84
            tri.
85
        @type column: C{str}
86
        """
87
        pass
88

    
89
    def handle_search_fields(self, query, search, state, subqueries):
90
        pass