require "grit"
class Project < ActiveRecord::Base
+ belongs_to :owner, :class_name => "User"
+
has_many :issues, :dependent => :destroy
has_many :users_projects, :dependent => :destroy
has_many :users, :through => :users_projects
- belongs_to :owner, :class_name => "User"
has_many :notes, :dependent => :destroy
validates :name,
:uniqueness => true,
:length => { :within => 3..12 }
+ validates :owner,
+ :presence => true
+
validate :check_limit
before_save :format_code
def check_limit
unless owner.can_create_project?
- errors[:base] << ("You can to have #{owner.projects_limit} your own projects")
+ errors[:base] << ("Your own projects limit is #{owner.projects_limit}! Please contact administrator to increase it")
end
+ rescue
+ errors[:base] << ("Cant check your ability to create project")
end
def valid_repo?
t.datetime "updated_at"
t.string "name"
t.boolean "admin", :default => false, :null => false
- t.integer "projects_limit"
+ t.integer "projects_limit", :default => 10
end
add_index "users", ["email"], :name => "index_users_on_email", :unique => true
Factory.add(:project, Project) do |obj|
obj.name = Faker::Internet.user_name
obj.path = 'legit'
+ obj.owner = Factory(:user)
obj.code = 'LGT'
end
obj.name = Faker::Internet.user_name
obj.path = 'legit'
obj.private_flag = false
+ obj.owner = Factory(:user)
obj.code = 'LGT'
end