From 45178e178f59a59287d37907b231a897b8907894 Mon Sep 17 00:00:00 2001 From: nieguanghui Date: Mon, 16 Sep 2013 21:47:46 +0800 Subject: [PATCH] fix the projects's present bug --- app/controllers/projects_controller.rb | 14 +- app/views/projects/_form.html.erb | 1 + app/views/projects/_project.html.erb | 4 +- config/database.yml | 6 +- .../20130828004955_stored_status_procedure.rb | 2 +- db/schema.rb | 126 ++++-------------- 6 files changed, 48 insertions(+), 105 deletions(-) diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index 1ac68c6d3..926b6a648 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -170,7 +170,7 @@ class ProjectsController < ApplicationController @projects = [] @projects_status.each do |obj| - @projects << Project.find_by_id("#{obj.project_id}") + @projects << Project.visible.find_by_id("#{obj.project_id}") unless Project.visible.find_by_id("#{obj.project_id}").nil? end #end respond_to do |format| @@ -289,7 +289,9 @@ class ProjectsController < ApplicationController r = Role.givable.find_by_id(Setting.new_project_user_role_id.to_i) || Role.givable.first m = Member.new(:user => User.current, :roles => [r]) project = ProjectInfo.new(:user_id => User.current.id, :project_id => @project.id) - project_status = ProjectStatus.create(:project_id => @project.id) + if params[:project][:is_public] == 1 + project_status = ProjectStatus.create(:project_id => @project.id, :watchers_count => 0, :changesets_count => 0) + end @project.members << m @project.project_infos << project end @@ -446,6 +448,14 @@ class ProjectsController < ApplicationController @project.safe_attributes = params[:project] if validate_parent_id && @project.save @project.set_allowed_parent!(params[:project]['parent_id']) if params[:project].has_key?('parent_id') + + if params[:project][:is_public] == '0' + project_status = ProjectStatus.find_by_project_id(@project.id) + project_status.destroy + elsif params[:project][:is_public] == '1' + project_status = ProjectStatus.create(:project_id => @project.id, :watchers_count => 0, :changesets_count => 0) + end + respond_to do |format| format.html { flash[:notice] = l(:notice_successful_update) diff --git a/app/views/projects/_form.html.erb b/app/views/projects/_form.html.erb index f752c7d0b..8d9ee0dfc 100644 --- a/app/views/projects/_form.html.erb +++ b/app/views/projects/_form.html.erb @@ -16,6 +16,7 @@ <%= wikitoolbar_for 'project_description' %> + <% @project.custom_field_values.each do |value| %>

<%= custom_field_tag_with_label :project, value %>

<% end %> diff --git a/app/views/projects/_project.html.erb b/app/views/projects/_project.html.erb index 0eb9a4853..0a1384353 100644 --- a/app/views/projects/_project.html.erb +++ b/app/views/projects/_project.html.erb @@ -19,7 +19,7 @@ <%= content_tag('span', "#{(@project.repository.nil? || @project.repository.changesets[0].nil?) ? '0' : distance_of_time_in_words(Time.now, @project.repository.changesets[0].committed_on)}", :class => "info") %><%= content_tag('span', l(:label_since_last_commits)) %>

- <%= content_tag('span', "#{@project.repository.nil? ? '0' : @project.repository.changesets.count }", :class => "info") %><%= content_tag('span', l(:label_commit_on)) %> + <%= content_tag('span', "#{@project.repository.nil? ? '0' : @project.project_status.changesets_count }", :class => "info") %><%= content_tag('span', l(:label_commit_on)) %>

