FIX il manquait le dernier message à l'affichage (problème dans euphorik_minichat_con...
[euphorik.git] / modules / erl / euphorik_minichat_conversation.erl
index d455d94..982c4a3 100755 (executable)
@@ -113,7 +113,7 @@ mise_en_forme_conversations([{Principale, Plus_principale} | Conversations]) ->
 % Ajoute les parents de chaque message.
 % @spec mise_en_forme_conversation([integer()]) -> [{integer(), [integer()]}]
 mise_en_forme_conversation(Messages) ->
-   lists:foldl(
+   lists:foldr(
       fun(Id, Acc) ->
          case euphorik_minichat:message_by_id(Id) of
             {ok, Message} ->
@@ -137,7 +137,7 @@ conversations_detailees(Racines, N, D, P) ->
       Curseur = qlc:cursor(q([E#minichat.id || E <- qlc:sort(table(minichat), [{order, descending}])])),
       {CP, Plus} = conversation_principale(Curseur, Conversations, N, P),
       qlc:delete_cursor(Curseur),
-      {reverse([M || M <- CP, M > D]), Plus} % filtre en fonction de D
+      {[M || M <- CP, M > D], Plus} % filtre en fonction de D
    end)),
    [Conversation_principale | Conversations].
    
@@ -146,11 +146,12 @@ conversations_detailees(Racines, N, D, P) ->
 % et la liste de conversations.
 % N est le nombre de messages que l'on souhaite.
 % P est le numéro de la page (1, 2, 3...)
-% Renvoie {[Id], Plus}
-% @spec conversation_principale(qlc:QueryCursor(), [Conversation_detailee()], integer(), integer())
+% @spec conversation_principale(qlc:QueryCursor(), [Conversation_detailee()], integer(), integer()) -> {[Id], Plus}
 conversation_principale(C, Conversations, N, P) ->
-   CP = conversation_principale2(C, lists:flatten(map(fun({C2, _, X, _}) -> C2 -- X end, Conversations)), N + 1, (P - 1) * N),
+   % on prend en message de plus pour savoir s'il y en a plus que ce que l'on désire
+   CP = reverse(conversation_principale2(C, lists:flatten(map(fun({C2, _, X, _}) -> C2 -- X end, Conversations)), N + 1, (P - 1) * N)),
    Plus = length(CP) =:= N + 1,
+   io:format("~p~n", [CP]),
    {
       if Plus ->
          [_| Suivants] = CP,