/**
  * Write sosas in the table, if the number of items is superior to the limit, or if forced.
  *
  * @param bool $force Should the flush be forced
  */
 protected function flushTmpSosaTable($force = false)
 {
     if (count($this->tmp_sosa_table) > 0 && ($force || count($this->tmp_sosa_table) >= self::TMP_SOSA_TABLE_LIMIT)) {
         $this->sosa_provider->insertOrUpdate($this->tmp_sosa_table);
         $this->tmp_sosa_table = array();
     }
 }
 /**
  * SosaConfig@computePartial
  */
 public function computePartial()
 {
     global $WT_TREE;
     $controller = new AjaxController();
     $controller->restrictAccess($this->canUpdate());
     $view_bag = new ViewBag();
     $view_bag->set('is_success', false);
     $user = User::find(Filter::getInteger('userid', -1));
     $indi = Individual::getInstance(Filter::get('pid', WT_REGEX_XREF), $WT_TREE);
     if ($user && $indi) {
         $calculator = new SosaCalculator($WT_TREE, $user);
         if ($calculator->computeFromIndividual($indi)) {
             $view_bag->set('is_success', true);
         }
     } else {
         $view_bag->set('error', I18N::translate('Non existing individual'));
     }
     ViewFactory::make('SosaComputeResult', $this, $controller, $view_bag)->render();
 }