DB: Integridade referencial
This commit is contained in:
@@ -25,14 +25,12 @@ class Attachment < ActiveRecord::Base
|
||||
self.size = new_file.size
|
||||
end
|
||||
|
||||
# Limpa o nome do arquivo
|
||||
protected
|
||||
def sanitize(filename)
|
||||
filename = File.basename(filename)
|
||||
filename.gsub(/[^\w\.\-]/, '_')
|
||||
end
|
||||
|
||||
# Verifica se o arquivo é válido
|
||||
def validate
|
||||
if @tmp_file
|
||||
errors.add("file") if @tmp_file.size == 0
|
||||
|
||||
@@ -13,23 +13,32 @@
|
||||
|
||||
class Course < ActiveRecord::Base
|
||||
|
||||
has_many :attachments, :order => "file_name"
|
||||
has_many :wiki_pages, :order => "position"
|
||||
|
||||
has_many :shoutbox_messages,
|
||||
:class_name => 'CourseShoutboxMessage',
|
||||
:foreign_key => "receiver_id",
|
||||
:order => 'id desc'
|
||||
# Associacoes
|
||||
has_many :attachments,
|
||||
:order => "file_name",
|
||||
:dependent => :destroy
|
||||
|
||||
has_many :events,
|
||||
:order => "time asc",
|
||||
:dependent => :destroy
|
||||
|
||||
has_many :news,
|
||||
:class_name => 'News',
|
||||
:foreign_key => "receiver_id",
|
||||
:order => 'id desc'
|
||||
:order => "id desc",
|
||||
:dependent => :destroy
|
||||
|
||||
has_many :events, :order => "time asc"
|
||||
has_many :log_entries,
|
||||
:order => "created_at desc",
|
||||
:dependent => :destroy
|
||||
|
||||
has_many :log_entries, :order => "created_at desc"
|
||||
has_many :wiki_pages,
|
||||
:order => "position",
|
||||
:dependent => :destroy
|
||||
|
||||
# Plugins
|
||||
acts_as_paranoid
|
||||
|
||||
# Validacao
|
||||
generate_validations
|
||||
validates_uniqueness_of :short_name
|
||||
validates_format_of :short_name, :with => /^[^0-9]/
|
||||
@@ -41,15 +50,6 @@ class Course < ActiveRecord::Base
|
||||
end
|
||||
end
|
||||
|
||||
def after_destroy
|
||||
associations = [:attachments, :wiki_pages, :shoutbox_messages, :news, :events]
|
||||
associations.each do |assoc|
|
||||
send("#{assoc}").each do |record|
|
||||
record.destroy
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def to_param
|
||||
self.short_name
|
||||
end
|
||||
|
||||
@@ -15,6 +15,8 @@ class LogEntry < ActiveRecord::Base
|
||||
belongs_to :user
|
||||
belongs_to :course
|
||||
|
||||
acts_as_paranoid
|
||||
|
||||
def reversible?() false end
|
||||
|
||||
def to_xml(options = {})
|
||||
|
||||
@@ -31,8 +31,8 @@ class WikiDeleteLogEntry < WikiLogEntry
|
||||
def undo!(current_user)
|
||||
w = WikiPage.find_with_deleted(target_id)
|
||||
w.update_attribute(:deleted_at, nil)
|
||||
w.position = w.course.wiki_pages.maximum(:position) + 1
|
||||
w.save!
|
||||
w.position = w.course.wiki_pages.maximum(:position) + 1
|
||||
w.save!
|
||||
WikiRestoreLogEntry.create!(:target_id => w.id, :user_id => current_user.id,
|
||||
:course => w.course)
|
||||
end
|
||||
|
||||
@@ -31,10 +31,7 @@ class User < ActiveRecord::Base
|
||||
attr_protected :id, :salt
|
||||
attr_accessor :password, :password_confirmation
|
||||
|
||||
has_many :shoutbox_messages,
|
||||
:class_name => 'UserShoutboxMessage',
|
||||
:foreign_key => "receiver_id",
|
||||
:order => 'id desc'
|
||||
acts_as_paranoid
|
||||
|
||||
def User.find_by_login_and_pass(login, pass)
|
||||
user = find(:first, :conditions => [ "login = ?", login ])
|
||||
|
||||
Reference in New Issue
Block a user