code: def recatalog_analyses_due_date(portal):
      
      logger.info("Updating Analyses getDueDate")
      # No need to update those analyses that are verified or published. Only
      # those that are under work
      catalog = api.get_tool(CATALOG_ANALYSIS_LISTING)
      review_states = ["retracted", "sample_due", "attachment_due",
                       "sample_received", "to_be_verified"]
      query = dict(portal_type="Analysis", review_state=review_states)
      analyses = api.search(query, CATALOG_ANALYSIS_LISTING)
      total = len(analyses)
      num = 0
      for num, analysis in enumerate(analyses, start=1):
          analysis = api.get_object(analysis)
          catalog.catalog_object(analysis, idxs=['getDueDate'])
          if num % 100 == 0:
              logger.info("Updating Analysis getDueDate: {0}/{1}"
                          .format(num, total))
  
      logger.info("{} Analyses updated".format(num))
docs: Recatalog the index and metadata field 'getDueDate'