martes, 17 de julio de 2012

Copiando discos dañados con ubuntu

Tienes un disco con errores de lectura? puedes copiarlo al disco duro con esta utilidad de ubuntu:

Instalar ddrescue
$ sudo apt-get install gddrescue
ejecutar
$ sudo ddrescue -v /dev/hdc cdr-backup2.iso ddrescue.log

Para conocer el /dev donde esta conectado tu cd/dvd puedes usar
$ df

lunes, 16 de julio de 2012

Combos dependientes con sfDependentSelectPlugin

Por fin puede hacer funcionar las combos dependientes con sfDependentSelectPlugin.

Tuve que hacer algunos ajustes mas allá de la documentación.

1. Agregar la opción 'ref_method' que indica cual es el método accesor para obtener el id que relaciona con la tabla independiente.

2. Como mis tablas no se ajustaban exactamente al estándar de symfony modificar un poco el widget para recibir otro parámetro que indicara donde debería enlazar los métodos javascript para el evento del cambio en el combo independiente. fuente (http://roy-rc.blogspot.com/2011/07/sfdependentselectplugin-problema-con.html)

El caso quedo asi:
1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<?php

/**
 * callcenterRegistroCita form.
 *
 */
class callcenterRegistroCitaForm extends BasecallcenterRegistroCitaForm {

    public function configure() {
        unset($this['modificadoEn'], $this['modificadoPor'], $this['modificadoDesde'], $this['callcenter_agente_id'], $this['motivo_id']);

        
        $this->widgetSchema['callcenter_area_id'] = new sfWidgetFormDoctrineChoice(array(
                   'model' => 'callcenterArea'
                ));


        $this->widgetSchema['callcenter_profesional_id'] = new sfWidgetFormDoctrineDependentSelect(array(
                    'model' => 'callcenterProfesional',
                    'depends' => 'callcenterArea',
                    'widget'   => 'callcenter_registro_cita_callcenter_area_id', // nombre del campo renderizado en el form (combo superior)
                    'ref_method' => 'getCallcenterAreaId',
                    'order_by' => array('nombreCompleto','asc')
                ));


        $this->widgetSchema->moveField('callcenter_profesional_id', 'after', 'callcenter_area_id');

        // validadores

        $this->validatorSchema['callcenter_area_id'] = new sfValidatorDoctrineChoice(array(
                    'model' => 'callcenterArea'
                ));

        $this->validatorSchema['callcenter_profesional_id'] = new sfValidatorDoctrineChoice(array(
                    'model' => 'callcenterProfesional'
                ));
    }

}


Para el caso del widget tambien se debe modificar un poco el codigo del plugin:


Leer artículo completo!