def add(self, field): context = self.context schema = IEditableSchema(context.schema) # move it after the last field that is not in a fieldset # or at top if there is no field yet in "default" fieldset ordered_fields = [name for (name, f) in sortedFields(context.schema)] default_fields = non_fieldset_fields(context.schema) if len(default_fields) > 0: position = ordered_fields.index(default_fields[-1]) + 1 else: position = 0 try: schema.addField(field) except ValueError: raise WidgetActionExecutionError('__name__', Invalid( u'Please select a field name that is not already used.' )) schema.moveField(field.__name__, position) notify(ObjectAddedEvent(field, context.schema)) notify(FieldAddedEvent(context, field)) IStatusMessage(self.request).addStatusMessage( _(u"Field added successfully."), type='info')
def add(self, new_field): schema = self.context.schema fieldset_id = int(self.request.form.get('fieldset_id', 0)) position = new_field_position(schema, fieldset_id) editable_schema = IEditableSchema(schema) try: editable_schema.addField(new_field) except ValueError: raise WidgetActionExecutionError( '__name__', Invalid( u'Please select a field name that is not already used.')) if fieldset_id: fieldset = get_fieldset_from_index(schema, fieldset_id) editable_schema.changeFieldFieldset(new_field.__name__, fieldset) editable_schema.moveField(new_field.__name__, position) notify(ObjectAddedEvent(new_field, schema)) notify(FieldAddedEvent(self.context, new_field)) IStatusMessage(self.request).addStatusMessage( _(u'Field added successfully.'), type='info')
def add(self, field): context = self.context schema = IEditableSchema(context.schema) # move it after the last field that is not in a fieldset # or at top if there is no field yet in "default" fieldset ordered_fields = [name for (name, f) in sortedFields(context.schema)] default_fields = non_fieldset_fields(context.schema) if len(default_fields) > 0: position = ordered_fields.index(default_fields[-1]) + 1 else: position = 0 try: schema.addField(field) except ValueError: raise WidgetActionExecutionError('__name__', Invalid(u'Please select a field name that is not already used.')) schema.moveField(field.__name__, position) notify(ObjectAddedEvent(field, context.schema)) notify(FieldAddedEvent(context, field)) self.status = _(u"Field added successfully.")
def add(self, new_field): schema = self.context.schema fieldset_id = int(self.request.form.get('fieldset_id', 0)) position = new_field_position(schema, fieldset_id) editable_schema = IEditableSchema(schema) try: editable_schema.addField(new_field) except ValueError: raise WidgetActionExecutionError( '__name__', Invalid( u'Please select a field name that is not already used.' ) ) if fieldset_id: fieldset = get_fieldset_from_index(schema, fieldset_id) editable_schema.changeFieldFieldset(new_field.__name__, fieldset) editable_schema.moveField(new_field.__name__, position) notify(ObjectAddedEvent(new_field, schema)) notify(FieldAddedEvent(self.context, new_field)) IStatusMessage(self.request).addStatusMessage( _(u'Field added successfully.'), type='info')