code: def process_form(self, instance, field, form, empty_marker = None,
                       emptyReturnsMarker = False):
          
          bsc = getToolByName(instance, 'bika_setup_catalog')
          default = super(PartitionSetupWidget,self).process_form(
              instance, field, form, empty_marker, emptyReturnsMarker)
          if not default:
              return [], {}
          value = default[0]
          kwargs = len(default) > 1 and default[1] or {}
          newvalue = []
          for v in value:
              v = dict(v)
              if v.get('separate', '') == 'on' and not 'preservation' in v:
                  container_uid = v.get('container', [''])[0];
                  if container_uid:
                      container = bsc(UID=container_uid)[0].getObject();
                      if container.getPrePreserved():
                          pres = container.getPreservation()
                          if pres:
                              v['preservation'] = [pres.UID()]
              newvalue.append(v)
          return newvalue, kwargs
docs: Some special field handling for disabled fields, which don't
          get submitted by the browser but still need to be written away.