@@ -28,7 +28,7 @@ <%= content_tag('span', "#{l(:default_role_manager)}: ") %> <% @admin = @project.project_infos%> <% if @admin.size > 0 %> - <%= content_tag('a', @admin.collect{|u| link_to(u.user.name, user_path(u.user_id))}.join(", ").html_safe) %> + <%= content_tag('a', @admin.collect{|u| link_to(u.user.name, user_path(u.user_id))}.join(", ").html_safe) %> <% end %>
diff --git a/config/database.yml b/config/database.yml index 570ee7963..8b832ecf4 100644 --- a/config/database.yml +++ b/config/database.yml @@ -15,12 +15,12 @@ production: development: adapter: mysql2 - database: bitnami_redmine - host: 10.0.47.245 + database: redmine + host: 10.0.47.98 #socket: /home/pdl/redmine-2.3.1-2/mysql/tmp/mysql.sock port: 3306 username: root - password: "bitnami" + password: "1234" encoding: utf8 # Warning: The database defined as "test" will be erased and diff --git a/db/migrate/20130828004955_stored_status_procedure.rb b/db/migrate/20130828004955_stored_status_procedure.rb index 91b37ecd2..29a752765 100644 --- a/db/migrate/20130828004955_stored_status_procedure.rb +++ b/db/migrate/20130828004955_stored_status_procedure.rb @@ -34,7 +34,7 @@ begin declare v_uid bigint(22); declare v int(10); declare _done TINYINT(1) default 0; - declare cur_user cursor for select project_id,count(*) from (select project_id,repositories.id from repositories inner join changesets where repositories.id = changesets.repository_id)t group by project_id; + declare cur_user cursor for select project_id,count(*) from (select project_id,repositories.id from repositories inner join changesets where repositories.id = changesets.repository_id and project_id in (SELECT `projects`.id FROM `projects` WHERE (((projects.status <> 9) AND (projects.is_public = 1)))))t group by project_id; declare continue handler for not found set _done = 1; open cur_user; loop_xxx:loop diff --git a/db/schema.rb b/db/schema.rb index 02014643a..e2b5ecc37 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -11,15 +11,7 @@ # # It's strongly recommended to check this file into your version control system. -ActiveRecord::Schema.define(:version => 20130911140205) 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 +ActiveRecord::Schema.define(:version => 20130828080407) do create_table "activities", :force => true do |t| t.integer "act_id", :null => false @@ -77,7 +69,6 @@ ActiveRecord::Schema.define(:version => 20130911140205) do t.string "description" t.datetime "created_at", :null => false t.datetime "updated_at", :null => false - t.integer "reward" end create_table "bids", :force => true do |t| @@ -162,18 +153,6 @@ ActiveRecord::Schema.define(:version => 20130911140205) do add_index "comments", ["author_id"], :name => "index_comments_on_author_id" add_index "comments", ["commented_id", "commented_type"], :name => "index_comments_on_commented_id_and_commented_type" - create_table "courses", :force => true do |t| - t.integer "tea_id" - t.string "name" - t.integer "state" - t.string "code" - t.integer "time" - t.string "extra" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - t.string "location" - end - create_table "custom_fields", :force => true do |t| t.string "type", :limit => 30, :default => "", :null => false t.string "name", :limit => 30, :default => "", :null => false @@ -259,11 +238,6 @@ ActiveRecord::Schema.define(:version => 20130911140205) do add_index "groups_users", ["group_id", "user_id"], :name => "groups_users_ids", :unique => true - create_table "homework_for_courses", :force => true do |t| - t.integer "project_id" - t.integer "bid_id" - end - create_table "issue_categories", :force => true do |t| t.integer "project_id", :default => 0, :null => false t.string "name", :limit => 30, :default => "", :null => false @@ -274,9 +248,9 @@ ActiveRecord::Schema.define(:version => 20130911140205) 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 @@ -418,22 +392,6 @@ ActiveRecord::Schema.define(:version => 20130911140205) 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 @@ -494,18 +452,6 @@ ActiveRecord::Schema.define(:version => 20130911140205) do t.integer "project_id" 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 - create_table "projects", :force => true do |t| t.string "name", :default => "", :null => false t.text "description" @@ -519,7 +465,6 @@ ActiveRecord::Schema.define(:version => 20130911140205) do t.integer "lft" t.integer "rgt" t.boolean "inherit_members", :default => false, :null => false - t.integer "project_type" end add_index "projects", ["lft"], :name => "index_projects_on_lft" @@ -573,6 +518,26 @@ ActiveRecord::Schema.define(:version => 20130911140205) 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" @@ -583,27 +548,13 @@ ActiveRecord::Schema.define(:version => 20130911140205) do create_table "shares", :force => true do |t| t.date "created_on" - t.string "title" - t.string "share_type" t.string "url" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - t.integer "project_id" - t.integer "user_id" - 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" + t.string "title" + t.integer "share_type" t.datetime "created_at", :null => false t.datetime "updated_at", :null => false + t.integer "project_id" + t.integer "user_id" end create_table "taggings", :force => true do |t| @@ -623,16 +574,6 @@ ActiveRecord::Schema.define(:version => 20130911140205) do t.string "name" end - create_table "teachers", :force => true do |t| - t.string "tea_name" - t.string "location" - t.integer "couurse_time" - t.integer "course_code" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - t.string "extra" - end - create_table "time_entries", :force => true do |t| t.integer "project_id", :null => false t.integer "user_id", :null => false @@ -657,7 +598,7 @@ ActiveRecord::Schema.define(:version => 20130911140205) 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 @@ -683,7 +624,6 @@ ActiveRecord::Schema.define(:version => 20130911140205) do t.integer "zip_code" t.datetime "created_at", :null => false t.datetime "updated_at", :null => false - t.integer "identity" end create_table "user_preferences", :force => true do |t| @@ -706,14 +646,6 @@ ActiveRecord::Schema.define(:version => 20130911140205) do add_index "user_statuses", ["changesets_count"], :name => "index_user_statuses_on_changesets_count" 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