def set(self, instance, value, **kwargs): try: # Set Description only if richdescription attribute exists ... value_orig = instance.Description() value_prev = instance.richdescription.getRaw() if not value and not value_prev and value_orig: # richdescription never set, but description -> prefill value = value_orig cleaned = strip_html(value) instance.setDescription(cleaned) except AttributeError: # ... but prefill richdescription if it didn't exist until now. value = instance.Description() return super(RichDescriptionField, self).set(instance, value, **kwargs)
def richdescription(self, value): if not isinstance(RichTextValue, value): value = RichTextValue(raw=value) self.context.richdescription = value self.context.description = strip_html(value.raw)