64 lines
1.3 KiB
Ruby
64 lines
1.3 KiB
Ruby
class Project < ActiveRecord::Base
|
|
|
|
def self.status_keys
|
|
{upcoming: 0, active: 1, backlog: 2, completed: 3}
|
|
end
|
|
|
|
enum status: self.status_keys
|
|
|
|
# HTML
|
|
def requirements
|
|
check_date_overdue_output requirements_completed?, requirements_due
|
|
end
|
|
|
|
def design
|
|
check_date_overdue_output design_completed?, design_due
|
|
end
|
|
|
|
def devops
|
|
check_date_overdue_output devops_completed?, devops_due
|
|
end
|
|
|
|
def qalaunch
|
|
check_date_overdue_output qalaunch_completed?, qalaunch_due
|
|
end
|
|
|
|
# JSON
|
|
def requirements_json
|
|
check_date_overdue_output requirements_completed?, requirements_due, json: true
|
|
end
|
|
|
|
def design_json
|
|
check_date_overdue_output design_completed?, design_due, json:true
|
|
end
|
|
|
|
def devops_json
|
|
check_date_overdue_output devops_completed?, devops_due, json:true
|
|
end
|
|
|
|
def qalaunch_json
|
|
check_date_overdue_output qalaunch_completed?, qalaunch_due, json:true
|
|
end
|
|
|
|
private
|
|
|
|
def check_date_overdue_output completed, due, options = {}
|
|
if completed
|
|
if options[:json]
|
|
"completed"
|
|
else
|
|
"<span class='checkmark'>✓</span>".html_safe
|
|
end
|
|
elsif Date.today > due
|
|
if options[:json]
|
|
"overdue"
|
|
else
|
|
"<span class='overdue'>Overdue</span>".html_safe
|
|
end
|
|
else
|
|
due
|
|
end
|
|
end
|
|
|
|
end
|