code: def getAnalysisRequestBySample(self):
          
          # rows will contain the data for each html row
          rows = []
          # columns will be used to sort and define the columns
          columns = {
              'column_order': [
                  'sample_id',
                  'sample_type',
                  'sampling_point',
                  'sampling_date',
                  'analyses',
                  ],
              'titles': {
                  'sample_id': _('Sample ID'),
                  'sample_type': _('Sample Type'),
                  'sampling_point': _('Sampling Point'),
                  'sampling_date': _('Sampling Date'),
                  'analyses': _('Analysis'),
              }
          }
          ars = self.context.getAnalysisRequests()
          for ar in ars:
              ar = ar.getObject()
              arcell = False
              analyses = ar.getAnalyses()
              numans = len(analyses)
              for analysis in analyses:
                  row = {
                      'sample_id': {
                          'hidden': True if arcell else False,
                          'rowspan': numans,
                          'value': ar.getId(),
                          },
                      'sample_type': {
                          'hidden': True if arcell else False,
                          'rowspan': numans,
                          'value': ar.getSampleType().title,
                          },
                      'sampling_point': {
                          'hidden': True if arcell else False,
                          'rowspan': numans,
                          'value': ar.getSamplePoint().title if ar.getSamplePoint() else '',
                          },
                      'sampling_date': {
                          'hidden': True if arcell else False,
                          'rowspan': numans,
                          'value': self.context.sampling_date,
                          },
                      'analyses': {
                          'title': analysis.title,
                          'units': analysis.getUnit,
                      },
                  }
                  rows.append(row)
                  arcell = True
  
          # table will contain the data that from where the html
          # will take the info
          table = {
              'columns': columns,
              'rows': rows,
          }
          return table
docs: Returns a list of dictionaries sorted by Sample Partition/Container
          [{'requests and partition info'}, ...]