Filtrar el contenido para la vista admin

Holaaa,

Quisiera saber, cómo hacer para que en el cgridview de la vista admin, sólo se mostraran los registros que cumplen una condición. Es decir, yo tengo Proyectos, y tengo actividades que pertenecen a un proyecto, si desde cualquier vista de proyecto quiero acceder a administrar las actividades que lo componen, actividad/admin, pero filtradas… alguien sabe cómo hacerlo?

Gracias y saludoss

Hola safitanet,¿Podría publicar el modelo de las tablas con las relaciones para poder hacernos una idea de cómo están vinculadas? Y un ejemplo de cómo lo tiene actualmente sería útil también.

Saludos y felices fiestas.

Holaa, gracias por contestar, al final he conseguido filtrar en la vista admin mediante filtros. Tengo la tabla Proyecto, y la tabla Actividad, en la cuál un campo contiene el proyecto al que pertenece, proyecto_id

He puesto un filter en el controller de Actividad, para que al realizar la accion create y admin, se le haya que pasar un parámetro para saber a qué Proyecto pertence (esto es del primer libro del yii)

public function filters()

{


    return array(


        'accessControl',


      ->'ProyectoContext + admin create',


    );


}

Entonces en la actionAdmin del controller, le digo con qué proyecto filtro las actividades:

public function actionAdmin()

{


    $model=new Actividad('search');


    $model->unsetAttributes();  // clear any default values


    if(isset($_GET['Actividad']))


        $model->attributes=$_GET['Actividad'];





  ->$model->proyecto_id = $this->_proyecto->id;


    $this->render('admin',array(


        'model'=>$model,


    ));


}

Y ya en el model Actividad, en el método search() he puesto:

public function search()

{


    $criteria=new CDbCriteria;


    $criteria->with = array('actividadLang','proyecto');


  ->$criteria->condition = 'proyecto_id = '. $this->proyecto_id;


                .


                .


    }

Y así he conseguido lo que quería, lo pongo por si sirve, o por si a alguien se le ocurre una manera mejor de hacerlo.

Saludos a tod@s

Podrias usar Scopes o default_scope. http://www.yiiframework.com/doc/guide/1.1/en/database.ar#default-scope

Saludos.

Hola, pues quizás fuera más sencillo. Pero también tendría que pasar a la vista admin el parámetro del proyecto al que corresponde la actividad. Y el filtro lo uso también para crear una actividad, tiene que existir el id de proyecto al que pertenece si no, no se puede crear.

El programa es multilenguaje, y estoy usando scope para filtrar por lenguaje, no había pensado usarlo para esto. Pensaré más la idea.

Gracias y saludos