mxabierto / debate

(sin mantenimiento) Debate público sobre la Política Nacional de Datos Abiertos en México. Powered by DemocracyOS.
http://politica.datos.gob.mx
1 stars 0 forks source link

Secciones #18

Closed defvol closed 10 years ago

defvol commented 10 years ago

Agrega el contenido faltante de la política.

defvol commented 10 years ago

@gvilarino @cristiandouce cómo podemos hacer para que el sidebar ordene las secciones por lawId?

a pesar de que borre los registros de laws, y volví a poblarlos, el orden sigue siendo diferente. Creo que esto se debe a que las operaciones son async, no?

cristiandouce commented 10 years ago

@rodowi por default si no me equivoco se ordenaban por recientemente creados. @gvilarino sabe más de eso que fue quien hizo release de la última versión de filtros. Si quisieras "hackear" el orden, creo que alterando el campo createdAt debería ordenarlos en forma decreciente.

cristiandouce commented 10 years ago

@rodowi está de más decir que createdAt tiene que tener un formato de fecha como aparece seguro en el mongo. Editando los segundos seguro se las puede ordenar.

Si eso no funciona paso la posta a @gvilarino

cristiandouce commented 10 years ago

Me equivoqué... el ordenamiento default es closing-soon.

Se lo observa acá: https://github.com/mexico-abierto/app/blob/development/lib/laws-filter/laws-filter.js#L173

@rodowi para que se ordene por orden de creación... deberías cambiar el closing-soon como sigue:

Los métodos de ordenamiento están descriptos en esta sección: https://github.com/mexico-abierto/app/blob/development/lib/laws-filter/sorts.js#L19

gvilarino commented 10 years ago

@rodowi esto puedo resolverlo en unos minutos para que se ordene por fecha de creación siempre. Dame luz verde y lo agrego a este PR.

defvol commented 10 years ago

sería buenísimo,

¿pero cómo aseguramos que el orden de creación de los fixtures corresponda al orden que describimos en el archivo? ¿la operación es síncrona?

adelante, cualquier adición al PR es bienvenida :)

defvol commented 10 years ago

creo que se están ordenando por mongo id como fallback,

cualquier tipo de sort que meta como hardcode resulta en un ordenamiento por id

items = items.sort(sorts['newest-first']);
defvol commented 10 years ago

ya vi, me faltó el .sort

items = items.sort(sorts['newest-first'].sort);

defvol commented 10 years ago

oldest-first arroja este orden: 02 04 06 05 03 01

defvol commented 10 years ago

agregué este sort func y no funciona

items = items.sort(sorts['by-law'].sort);

  'by-law': {
    label: 'sorts.by-law',
    sort: function (a, b) {
      return a.lawId - b.lawId;
    }
  }

estoy tratando de replicar lo que en Mongo se hace como

 db.laws.find().sort({'lawId': -1})
cristiandouce commented 10 years ago

si, pero ojo que lawId es de type String.

Mi recomendación es que apliques esta regla:

'by-law': {
    label: 'sorts.by-law',
    sort: function (a, b) {
      return ~~a.lawId - ~~b.lawId;
    }
  }
defvol commented 10 years ago

Esto es lo que tendríamos que emular

> db.laws.find({} ,{ lawId: 1 }).sort({ lawId: 1 })
{ "lawId" : "01-introducción", "_id" : ObjectId("52fad260fa13a6a0248318c4") }
{ "lawId" : "02-objetivos", "_id" : ObjectId("52fad260fa13a6a0248318bf") }
{ "lawId" : "03-datos-abiertos", "_id" : ObjectId("52fad260fa13a6a0248318c3") }
{ "lawId" : "04-arquitectura-institucional", "_id" : ObjectId("52fad260fa13a6a0248318c0") }
{ "lawId" : "05-publicación-y-privacidad", "_id" : ObjectId("52fad260fa13a6a0248318c2") }
{ "lawId" : "06-fomento-al-uso", "_id" : ObjectId("52fad260fa13a6a0248318c1") }
> 
cristiandouce commented 10 years ago

hmmm, ok then. Pensé que en lawId tenian un Number. El sort que agregas entonces debería andar bien! :dancer:

defvol commented 10 years ago

No funciona y regresa ordenados por mongo_id

https://github.com/mexico-abierto/app/commit/65a2b3836a1795fca8c791e929788e068773f4bf

screen shot 2014-02-12 at 6 18 22 pm

defvol commented 10 years ago
"01-a" - "02-a"
NaN

:trollface:

defvol commented 10 years ago
"01-a" < "02-a"
true

:trollface:

defvol commented 10 years ago
~~"01-a" - ~~"02-a";
0
~~"02-a" - ~~"02-a";
0
~~"03-a" - ~~"02-a";
0
defvol commented 10 years ago

tampoco funciona

items = items.sort({ lawId: 1 });

al parecer mongoose hace la comparación à la Javascript

creo que nuestra opción será hackear el createdAt

defvol commented 10 years ago

un hack podría ser:

parseFloat("01-a".slice(0,2))
defvol commented 10 years ago

DONE :trollface: ugly hack is ugly

cristiandouce commented 10 years ago

:dancers:

cristiandouce commented 10 years ago

Hay una forma más estética de hacer lo mismo sin el parseFloat. Después del .slice(0,2) se puede usar la fórmula de doble complemento al 0: ~~a.lawId.slice(0,2) - ~~b.lawId.slice(0,2).

Pero alguien hoy me dijo: If it works, don't fix it cc @gvilarino :factory:

defvol commented 10 years ago

:+1:

defvol commented 10 years ago

el deadline no nos permite cuidar la estética hahaha

defvol commented 10 years ago

Así va quedando:

datos gob mx introduccion

piamancini commented 10 years ago

Groso!!

El jueves, 13 de febrero de 2014, Rod Wilhelmy notifications@github.com escribió:

Así va quedando:

[image: datos gob mx introduccion]https://f.cloud.github.com/assets/705860/2156638/34373a24-9462-11e3-8932-f0b37619852d.png

Reply to this email directly or view it on GitHubhttps://github.com/mexico-abierto/app/pull/18#issuecomment-34946062 .

P. piamancini.com t: @piamancini s: piamancini

cristiandouce commented 10 years ago

:+1:

defvol commented 10 years ago

gracias :tada:

defvol commented 10 years ago

ya lo validé con @diegobeauroyre

y como vi muchos :+1:s, entonces creo que esto ya va para el branch demo, porque si le seguimos en este PR se pone rancio.