Add Twenty::Milestone
This commit is contained in:
parent
1e03a31169
commit
ee5d4090d7
5 changed files with 49 additions and 0 deletions
17
server/lib/twenty/server/migration/4_add_milestones.rb
Normal file
17
server/lib/twenty/server/migration/4_add_milestones.rb
Normal file
|
@ -0,0 +1,17 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
Sequel.migration do
|
||||
up do
|
||||
create_table(:milestones) do
|
||||
primary_key :id
|
||||
String :name, null: false
|
||||
Date :due_date, null: true
|
||||
DateTime :created_at, null: false
|
||||
DateTime :updated_at, null: false
|
||||
end
|
||||
end
|
||||
|
||||
down do
|
||||
drop_table :milestones
|
||||
end
|
||||
end
|
17
server/lib/twenty/server/migration/5_add_tasks_milestones.rb
Normal file
17
server/lib/twenty/server/migration/5_add_tasks_milestones.rb
Normal file
|
@ -0,0 +1,17 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
Sequel.migration do
|
||||
up do
|
||||
create_table(:tasks_milestones) do
|
||||
primary_key :id
|
||||
Integer :task_id, null: false
|
||||
Integer :milestone_id, null: false
|
||||
DateTime :created_at, null: false
|
||||
DateTime :updated_at, null: false
|
||||
end
|
||||
end
|
||||
|
||||
down do
|
||||
drop_table :tasks_milestones
|
||||
end
|
||||
end
|
|
@ -8,4 +8,5 @@ module Twenty::Model
|
|||
|
||||
require_relative "model/project"
|
||||
require_relative "model/task"
|
||||
require_relative "model/milestone"
|
||||
end
|
||||
|
|
10
server/lib/twenty/server/model/milestone.rb
Normal file
10
server/lib/twenty/server/model/milestone.rb
Normal file
|
@ -0,0 +1,10 @@
|
|||
module Twenty
|
||||
class Milestone < Sequel::Model
|
||||
include Model
|
||||
validates_presence_of :name
|
||||
|
||||
many_to_many :tasks,
|
||||
class_name: "Twenty::Task",
|
||||
join_table: :tasks_milestones
|
||||
end
|
||||
end
|
|
@ -20,7 +20,11 @@ class Twenty::Task < Sequel::Model
|
|||
validates_presence_of :content
|
||||
validates_presence_of :project
|
||||
validates_inclusion_of :status, in: [STATUS_KEYS, *STATUS_KEYS.map(&:to_s)]
|
||||
|
||||
many_to_one :project, class_name: "Twenty::Project"
|
||||
many_to_many :milestones,
|
||||
class_name: "Twenty::Milestone",
|
||||
join_table: :tasks_milestones
|
||||
|
||||
def status=(v)
|
||||
super(v.to_sym)
|
||||
|
|
Loading…
Reference in a new issue