I'm building an application in a classic CI mvc setup where the user has a general/generic tasklist. The main purpose of a task is to indicate the user that he has to complete a specific action and will redirect him to the page where he needs to complete this action.
In a very simplistic way the db scheme of the task looks like this:

The tasklist it self will be somewhat of a list which redirects the user:

My problem is when the user is redirected to the specific page on which the action needs to occur we lose the context of the specific task. So even if the task is completed (in this example for instance the document is uploaded) the task itself doesn't know that and we don't really have a connection to update the task.
After some research the Observer design pattern looks like the one that can handle this need. But through all the examples I fail to make a click on how to actually implement this into our current system.
In a controller handling the upload of the document is the function upload_doc(){} which when is succesfully executed should also update the task that is connected or subscribed to this document upload.
class Dashboard extends MY_Controller{
public function __construct()
{
parent::__construct();
// Force SSL
$this->force_ssl();
}
public function upload_doc(){
//Handle doc upload and update task
}
}
Can anyone help me in a noobfriendly way how I can achieve this setup within the CI framework?
Thanks in advance!