Project

General

Profile

Statistics
| Branch: | Tag: | Revision:

vigiboard / vigiboard / controllers / plugins / __init__.py @ c25a3200

History | View | Annotate | Download (2.97 KB)

1 19e88cb8 Thomas ANDREJAK
# -*- coding: utf-8 -*-
2 a77de887 Francois POIROTTE
# vim:set expandtab tabstop=4 shiftwidth=4:
3 c25a3200 Francois POIROTTE
# Copyright (C) 2007-2020 CS GROUP – France
4 9b8d9497 Francois POIROTTE
# License: GNU GPL v2 <http://www.gnu.org/licenses/gpl-2.0.html>
5 a77de887 Francois POIROTTE
6 b8500d1a Thomas ANDREJAK
"""
7 4dd2035e Francois POIROTTE
Module complémentaire générique.
8 b8500d1a Thomas ANDREJAK
"""
9
10 86662bc9 Francois POIROTTE
# É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 19e88cb8 Thomas ANDREJAK
16
class VigiboardRequestPlugin(object):
17
    """
18 4dd2035e Francois POIROTTE
    Classe que les plugins de VigiBoard doivent étendre.
19 19e88cb8 Thomas ANDREJAK
    """
20
21 cf3c2494 Vincent QUEMENER
    def get_bulk_data(self, events_ids):
22 19e88cb8 Thomas ANDREJAK
        """
23 cf3c2494 Vincent QUEMENER
        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 19e88cb8 Thomas ANDREJAK

27 15b98053 Francois POIROTTE
        Cette méthode DEVRAIT être surchargée dans les classes dérivées.
28 19e88cb8 Thomas ANDREJAK

29 8b2edebe Aurelien BOMPARD
        @param events_ids: Liste des identifiants des C{CorrEvent} affichés
30 cf3c2494 Vincent QUEMENER
            sur la page.
31 8b2edebe Aurelien BOMPARD
        @type  events_ids:  C{List} of C{int}
32 cf3c2494 Vincent QUEMENER
        @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 e181e86c Francois POIROTTE
        @param idcorrevent: Identifiant du C{CorrEvent} à interroger.
47 cf3c2494 Vincent QUEMENER
        @type idcorrevent:  C{int}
48 df25ac35 Francois POIROTTE
        @return: Dictionnaire contenant la ou les valeur(s) correspondantes.
49 cf3c2494 Vincent QUEMENER
        @rtype:  C{dict}
50 8ad24667 Thomas ANDREJAK
        """
51
        pass
52 07b62a01 Francois POIROTTE
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 27140946 Francois POIROTTE
66 a2fa6a5b Francois POIROTTE
    def get_data(self, event):
67
        return {}
68
69 27140946 Francois POIROTTE
    def get_search_fields(self):
70
        return []
71
72 5a845c93 Vincent QUEMENER
    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 8b2edebe Aurelien BOMPARD
    def handle_search_fields(self, query, search, state, subqueries):
90 27140946 Francois POIROTTE
        pass