From ccda3cd486d083b93e741b711a47de87a984475d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexandre=20Delano=C3=AB?= <devel+git@delanoe.org> Date: Tue, 24 Nov 2020 22:19:42 +0100 Subject: [PATCH] [FIX] Shared lists is taken into account now --- src/Gargantext/Core/Text/List.hs | 6 ++--- src/Gargantext/Core/Text/List/Social/Find.hs | 22 ++++++++++-------- .../Core/Text/List/Social/Scores.hs | 4 +--- src/Gargantext/Database/Query/Tree.hs | 23 ++++++++++--------- 4 files changed, 28 insertions(+), 27 deletions(-) diff --git a/src/Gargantext/Core/Text/List.hs b/src/Gargantext/Core/Text/List.hs index d730f2a5..c2151b7b 100644 --- a/src/Gargantext/Core/Text/List.hs +++ b/src/Gargantext/Core/Text/List.hs @@ -16,7 +16,7 @@ module Gargantext.Core.Text.List where -import Control.Lens ((^.), view, set, over) +import Control.Lens ((^.), view, over) import Data.Map (Map) import Data.Maybe (catMaybes) import Data.Monoid (mempty) @@ -103,10 +103,8 @@ buildNgramsOthersList user uCid groupIt (nt, MapListSize mapListSize) = do let groupedWithList = toGroupedTreeText groupIt socialLists' ngs' -{- printDebug "groupedWithList" - $ view flc_scores groupedWithList --} + $ view flc_cont groupedWithList let (stopTerms, tailTerms) = Map.partition ((== Just StopTerm) . viewListType) $ view flc_scores groupedWithList diff --git a/src/Gargantext/Core/Text/List/Social/Find.hs b/src/Gargantext/Core/Text/List/Social/Find.hs index bc0febcf..ec43a6d3 100644 --- a/src/Gargantext/Core/Text/List/Social/Find.hs +++ b/src/Gargantext/Core/Text/List/Social/Find.hs @@ -12,6 +12,7 @@ module Gargantext.Core.Text.List.Social.Find where -- findList imports +import Control.Lens (view) import Gargantext.Core.Types.Individu import Gargantext.Database.Admin.Config import Gargantext.Database.Admin.Types.Node @@ -25,18 +26,21 @@ import Gargantext.Prelude findListsId :: (HasNodeError err, HasTreeError err) => User -> NodeMode -> Cmd err [NodeId] findListsId u mode = do - r <- getRootId u - ns <- map _dt_nodeId <$> filter (\n -> _dt_typeId n == nodeTypeId NodeList) - <$> findNodes' mode r + rootId <- getRootId u + ns <- map (view dt_nodeId) <$> filter ((== nodeTypeId NodeList) . (view dt_typeId)) + <$> findNodes' rootId mode pure ns - +-- | TODO not clear enough: +-- | Shared is for Shared with me but I am not the owner of it +-- | Private is for all Lists I have created findNodes' :: HasTreeError err - => NodeMode -> RootId + => RootId + -> NodeMode -> Cmd err [DbTreeNode] -findNodes' Private r = findNodes Private r $ [NodeFolderPrivate] <> commonNodes -findNodes' Shared r = findNodes Shared r $ [NodeFolderShared ] <> commonNodes -findNodes' Public r = findNodes Public r $ [NodeFolderPublic ] <> commonNodes +findNodes' r Private = findNodes r Private $ [NodeFolderPrivate] <> commonNodes +findNodes' r Shared = findNodes r Shared $ [NodeFolderShared, NodeTeam] <> commonNodes +findNodes' r Public = findNodes r Public $ [NodeFolderPublic ] <> commonNodes commonNodes:: [NodeType] -commonNodes = [NodeFolder, NodeCorpus, NodeList] +commonNodes = [NodeFolder, NodeCorpus, NodeList, NodeFolderShared, NodeTeam] diff --git a/src/Gargantext/Core/Text/List/Social/Scores.hs b/src/Gargantext/Core/Text/List/Social/Scores.hs index feb8ba62..e4b23408 100644 --- a/src/Gargantext/Core/Text/List/Social/Scores.hs +++ b/src/Gargantext/Core/Text/List/Social/Scores.hs @@ -38,7 +38,6 @@ toFlowListScores :: KeepAllParents toFlowListScores k flc_origin = foldl' (toFlowListScores_Level1 k flc_origin) mempty where - toFlowListScores_Level1 :: KeepAllParents -> FlowCont Text FlowListScores -> FlowCont Text FlowListScores @@ -49,7 +48,6 @@ toFlowListScores k flc_origin = foldl' (toFlowListScores_Level1 k flc_origin) me flc_dest (Set.fromList $ Map.keys $ view flc_cont flc_origin') - toFlowListScores_Level2 :: KeepAllParents -> Map Text NgramsRepoElement -> FlowCont Text FlowListScores @@ -58,7 +56,7 @@ toFlowListScores k flc_origin = foldl' (toFlowListScores_Level1 k flc_origin) me -> FlowCont Text FlowListScores toFlowListScores_Level2 k'' ngramsRepo flc_origin'' flc_dest' t = case Map.lookup t ngramsRepo of - Nothing -> over flc_cont (Map.insert t mempty) flc_dest' + Nothing -> over flc_cont (Map.union (Map.singleton t mempty)) flc_dest' Just nre -> over flc_scores ( (Map.alter (addParent k'' nre (Set.fromList $ Map.keys $ view flc_cont flc_origin'')) t) . (Map.alter (addList $ _nre_list nre) t) diff --git a/src/Gargantext/Database/Query/Tree.hs b/src/Gargantext/Database/Query/Tree.hs index a0ae6817..3800b1de 100644 --- a/src/Gargantext/Database/Query/Tree.hs +++ b/src/Gargantext/Database/Query/Tree.hs @@ -34,7 +34,7 @@ module Gargantext.Database.Query.Tree ) where -import Control.Lens ({-(^..)-} toListOf, at, each, _Just, to, set, makeLenses) +import Control.Lens (view, toListOf, at, each, _Just, to, set, makeLenses) import Control.Monad.Error.Class (MonadError()) import Data.List (tail, concat, nub) import Data.Map (Map, fromListWith, lookup) @@ -93,22 +93,22 @@ tree_advanced :: HasTreeError err -> [NodeType] -> Cmd err (Tree NodeTree) tree_advanced r nodeTypes = do - mainRoot <- findNodes Private r nodeTypes - sharedRoots <- findNodes Shared r nodeTypes - publicRoots <- findNodes Public r nodeTypes + mainRoot <- findNodes r Private nodeTypes + sharedRoots <- findNodes r Shared nodeTypes + publicRoots <- findNodes r Public nodeTypes toTree $ toTreeParent (mainRoot <> sharedRoots <> publicRoots) ------------------------------------------------------------------------ data NodeMode = Private | Shared | Public findNodes :: HasTreeError err - => NodeMode - -> RootId -> [NodeType] + => RootId + -> NodeMode + -> [NodeType] -> Cmd err [DbTreeNode] -findNodes Private r nt = dbTree r nt -findNodes Shared r nt = findShared r NodeFolderShared nt sharedTreeUpdate -findNodes Public r nt = findShared r NodeFolderPublic nt publicTreeUpdate - +findNodes r Private nt = dbTree r nt +findNodes r Shared nt = findShared r NodeFolderShared nt sharedTreeUpdate +findNodes r Public nt = findShared r NodeFolderPublic nt publicTreeUpdate ------------------------------------------------------------------------ -- | Collaborative Nodes in the Tree @@ -120,6 +120,7 @@ findShared r nt nts fun = do trees <- mapM (updateTree nts fun) foldersSharedId pure $ concat trees + type UpdateTree err = ParentId -> [NodeType] -> NodeId -> Cmd err [DbTreeNode] updateTree :: HasTreeError err @@ -134,7 +135,7 @@ updateTree nts fun r = do sharedTreeUpdate :: HasTreeError err => UpdateTree err sharedTreeUpdate p nt n = dbTree n nt - <&> map (\n' -> if _dt_nodeId n' == n + <&> map (\n' -> if (view dt_nodeId n') == n -- && elem (fromNodeTypeId $ _dt_typeId n') [NodeGraph] -- && not (elem (fromNodeTypeId $ _dt_typeId n') [NodeFile]) then set dt_parentId (Just p) n' -- 2.21.0