Project

General

Profile

Statistics
| Branch: | Tag: | Revision:

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

History | View | Annotate | Download (3.44 KB)

1
# -*- coding: utf-8 -*-
2
# vim:set expandtab tabstop=4 shiftwidth=4:
3
################################################################################
4
#
5
# Copyright (C) 2007-2012 CS-SI
6
#
7
# This program is free software; you can redistribute it and/or modify
8
# it under the terms of the GNU General Public License version 2 as
9
# published by the Free Software Foundation.
10
#
11
# This program is distributed in the hope that it will be useful,
12
# but WITHOUT ANY WARRANTY; without even the implied warranty of
13
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
# GNU General Public License for more details.
15
#
16
# You should have received a copy of the GNU General Public License
17
# along with this program; if not, write to the Free Software
18
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
19
################################################################################
20

    
21
"""
22
Module complémentaire générique.
23
"""
24

    
25
# État lorsque les plugins sont appelés avec les sous-requêtes.
26
INNER = 0
27
# État lorsque les plugins sont appelés lorsque "items" est défini.
28
ITEMS = 1
29

    
30

    
31
class VigiboardRequestPlugin(object):
32
    """
33
    Classe que les plugins de VigiBoard doivent étendre.
34
    """
35

    
36
    def __init__ (self, table = None, join = None, outerjoin = None,
37
            filters = None, groupby = None, orderby = None, name = '',
38
            style = None, object_name = ""):
39
        self.table = table
40
        self.join = join
41
        self.outerjoin = outerjoin
42
        self.filter = filters
43
        self.orderby = orderby
44
        self.name = name
45
        self.groupby = groupby
46
        self.style = style
47
        self.object_name = object_name
48

    
49
    def get_bulk_data(self, events_ids):
50
        """
51
        Cette méthode est appelée par le L{RootController} : elle
52
        retourne toutes les données affichées par le plugin dans le
53
        tableau des évènements de la page principale de VigiBoard.
54

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

57
        @param events_ids: Liste des identifiants des C{CorrEvent} affichés
58
            sur la page.
59
        @type  events_ids:  C{List} of C{int}
60
        @return: Dictionnaire associant à chaque identifiant
61
            d'évènement les données à afficher par le plugin.
62
        @rtype:  C{dict}
63
        """
64
        pass
65

    
66
    def get_json_data(self, idcorrevent, *args, **kwargs):
67
        """
68
        Cette méthode est appelée par le template du plugin via
69
        la méthode get_plugin_json_data du L{RootController} de VigiBoard.
70

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

74
        @param idcorrevent: Identifiant du C{CorrEvent} à interroger.
75
        @type idcorrevent:  C{int}
76
        @return: Dictionnaire contenant la ou les valeur(s) correspondantes.
77
        @rtype:  C{dict}
78
        """
79
        pass
80

    
81
    def get_generated_columns_count(self):
82
        """
83
        Cette méthode renvoie le nombre de colonnes ajoutées dans le tableau
84
        des événements par ce plugin. Par défaut, on suppose que chaque plugin
85
        n'ajoute qu'une seule colonne au tableau.
86

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

89
        @return: Nombre de colonnes ajoutées par ce plugin.
90
        @rtype: C{int}
91
        """
92
        return 1
93

    
94
    def get_search_fields(self):
95
        return []
96

    
97
    def handle_search_fields(self, query, search, state, subqueries):
98
        pass