2018-09-05 09:55:04 +02:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
|
|
|
module Api
|
|
|
|
module V1
|
2018-10-06 19:53:31 +02:00
|
|
|
class TaskSerializer < ActiveModel::Serializer
|
2020-08-07 16:51:57 +02:00
|
|
|
include ApplicationHelper
|
|
|
|
include ActionView::Helpers::TextHelper
|
|
|
|
include InputSanitizeHelper
|
|
|
|
|
2018-09-07 11:58:02 +02:00
|
|
|
type :tasks
|
2020-08-20 15:49:48 +02:00
|
|
|
attributes :id, :name, :started_on, :due_date, :description, :state, :archived, :status_id, :status_name,
|
2021-12-27 13:29:03 +01:00
|
|
|
:prev_status_id, :prev_status_name, :next_status_id, :next_status_name, :x, :y
|
2018-11-28 11:33:00 +01:00
|
|
|
has_many :output_tasks, key: :outputs,
|
|
|
|
serializer: TaskSerializer,
|
|
|
|
class_name: 'MyModule'
|
|
|
|
has_many :input_tasks, key: :inputs,
|
|
|
|
serializer: TaskSerializer,
|
|
|
|
class_name: 'MyModule'
|
2021-08-18 10:00:01 +02:00
|
|
|
has_many :task_comments, key: :comments, serializer: CommentSerializer
|
|
|
|
|
|
|
|
include TimestampableModel
|
2018-11-28 11:33:00 +01:00
|
|
|
|
2020-08-20 15:49:48 +02:00
|
|
|
def status_id
|
|
|
|
object.my_module_status_id
|
|
|
|
end
|
|
|
|
|
|
|
|
def status_name
|
|
|
|
object.my_module_status.name
|
|
|
|
end
|
|
|
|
|
|
|
|
def prev_status_id
|
|
|
|
object.my_module_status.previous_status&.id
|
|
|
|
end
|
|
|
|
|
|
|
|
def prev_status_name
|
|
|
|
object.my_module_status.previous_status&.name
|
|
|
|
end
|
|
|
|
|
|
|
|
def next_status_id
|
|
|
|
object.my_module_status.next_status&.id
|
|
|
|
end
|
|
|
|
|
|
|
|
def next_status_name
|
|
|
|
object.my_module_status.next_status&.name
|
|
|
|
end
|
|
|
|
|
2018-11-28 11:33:00 +01:00
|
|
|
def output_tasks
|
|
|
|
object.my_modules
|
|
|
|
end
|
|
|
|
|
|
|
|
def input_tasks
|
|
|
|
object.my_module_antecessors
|
|
|
|
end
|
2020-07-02 17:03:29 +02:00
|
|
|
|
|
|
|
def description
|
|
|
|
if instance_options[:rte_rendering]
|
2020-08-07 16:51:57 +02:00
|
|
|
custom_auto_link(object.tinymce_render(:description),
|
|
|
|
simple_format: false,
|
|
|
|
tags: %w(img),
|
|
|
|
team: instance_options[:team])
|
2020-07-02 17:03:29 +02:00
|
|
|
else
|
|
|
|
object.description
|
|
|
|
end
|
|
|
|
end
|
2018-09-05 09:55:04 +02:00
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|