Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Limpieza de tarjetas. #259

Open
eldelentes opened this issue Sep 22, 2017 · 8 comments
Open

Limpieza de tarjetas. #259

eldelentes opened this issue Sep 22, 2017 · 8 comments

Comments

@eldelentes
Copy link
Owner

Estamos pensando en de que forma podemos limpiar las tarjetas que se han agregado hasta el momento para mantener la información más fresca posible.

Por ahora todo lo estamos manejando desde este Doc: https://docs.google.com/spreadsheets/d/1zAFK1sSjIaHurnKzLx-e3GJZNmZ9QWfFSlIZLyYk8IE/edit#gid=1821226953

Lo que necesitamos es:

  • Eliminar todas las filas que en la columna de aproved tengan FALSE
  • Eliminar filas que tengan x cierto tiempo en la plataforma basado en timestamp.
  • No se deben de eliminar los que tengan en una columna nueva (Quizás "Featured) `TRUE``

Puede ser algún script de google docs (No sé si exista algo asi)

@jesteves
Copy link

@eldelentes Lo que estás buscando es un script en Google Apps Script, que está basado en Javascript.

Para hacerlo:

  • Desde una hoja de cálculo lo encuentras en HerramientasEditor de secuencias de comandos.
  • Se crea un "proyecto" y en él se crea y edita un script.
  • Desde allí mismo entras en un ciclo de guardar / ejecutar.
  • Durante la primera ejecución Google Apps te va a solicitar autorización para alterar tus documentos.

A continuación les pongo un pequeño script que parece que funciona bien para eliminar los renglones no aprobados. Lo probé contra una copia de su hoja. Es solamente una idea como punto de partida, como para ir agregando cualquier condición que consideren necesaria.

Nota: en la prueba que hice me eliminó todos los renglones con FALSEexcepto uno. Creo que la diferencia está en el tipo de datos; tendrían que uniformizar.

El código va comentado.

Si puedo hacer algo más, con gusto...

@jesteves
Copy link

function myFunction() {
  var doc = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = doc.getSheetByName("LA-HOJA");
  var values = sheet.getRange("A2:I").getValues();   // rango ya descontando el encabezado
  
  var row_del = new Array();  // acumulador de renglones a eliminar
  
  var APPROVED_COL = 7;       // columna "approved"
  
  // recorrido de análisis y acumulación
  // (!) hacia abajo
  for (var row = 0; row < values.length; row++) {   // row,       desde 0
    var sheet_row = row + 2;                        // sheet_row, desde 2

    Logger.log(' - %s, %s', sheet_row, values[row][APPROVED_COL] );

    // si el valor de "approved" es falso, se acumula el renglón, para eliminación
    if ( ! values[row][APPROVED_COL] ) {
      Logger.log(' - FALSE!');
      row_del.push( sheet_row );
    }
  }
    
  // recorrido de eliminación
  // (!) hacia arriba porque al borrar los índices cambian en los renglones que suceden al eliminado
  for (var i = row_del.length - 1; i >= 0; i--) {
    sheet.deleteRow( row_del[i] ); 
  }
}

@jesteves
Copy link

Ah! Un par de notas extras.

  • El editor de scripts tiene su propio registro... Lo que imprimas con Logger.log() lo puedes revisar tras la ejecución en Ver → Registros. En el código dejé un par de líneas de debug con esa llamada...

  • Es normal que la ejecución de los scripts no sea extremadamente rápida. Finalmente el browser hace llamadas atómicas a la API que corresponda de Google Apps. Tras la ejecución también la hoja tarda un poquito en recargarse para que se vea el efecto.

@jorandradefig
Copy link
Contributor

@jesteves
Copy link

jesteves commented Sep 27, 2017

@jorandradefig Eso es porque cada worksheet tiene su propio id. El de la segunda hoja es olipwxe (que está antes de /public en el URL).

@jorandradefig
Copy link
Contributor

Gracias @jesteves, ¿eso significa que este issue no está o ya está?

@jesteves
Copy link

@jorandradefig Ni idea. Depende de si ya cuentan con la herramienta de mantenimiento por la que entiendo que preguntaban originalmente, o bien si con el uso de filtros (el merge en #283) tal cosa es irrelevante. IMHO, tal como se expuso el problema originalmente, yo diría que todavía es vigente... Pero es más bien pregunta para @eldelentes.

@jorandradefig
Copy link
Contributor

Ok @jesteves, porque tengo la idea de cómo hacerlo. Quiero tomar este issue, salvo que @eldelentes diga lo contrario. Abrazo a ambos.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants