docs: def update_logger_entry(self,i):
          """
          helper function that given a index in this objects fit_list parameter inserts a entry at that index
          @param: i -> index in fit_list to find the (specimen_name,fit object) tup that determines all the data for this logger entry.
          """
          if i < len(self.fit_list):
              tup = self.fit_list[i]
          elif i < self.logger.GetItemCount():
              self.logger.DeleteItem(i)
              return
          else: return
  
          coordinate_system = self.parent.COORDINATE_SYSTEM
          fit = tup[0]
          pars = fit.get(coordinate_system)
          fmin,fmax,n,ftype,dec,inc,mad,dang,a95,sk,sr2 = "","","","","","","","","","",""
  
          specimen = tup[1]
          if coordinate_system=='geographic':
              block_key = 'zijdblock_geo'
          elif coordinate_system=='tilt-corrected':
              block_key = 'zijdblock_tilt'
          else:
              block_key = 'zijdblock'
  
          name = fit.name
          if pars == {} and self.parent.Data[specimen][block_key] != []:
              fit.put(specimen, coordinate_system, self.parent.get_PCA_parameters(specimen,fit,fit.tmin,fit.tmax,coordinate_system,fit.PCA_type))
              pars = fit.get(coordinate_system)
          if self.parent.Data[specimen][block_key]==[]:
              spars = fit.get('specimen')
              fmin = fit.tmin
              fmax = fit.tmax
              if 'specimen_n' in list(spars.keys()): n = str(spars['specimen_n'])
              else: n = 'No Data'
              if 'calculation_type' in list(spars.keys()): ftype = spars['calculation_type']
              else: ftype = 'No Data'
              dec = 'No Data'
              inc = 'No Data'
              mad = 'No Data'
              dang = 'No Data'
              a95 = 'No Data'
              sk = 'No Data'
              sr2 = 'No Data'
          else:
              if 'measurement_step_min' in list(pars.keys()): fmin = str(fit.tmin)
              else: fmin = "N/A"
              if 'measurement_step_max' in list(pars.keys()): fmax = str(fit.tmax)
              else: fmax = "N/A"
              if 'specimen_n' in list(pars.keys()): n = str(pars['specimen_n'])
              else: n = "N/A"
              if 'calculation_type' in list(pars.keys()): ftype = pars['calculation_type']
              else: ftype = "N/A"
              if 'specimen_dec' in list(pars.keys()): dec = "%.1f"%pars['specimen_dec']
              else: dec = "N/A"
              if 'specimen_inc' in list(pars.keys()): inc = "%.1f"%pars['specimen_inc']
              else: inc = "N/A"
              if 'specimen_mad' in list(pars.keys()): mad = "%.1f"%pars['specimen_mad']
              else: mad = "N/A"
              if 'specimen_dang' in list(pars.keys()): dang = "%.1f"%pars['specimen_dang']
              else: dang = "N/A"
              if 'specimen_alpha95' in list(pars.keys()): a95 = "%.1f"%pars['specimen_alpha95']
              else: a95 = "N/A"
              if 'specimen_k' in list(pars.keys()): sk = "%.1f"%pars['specimen_k']
              else: sk = "N/A"
              if 'specimen_r' in list(pars.keys()): sr2 = "%.1f"%pars['specimen_r']
              else: sr2 = "N/A"
  
          if self.search_query != "":
              entry = (specimen+name+fmin+fmax+n+ftype+dec+inc+mad+dang+a95+sk+sr2).replace(" ","").lower()
              if self.search_query not in entry:
                  self.fit_list.pop(i)
                  if i < self.logger.GetItemCount():
                      self.logger.DeleteItem(i)
                  return "s"
          for e in (specimen,name,fmin,fmax,n,ftype,dec,inc,mad,dang,a95,sk,sr2):
              if e not in self.search_choices:
                  self.search_choices.append(e)
  
          if i < self.logger.GetItemCount():
              self.logger.DeleteItem(i)
          self.logger.InsertItem(i, str(specimen))
          self.logger.SetItem(i, 1, name)
          self.logger.SetItem(i, 2, fmin)
          self.logger.SetItem(i, 3, fmax)
          self.logger.SetItem(i, 4, n)
          self.logger.SetItem(i, 5, ftype)
          self.logger.SetItem(i, 6, dec)
          self.logger.SetItem(i, 7, inc)
          self.logger.SetItem(i, 8, mad)
          self.logger.SetItem(i, 9, dang)
          self.logger.SetItem(i, 10, a95)
          self.logger.SetItem(i, 11, sk)
          self.logger.SetItem(i, 12, sr2)
          self.logger.SetItemBackgroundColour(i,"WHITE")
          a,b = False,False
          if fit in self.parent.bad_fits:
              self.logger.SetItemBackgroundColour(i,"red")
              b = True
          if self.parent.current_fit == fit:
              self.logger.SetItemBackgroundColour(i,"LIGHT BLUE")
              self.logger_focus(i)
              self.current_fit_index = i
              a = True
          if a and b:
              self.logger.SetItemBackgroundColour(i,"red")