~p7core/proyecto7/0.1

« back to all changes in this revision

Viewing changes to gP7/wnd_locaciones_grupo.py

  • Committer: Andres Moreno
  • Date: 2013-07-30 16:58:56 UTC
  • mfrom: (70.1.49 actas)
  • Revision ID: amdevp@gmail.com-20130730165856-72fsmxy5fuyfrp7t
Merge con branch de bugfixes

Arreglar bastantes bugs que no permitian crear un proyecto nuevo.

 - Arreglar bug que no permite cambiar horas de equipos usados

 - Arreglar bug en script de creacion de la base de datos que no creaba los
   datos del proyecto por defecto pero al conectarse a una base de datos
   recien creada se esperaba que existieran

 - Arreglar de bug que no permitia visualizar si se ingresaba mas de una
   locacion nueva  

 - Reiro de ventana obsoleta para generar actas wnd_acta.py

 - Retirar super() de los constructores de los objetos pues las ventajas no
   superan los posibles errores que puede meter al codigo

 - Arreglar bug donde los objetos hacen llamadas a funciones con parametros
   errores

 - Arreglar dependencias del programa.

 - Arreglar bug en precio de items por codigo de debugging que no se removio

 - Arreglar bug en creacion de Actas donde el constructor de llamaba con
   parametros errados.

Show diffs side-by-side

added added

removed removed

Lines of Context:
94
94
        self._crt_incluido.connect('toggled', self.seleccion_cambiar)
95
95
        self._cmd_grupos_editar.connect('clicked', self.botones_editar)
96
96
        self._cmd_locaciones_editar.connect('clicked', self.botones_editar)
 
97
        self._ventana.connect('destroy', self.salir)
97
98
 
98
99
    def botones_editar(self, widget):
99
100
        """Agregar o editar un grupo a la lista"""
119
120
    def actualizar_locaciones(self):
120
121
        """Actualiza las locaciones cuando hay un cambio."""
121
122
        self._mdl_agrupaciones.cargar_locaciones(self._mdl_locaciones)
122
 
        self._modelos.locaciones().hook_remover(self.actualizar_locaciones)
123
123
 
124
124
    def seleccion_cambiar(self, widget, path):
125
125
        """Incluye o retira una locacion de un grupo."""
135
135
    def cargar(self, widget=None):
136
136
        """Muestar las locaciones del grupo en pantalla."""
137
137
        iterador = widget.get_selection().get_selected()[1]
138
 
        if iterador is None:
 
138
        if (iterador is None) or (widget is None):
139
139
            return
 
140
 
140
141
        modelo = widget.get_model()
141
142
        consecutivo = modelo.get_value(iterador, modelo.CONSECUTIVO)
142
143
        locacion_en_grupo = self._proyecto.locacion_en_grupo()
144
145
        self._mdl_agrupaciones.cargar_locaciones_en_grupo(consecutivo,
145
146
                                                          locacion_en_grupo)
146
147
 
 
148
    def salir(self, data=None):
 
149
        """Se llama cuando se cierra la ventana."""
 
150
        try:
 
151
            self._modelos.locaciones().hook_remover(self.actualizar_locaciones)
 
152
 
 
153
        except ValueError:
 
154
            pass  # Ignorar el error de retirar el hook si no esta instalado
 
155
 
147
156
 
148
157
class _MdlAgrupaciones(gtk.ListStore):
149
158
 
150
 
    """Modelo con la relacion de los grupos y locaciones."""
 
159
    """Modelo con la relacion de los grupos y locaciones.
 
160
 
 
161
    Este modelo depende del grupo que este seleccionado, cambia cada vez
 
162
    que se selecciona un grupo diferente, primero se resetean todas las
 
163
    pertenencias al grupo y luego se cargan las pertenencias de la base de
 
164
    datos.
 
165
 
 
166
    """
151
167
 
152
168
    def __init__(self, locaciones, proyecto):
153
169
        """Iniciliza el objeto."""
165
181
    def cargar_locaciones_en_grupo(self, grupo, locaciones_en_grupo):
166
182
        """Carga las locaciones de un grupo."""
167
183
        self._locaciones_en_grupo = locaciones_en_grupo
168
 
        self._limpiar()
 
184
        self._limpiar(grupo)
169
185
        for locacion in locaciones_en_grupo:
170
186
            for fila in self:
171
187
                fila[self.GRUPO] = grupo
192
208
                                      self.get_value(iterador, self.PERTENECE))
193
209
        return locacion_en_grupo
194
210
 
195
 
    def _limpiar(self):
 
211
    def _limpiar(self, grupo):
196
212
        """Establece las pertenencias a los grupos como False."""
197
213
        for fila in self:
198
214
            fila[self.CONSECUTIVO] = 0
199
215
            fila[self.PERTENECE] = False
 
216
            fila[self.GRUPO] = grupo