diff --git a/app/controllers/words_controller.rb b/app/controllers/words_controller.rb index 7198fc5ac..4aa8316af 100644 --- a/app/controllers/words_controller.rb +++ b/app/controllers/words_controller.rb @@ -40,40 +40,11 @@ class WordsController < ApplicationController end def create_reply - if params[:new_form][:user_message].size>0 - unless params[:user_id].nil? - if params[:reference_content] - message = params[:new_form][:user_message] + "\n" + params[:reference_content] - else - message = params[:new_form][:user_message] - end - refer_user_id = params[:new_form][:reference_user_id].to_i - - # @user.add_jour(User.current, message, params[:object_id]) - @user.add_reply(params[:object_id], @user.current, message) - unless refer_user_id == 0 || refer_user_id == User.current.id - User.find(refer_user_id).add_jour(User.current, message, refer_user_id) - end - @user.count_new_jour - # if a_message.size > 5 - # @message = a_message[-5, 5] - # else - # @message = a_message - # end - # @message_count = a_message.count - end - end - @jours = @user.journals_for_messages.reverse - @limit = 10 - @feedback_count = @jours.count - @feedback_pages = Paginator.new @feedback_count, @limit, params['page'] - @offset ||= @feedback_pages.offset - @jour = @jours[@offset, @limit] - + find_user + @params = params respond_to do |format| - # format.html { redirect_to_referer_or {render :text => 'Watcher added.', :layout => true}} + format.html {render 'test/index'} format.js - #format.api { render_api_ok } end end diff --git a/app/models/journals_for_message.rb b/app/models/journals_for_message.rb index e4e9164d6..1c28b815e 100644 --- a/app/models/journals_for_message.rb +++ b/app/models/journals_for_message.rb @@ -1,13 +1,31 @@ # fq +# 数据库字段中带有m前缀和is_readed是二次开发添加,之前的字段基本复用 +# 注意reply_id 是提到人的id,不是留言id, Base中叫做ator class JournalsForMessage < ActiveRecord::Base - attr_accessible :jour_id, :jour_type, :notes, :reply_id, :status, :user_id - attr_accessor :indice - validates :notes, presence: true + include Redmine::SafeAttributes + safe_attributes "jour_type", # 留言所属类型 + "jour_id", # 留言所属类型的id + "notes", # 留言内容 + "reply_id", # 留言被回复留言者的用户id(用户a回复了用户b,这是b的id,用以查询谁给b留言了) + "status", # 留言是否被查看(弃用) + "user_id", # 留言者的id + "m_parent_id", # 留言信息的父留言id + "is_readed", # 留言是否已读 + "m_reply_count", # 留言的回复数量 + "m_reply_id" # 回复某留言的留言id(a留言回复了b留言,这是b留言的id) + acts_as_tree :foreign_key => 'm_parent_id', :counter_cache => :m_reply_count, :order => "#{JournalsForMessage.table_name}.created_on ASC" + belongs_to :jour, :polymorphic => true belongs_to :user + belongs_to :ator, :class_name => "User", :foreign_key => 'reply_id' + has_many :acts, :class_name => 'Activity', :as => :act, :dependent => :destroy has_many :reply_for_journals, :dependent => :destroy + + validates :notes, presence: true after_create :act_as_activity #huang + after_create :reset_counters! + after_destroy :reset_counters! def self.delete_message(message_id) self.delete_all "id = #{message_id}" @@ -30,4 +48,12 @@ class JournalsForMessage < ActiveRecord::Base end end end + + def reset_counters! + self.class.reset_counters!(id) + end + def self.reset_counters! journals_for_messages_id + jfm_id = journals_for_messages_id.to_i + update_all("m_reply_count = (SELECT COUNT(*) FROM #{JournalsForMssages.table_name} WHERE m_parent_id = #{jfm_id} )", ["id = ?", jfm_id]) + end end diff --git a/app/models/memo.rb b/app/models/memo.rb index 284d2ba1b..81a8e265b 100644 --- a/app/models/memo.rb +++ b/app/models/memo.rb @@ -6,7 +6,7 @@ class Memo < ActiveRecord::Base validates_presence_of :author_id, :forum_id, :subject validates :content, presence: true validates_length_of :subject, maximum: 50 - validates_length_of :content, maximum: 3072 + validates_length_of :content#, maximum: 3072 validate :cannot_reply_to_locked_topic, :on => :create acts_as_tree :counter_cache => :replies_count, :order => "#{Memo.table_name}.created_at ASC" diff --git a/app/views/test/index.html.erb b/app/views/test/index.html.erb index 97634e965..01c60e1bf 100644 --- a/app/views/test/index.html.erb +++ b/app/views/test/index.html.erb @@ -1,3 +1,3 @@ -

