Source code for swimlane.core.fields.comment

import pendulum

from swimlane.core.resources.comment import Comment
from .base import CursorField, FieldCursor, ReadOnly


[docs]class CommentCursor(FieldCursor): """Returned by CommentField to allow iteration and creation of Comment instances"""
[docs] def comment(self, message): """Add new comment to record comment field""" message = str(message) sw_repr = { '$type': 'Core.Models.Record.Comments, Core', 'createdByUser': self._record._swimlane.user.as_usergroup_selection(), 'createdDate': pendulum.now().to_rfc3339_string(), 'message': message } comment = Comment(self._swimlane, sw_repr) self._elements.append(comment) self._record._raw['comments'].setdefault(self._field.id, []) self._record._raw['comments'][self._field.id].append(comment._raw) return comment
[docs]class CommentsField(ReadOnly, CursorField): field_type = 'Core.Models.Fields.CommentsField, Core' cursor_class = CommentCursor
[docs] def get_initial_elements(self): raw_comments = self.record._raw['comments'].get(self.id, []) return [Comment(self.record._swimlane, raw) for raw in raw_comments]