How to filter a view with another view? Let me explain my situation. I have in D7


4 different taxonomy list. Each taxonomy list is connected to other data in the system
A content type cFoo
2 different roles : contentmanager (CM) and user. hhahaha what else is new :-)


The CM is creating a entityque based on taxonomy terms which will result in let's say: tlist. 

The user should select for an cFoo a term from tlist but if he used a term already in another cFoo he may not select it again. 

I did testing and research but do not get the complete puzzle complete... I thought about the following solution for the user.

Build a webform with a selectbox with values of tlist. Contextual reference to this form will be cFoo.nid. Before loading this list in the webform it should already be filtered. Let say we have another view with terms already used named tListUsed. After the webform I will implement a rule to submit the selected term to the cFoo.

So now I have two views. tList, tListUsed. 
The basic question was: How to filter tList with view tListUsed?

UPDATED QUESTION
With the help of flags modules and views_exclude_previous modules i do not got this problem working. There is a approach on:
https://www.youtube.com/watch?v=cQrw7Ydo1to
which I now try to implement.

The strategy is now as follows:
Load the list of tListused into a global var. Use this var as a contextual filter with multi values to exclude.

On which hook should I execute the building of tListUsed. It cannot be in the view itself as it is a filter to the view. 

ps: question edited as setting up the tList for the CM is working and after trying some modules.
For those who need to implement this as well. I solved this by the following code. However in this code $tid_to_remove is not a view but generated on the view itself. 

function MODULENAME_views_post_execute(&amp;$view){

  switch ($view-&gt;name){
  case "VIEW_MACHINE_NAAM";

    GLOBAL $user;

    // Go through the view and build a list of items which should be removed
    $data = $view-&gt;result;
    $tid_to_remove = array();
    foreach ($data as $row =&gt; $rowinfo) {
      if ($rowinfo-&gt;users_node_uid == $user-&gt;uid ){     // if the current row belongs to the current user
        $tid_to_remove[] = $rowinfo-&gt;tid;  // added to the array
      }
    }

    // Optimize the array to unique values
    $tid_to_remove = array_unique($tid_to_remove);

    // Go through the view again en remove all values which are stored in $tid_to_remove
    $data = $view-&gt;result;
    foreach ($data as $row =&gt; $rowinfo) {
      if (in_array($rowinfo-&gt;tid,$tid_to_remove)){
        unset ($data[$row]);
      }
    }

    // place the values back into the view
    $view-&gt;result = $data;

  break;
  }
}