test

- +

test

+<%= debug @params %> \ No newline at end of file diff --git a/db/schema.rb b/db/schema.rb index 58713ce4b..2bda4fcc1 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -13,14 +13,6 @@ ActiveRecord::Schema.define(:version => 20131224021723) do - create_table "a_user_watchers", :force => true do |t| - t.string "name" - t.text "description" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - t.integer "member_id" - end - create_table "activities", :force => true do |t| t.integer "act_id", :null => false t.string "act_type", :null => false @@ -302,9 +294,9 @@ ActiveRecord::Schema.define(:version => 20131224021723) do add_index "issue_categories", ["project_id"], :name => "issue_categories_project_id" create_table "issue_relations", :force => true do |t| - t.integer "issue_from_id", :null => false - t.integer "issue_to_id", :null => false - t.string "relation_type", :null => false + t.integer "issue_from_id", :null => false + t.integer "issue_to_id", :null => false + t.string "relation_type", :default => "", :null => false t.integer "delay" end @@ -472,22 +464,6 @@ ActiveRecord::Schema.define(:version => 20131224021723) do add_index "messages", ["last_reply_id"], :name => "index_messages_on_last_reply_id" add_index "messages", ["parent_id"], :name => "messages_parent_id" - create_table "messages_for_bids", :force => true do |t| - t.string "message" - t.integer "user_id" - t.integer "bid_id" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - end - - create_table "messages_for_users", :force => true do |t| - t.integer "messager_id" - t.integer "user_id" - t.string "message" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - end - create_table "news", :force => true do |t| t.integer "project_id" t.string "title", :limit => 60, :default => "", :null => false @@ -517,23 +493,6 @@ ActiveRecord::Schema.define(:version => 20131224021723) do t.string "salt", :null => false end - create_table "permissions", :force => true do |t| - t.string "controller", :limit => 30, :default => "", :null => false - t.string "action", :limit => 30, :default => "", :null => false - t.string "description", :limit => 60, :default => "", :null => false - t.boolean "is_public", :default => false, :null => false - t.integer "sort", :default => 0, :null => false - t.boolean "mail_option", :default => false, :null => false - t.boolean "mail_enabled", :default => false, :null => false - end - - create_table "permissions_roles", :id => false, :force => true do |t| - t.integer "permission_id", :default => 0, :null => false - t.integer "role_id", :default => 0, :null => false - end - - add_index "permissions_roles", ["role_id"], :name => "permissions_roles_role_id" - create_table "praise_tread_caches", :force => true do |t| t.integer "object_id", :null => false t.string "object_type" @@ -564,22 +523,11 @@ ActiveRecord::Schema.define(:version => 20131224021723) do t.integer "watchers_count" t.integer "project_id" t.integer "project_type" - t.integer "gitlab_group_id", :limit => 8 - t.float "grade", :default => 0.0 - t.integer "course_ac_para", :default => 0 + t.float "grade", :default => 0.0 + t.integer "course_ac_para", :default => 0 end - add_index "project_statuses", ["changesets_count"], :name => "index_project_statuses_on_changesets_count" - add_index "project_statuses", ["watchers_count"], :name => "index_project_statuses_on_watchers_count" - - create_table "project_tags", :force => true do |t| - t.integer "project_id" - t.integer "tag_id" - t.string "description" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - t.integer "user_id" - end + add_index "project_statuses", ["grade"], :name => "index_project_statuses_on_grade" create_table "projects", :force => true do |t| t.string "name", :default => "", :null => false @@ -624,28 +572,18 @@ ActiveRecord::Schema.define(:version => 20131224021723) do add_index "queries", ["project_id"], :name => "index_queries_on_project_id" add_index "queries", ["user_id"], :name => "index_queries_on_user_id" - create_table "reply_for_journals", :force => true do |t| - t.integer "jour_id" - t.integer "user_id" - t.text "notes" - t.integer "status" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - end - create_table "repositories", :force => true do |t| - t.integer "project_id", :default => 0, :null => false - t.string "url", :default => "", :null => false - t.string "login", :limit => 60, :default => "" - t.string "password", :default => "" - t.string "root_url", :default => "" + t.integer "project_id", :default => 0, :null => false + t.string "url", :default => "", :null => false + t.string "login", :limit => 60, :default => "" + t.string "password", :default => "" + t.string "root_url", :default => "" t.string "type" - t.string "path_encoding", :limit => 64 - t.string "log_encoding", :limit => 64 + t.string "path_encoding", :limit => 64 + t.string "log_encoding", :limit => 64 t.text "extra_info" t.string "identifier" - t.boolean "is_default", :default => false - t.string "git_project_id" + t.boolean "is_default", :default => false end add_index "repositories", ["project_id"], :name => "index_repositories_on_project_id" @@ -659,6 +597,26 @@ ActiveRecord::Schema.define(:version => 20131224021723) do t.string "issues_visibility", :limit => 30, :default => "default", :null => false end + create_table "seems_rateable_cached_ratings", :force => true do |t| + t.integer "cacheable_id", :limit => 8 + t.string "cacheable_type" + t.float "avg", :null => false + t.integer "cnt", :null => false + t.string "dimension" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "seems_rateable_rates", :force => true do |t| + t.integer "rater_id", :limit => 8 + t.integer "rateable_id" + t.string "rateable_type" + t.float "stars", :null => false + t.string "dimension" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + create_table "settings", :force => true do |t| t.string "name", :default => "", :null => false t.text "value" @@ -669,9 +627,9 @@ ActiveRecord::Schema.define(:version => 20131224021723) do create_table "shares", :force => true do |t| t.date "created_on" - t.string "title" - t.string "share_type" t.string "url" + t.string "title" + t.integer "share_type" t.datetime "created_at", :null => false t.datetime "updated_at", :null => false t.integer "project_id" @@ -679,12 +637,6 @@ ActiveRecord::Schema.define(:version => 20131224021723) do t.string "description" end - create_table "students", :force => true do |t| - t.string "name" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - end - create_table "students_for_courses", :force => true do |t| t.integer "student_id" t.integer "course_id" @@ -743,7 +695,7 @@ ActiveRecord::Schema.define(:version => 20131224021723) do create_table "tokens", :force => true do |t| t.integer "user_id", :default => 0, :null => false t.string "action", :limit => 30, :default => "", :null => false - t.string "value", :limit => 40 + t.string "value", :limit => 40, :default => "", :null => false t.datetime "created_on", :null => false end @@ -769,13 +721,12 @@ ActiveRecord::Schema.define(:version => 20131224021723) do t.integer "zip_code" t.datetime "created_at", :null => false t.datetime "updated_at", :null => false - t.integer "identity" t.string "technical_title" + t.integer "identity" t.string "student_id" t.string "teacher_realname" t.string "student_realname" t.string "location_city" - t.string "git_token" end create_table "user_grades", :force => true do |t| @@ -812,14 +763,6 @@ ActiveRecord::Schema.define(:version => 20131224021723) do add_index "user_statuses", ["grade"], :name => "index_user_statuses_on_grade" add_index "user_statuses", ["watchers_count"], :name => "index_user_statuses_on_watchers_count" - create_table "user_tags", :force => true do |t| - t.integer "user_id" - t.integer "tag_id" - t.string "description" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - end - create_table "users", :force => true do |t| t.string "login", :default => "", :null => false t.string "hashed_password", :limit => 40, :default => "", :null => false