Wiki: titulos canonicos

This commit is contained in:
2009-09-07 07:49:16 -03:00
parent ca993b06de
commit b9924402eb
5 changed files with 38 additions and 11 deletions

View File

@@ -164,7 +164,7 @@ class WikiController < ApplicationController
params[:course_id] = Course.find(:first, :conditions => ['short_name = ?', params[:course_id]], :order => 'period desc').id if !params[:course_id].is_numeric? and !Course.find_by_short_name(params[:course_id]).nil?
@course = Course.find(params[:course_id])
params[:id] = @course.wiki_pages.find_by_title(params[:id]).id if params[:id] and !params[:id].is_numeric? and !@course.wiki_pages.find_by_title(params[:id]).nil?
params[:id] = @course.wiki_pages.find_by_canonical_title(params[:id].pretty_url).id if params[:id] and !params[:id].is_numeric? and !@course.wiki_pages.find_by_canonical_title(params[:id].pretty_url).nil?
@wiki_page = params[:id] ? @course.wiki_pages.find(params[:id]) : WikiPage.new(params[:wiki_page])
end

View File

@@ -27,6 +27,7 @@ class WikiPage < ActiveRecord::Base
acts_as_paranoid_versioned
self.non_versioned_columns << 'position'
self.non_versioned_columns << 'deleted_at'
self.non_versioned_columns << 'canonical_title'
# Associacoes
belongs_to :course
@@ -35,8 +36,13 @@ class WikiPage < ActiveRecord::Base
# Valicacao
generate_validations
validates_uniqueness_of :title, :scope => :course_id
validates_uniqueness_of :canonical_title, :scope => :course_id
validates_format_of :title, :with => /^[^0-9]/
def before_validation
self.canonical_title = self.title.pretty_url
end
def validate
begin
self.content.format_wiki
@@ -46,7 +52,7 @@ class WikiPage < ActiveRecord::Base
end
def to_param
self.title.match(/^[-_a-z0-9]*$/i).nil? ? self.id.to_s : self.title
self.canonical_title
end
def WikiPage.diff(from, to)