예제 #1
0
    def process_form(
        self,
        instance,
        field,
        form,
        empty_marker=None,
        emptyReturnsMarker=None,
    ):
        """process the form data and return it."""
        result = TypesWidget.process_form(
            self,
            instance,
            field,
            form,
            empty_marker,
            emptyReturnsMarker,
        )
        if result is empty_marker:
            return result
        value, kwargs = result

        # The widget always returns a empty item (strange) when we use the
        # multival option.
        # Remove the empty items manually
        if type(value) is list:
            value = [item for item in value if item]
        return value, kwargs
예제 #2
0
 def isVisible(self, instance, mode='view'):
     """
     """
     try:
         if instance.isTemporary():
             return 'invisible'
     except:
         pass
     return TypesWidget.isVisible(self, instance, mode)
예제 #3
0
 def isVisible(self, instance, mode="view"):
     """
     """
     try:
         if instance.isTemporary():
             return "invisible"
     except:
         pass
     return TypesWidget.isVisible(self, instance, mode)
예제 #4
0
 def process_form(self, instance, field, form, empty_marker=None, emptyReturnsMarker=None,):
     """process the form data and return it."""
     result = TypesWidget.process_form (self, instance, field, form, 
                                        empty_marker, emptyReturnsMarker, )
     if result is empty_marker:
         return result
     value, kwargs = result
     
     # The widget always returns a empty item (strange) when we use the multival option.
     # Remove the empty items manually
     if type(value) is types.ListType:
         value = [item for item in value if item]
     return value, kwargs
예제 #5
0
    def process_form(self,
                     instance,
                     field,
                     form,
                     empty_marker=None,
                     emptyReturnsMarker=False):
        """ Manipulate form input data

        Data coming from widget code goes through process_form
        before stored to field.

        For example, radio button cells need to be propeply changed from
        checked values to one chosen id for saving.
        """

        value = TypesWidget.process_form(self, instance, field, form,
                                         empty_marker, emptyReturnsMarker)

        if value == None or value == empty_marker or len(value) == 0:
            return value

        newData = value[0]

        # Column code hook to form data and manipulate
        # it propeply where TypesWidget.process_form doesn't
        # have required functionality
        for columnId in getattr(self, 'columns', {}).keys():
            columnDefinition = self.getColumnDefinition(field, columnId)
            newData = columnDefinition.processCellData(form, newData, instance,
                                                       field, columnId)

        # Clean up the last empty row (automatically inseted)
        # if auto_insert is enabled
        if self.isAutoInsertEnabled() and len(newData) > 1:
            lastRow = newData[len(newData) - 1]
            hasContent = False
            for val in lastRow.values():
                if val != None and val != "":
                    hasContent = True

            if not hasContent:
                newData = newData[:-1]

        return (newData, value[1])
예제 #6
0
    def process_form(self, instance, field, form, **kw):
        sourceName = form.get('%s.sourceName' % field.getName())
        if not sourceName:
            raise Exception('we need to set the source')
        field.setSourceName(instance, sourceName)

        configView = field.getSource(instance).configurationView
        config = instance.unrestrictedTraverse(
            '%s/%s' % (configView, field.getName()))
        form_shadow = form.copy()
        config.form_instance.update()
        form.update(form_shadow)

        # Extract your own form fields from the request
        changes = config.form_instance.applyChanges()
        # XXX: Handle changes = None and
        # config.formErrorsMessage being set == ERROR

        return TypesWidget.process_form(self, instance, field, form, **kw)
예제 #7
0
 def process_form(self, instance, field, form, empty_marker=None,
                  emptyReturnsMarker=False):
     """ Manipulate form input data 
     
     Data coming from widget code goes through process_form  
     before stored to field.
     
     For example, radio button cells need to be propeply changed from
     checked values to one chosen id for saving.
     """
     
     value = TypesWidget.process_form(self, instance,
         field, form, empty_marker, emptyReturnsMarker)
             
     if value == None or len(value) == 0:
         return value
     
     newData = value[0]
     
     # Column code hook to form data and manipulate
     # it propeply where TypesWidget.process_form doesn't
     # have required functionality
     for columnId in getattr(self, 'columns', {}).keys():
         columnDefinition = self.getColumnDefinition(field, columnId)
         newData = columnDefinition.processCellData(form, newData, instance, field, columnId)            
     
     # Clean up the last empty row (automatically inseted)
     # if auto_insert is enabled
     if self.isAutoInsertEnabled() and len(newData) > 1:
         lastRow = newData[len(newData) - 1]
         hasContent = False
         for val in lastRow.values():
             if val != None and val != "":
                 hasContent = True
                     
         if not hasContent:
             newData = newData[:-1]
         
         
     return (newData, value[1])