| Total Complexity | 4 |
| Total Lines | 39 |
| Duplicated Lines | 0 % |
| Changes | 0 | ||
| 1 | # -*- coding: utf-8 -*- |
||
| 2 | |||
| 3 | from bika.lims import api |
||
| 4 | from plone.app.textfield import RichText |
||
| 5 | from senaite.core.schema.fields import BaseField |
||
| 6 | from senaite.core.schema.interfaces import IRichTextField |
||
| 7 | from zope.interface import implementer |
||
| 8 | |||
| 9 | |||
| 10 | @implementer(IRichTextField) |
||
| 11 | class RichTextField(RichText, BaseField): |
||
| 12 | """A field that handles markup texts |
||
| 13 | """ |
||
| 14 | |||
| 15 | def set(self, object, value): |
||
| 16 | """Set field value |
||
| 17 | |||
| 18 | :param object: the instance of the field |
||
| 19 | :param value: value to set |
||
| 20 | """ |
||
| 21 | # always ensure unicode |
||
| 22 | if isinstance(value, str): |
||
| 23 | value = api.safe_unicode(value) |
||
| 24 | super(RichTextField, self).set(object, value) |
||
| 25 | |||
| 26 | def get(self, object): |
||
| 27 | """Get the field value |
||
| 28 | |||
| 29 | :param object: the instance of the field |
||
| 30 | :returns: RichTextValue |
||
| 31 | """ |
||
| 32 | value = super(RichTextField, self).get(object) |
||
| 33 | return value |
||
| 34 | |||
| 35 | def _validate(self, value): |
||
| 36 | """Validator when called from form submission |
||
| 37 | """ |
||
| 38 | super(RichTextField, self)._validate(value) |
||
| 39 |