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/project"
|
||||||
require_relative "model/task"
|
require_relative "model/task"
|
||||||
|
require_relative "model/milestone"
|
||||||
end
|
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 :content
|
||||||
validates_presence_of :project
|
validates_presence_of :project
|
||||||
validates_inclusion_of :status, in: [STATUS_KEYS, *STATUS_KEYS.map(&:to_s)]
|
validates_inclusion_of :status, in: [STATUS_KEYS, *STATUS_KEYS.map(&:to_s)]
|
||||||
|
|
||||||
many_to_one :project, class_name: "Twenty::Project"
|
many_to_one :project, class_name: "Twenty::Project"
|
||||||
|
many_to_many :milestones,
|
||||||
|
class_name: "Twenty::Milestone",
|
||||||
|
join_table: :tasks_milestones
|
||||||
|
|
||||||
def status=(v)
|
def status=(v)
|
||||||
super(v.to_sym)
|
super(v.to_sym)
|
||||||
|
|
Loading…
Reference in a new issue