Closed defvol closed 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?
@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.
@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
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:
newest-first
oldest-first
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
@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.
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 :)
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']);
ya vi, me faltó el .sort
items = items.sort(sorts['newest-first'].sort);
oldest-first arroja este orden: 02 04 06 05 03 01
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})
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;
}
}
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") }
>
hmmm, ok then. Pensé que en lawId tenian un Number. El sort que agregas entonces debería andar bien! :dancer:
No funciona y regresa ordenados por mongo_id
https://github.com/mexico-abierto/app/commit/65a2b3836a1795fca8c791e929788e068773f4bf
"01-a" - "02-a"
NaN
:trollface:
"01-a" < "02-a"
true
:trollface:
~~"01-a" - ~~"02-a";
0
~~"02-a" - ~~"02-a";
0
~~"03-a" - ~~"02-a";
0
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
un hack podría ser:
parseFloat("01-a".slice(0,2))
DONE :trollface: ugly hack is ugly
:dancers:
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:
:+1:
el deadline no nos permite cuidar la estética hahaha
Así va quedando:
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
:+1:
gracias :tada:
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.
Agrega el contenido faltante de la política.