# Reordenar los articulos La interfaz reordena los articulos y los envia en ese orden particular (se puede enviar un numero de orden completado con js para estar mas segurxs). Entonces el algoritmo... * Chequea que los posts tengan fechas en orden * Si alguno(s) no tienen, busca fechas intermedias * Cuando todos tienen fechas en orden, guarda los cambios modificando cada post --- * Compara el nuevo orden con el viejo para saber las diferencias --- * Recorre el nuevo orden uno por uno * Se fija si el anterior tiene una fecha menor * Se fija si el siguiente tiene una fecha mayor * Se autoasigna una fecha en el medio * Se guarda al final --- * Todos los posts tienen un ID (su id en el array de la colección) * Toma el post actual * Mueve el post a una posición arbitraria con un nuevo id * Toma la fecha del post siguiente (nuevo_id + 1) * Recorre hacia atrás los anteriores, corriéndolos de a un día hasta una fecha anterior * Los posts posteriores no se tocan Teniendo estos artículos ``` 1 2017-01-01 2 2017-01-02 3 2017-01-03 4 2017-01-04 5 2017-01-05 ``` Movemos el artículo 2 a la posición 4 ``` 1 1 2017-01-01 2 3 2017-01-03 3 4 2017-01-04 4 2 2017-01-02 5 5 2017-01-05 ``` Reordenamos las fechas ``` 1 1 2017-01-01 2017-01-01 2 3 2017-01-03 2017-01-02 3 4 2017-01-04 2017-01-03 4 2 2017-01-02 2017-01-04 5 5 2017-01-05 2017-01-05 ``` Movemos varios ``` 1 4 2017-01-04 2 5 2017-01-05 3 2 2017-01-02 4 3 2017-01-03 5 1 2017-01-01 ``` Cual es la fecha desde la que se empieza? Vamos hacia atras o hacia adelante? Hacia atrás ``` 1 4 2017-01-04 2016-12-28 2 5 2017-01-05 2016-12-29 3 2 2017-01-02 2016-12-30 4 3 2017-01-03 2016-12-31 5 1 2017-01-01 2017-01-01 ``` Hacia adelante ``` 1 4 2017-01-04 2017-01-04 2 5 2017-01-05 2017-01-05 3 2 2017-01-02 2017-01-06 4 3 2017-01-03 2017-01-07 5 1 2017-01-01 2017-01-08 ``` En si las fechas no importan, porque estamos priorizando el orden, las fechas son arbitrarias para engañar a jekyll a tener los posts en cierto orden. Por el contrario, para mantener los cambios mínimos, podemos reemplazar hacia adelante comenzando desde la fecha mas baja del orden original. ``` 1 4 2017-01-04 2017-01-01 2 5 2017-01-05 2017-01-02 3 2 2017-01-02 2017-01-03 4 3 2017-01-03 2017-01-04 5 1 2017-01-01 2017-01-05 ``` No quiere decir que en ordenes de fechas mas dispersas se mantengan los cambios mínimos. También podemos tomar todo el set original de fechas y asociarselo al orden nuevo de posts. Las fechas se mantienen igual, pero cambia el orden de los posts.