Merge branch 'develop' of https://git.trustie.net/jacknudt/trustieforge into develop

This commit is contained in:
daiao 2018-02-09 15:42:50 +08:00
commit 670f65d10c
6 changed files with 127 additions and 210 deletions

View File

@ -14,7 +14,7 @@ unless RUBY_PLATFORM =~ /w32/
gem 'nokogiri'
end
#gem 'simple_xlsx_reader'
gem 'simple_xlsx_reader'
gem 'wechat',path: 'lib/wechat'
gem 'grack', path:'lib/grack'
gem 'gitlab', path: 'lib/gitlab-cli'

View File

@ -1,3 +1,4 @@
# encoding=utf-8
class StatisticsController < ApplicationController
# GET /statistics
# GET /statistics.json
@ -71,7 +72,7 @@ class StatisticsController < ApplicationController
@statistic.save_attachments_containers(params[:attachments], User.current, true)
respond_to do |format|
if @statistic.save
format.html { redirect_to @statistic, notice: 'Statistic was successfully created.' }
format.html { redirect_to @statistic, notice: '创建成功' }
format.json { render json: @statistic, status: :created, location: @statistic }
else
format.html { render action: "new" }
@ -83,10 +84,19 @@ class StatisticsController < ApplicationController
# PUT /statistics/1
# PUT /statistics/1.json
def update
respond_to do |format|
if @statistic.update_attributes(params[:statistic])
@statistic.save_attachments_containers(params[:attachments], User.current, true)
format.html { redirect_to @statistic, notice: 'Statistic was successfully updated.' }
# @statistic.save_attachments_containers(params[:attachments], User.current, true)
params[:attachments].each_value do |attachment|
temp_attachment = Attachment.where(:id => attachment['attachment_id']).first
if temp_attachment.present? && temp_attachment.container_id.blank?
temp_attachment.update_attributes(:container_id => @statistic.id, :container_type => "Statistic")
end
end
# @issue.save_attachments(params[:attachments] || (params[:issue] && params[:issue][:uploads]))
format.html { redirect_to @statistic, notice: '更新成功' }
format.json { head :no_content }
else
format.html { render action: "edit" }
@ -125,11 +135,9 @@ class StatisticsController < ApplicationController
end
def find_statistic
if params[:id].present?
@statistic = Statistic.find(params[:id])
else
render_403
end
@statistic = Statistic.find(params[:id])
rescue ActiveRecord::RecordNotFound
render_404
end
def require_manager

View File

@ -22,9 +22,13 @@
<div class="data_info mt7 c_grey">
<span><%= statistic.creator.show_name %></span>
<span><%= statistic.main_category.name %></span>
<span><%= statistic.sub_category.try(:name) %></span>
<% if statistic.sub_category.present? %>
<span><%= statistic.sub_category.try(:name) %></span>
<% end %>
<% if statistic.size.present? %>
<span><%= statistic.size %>&nbsp;Bytes</span>
<% end %>
<span><%= format_time statistic.created_at %></span>
<span><%= statistic.size %>&nbsp;KB</span>
</div>
</div>
</div>

View File

@ -6,7 +6,8 @@
<label>数据类别名称:</label>
<%= @statistic.name %>
<% if User.current.id == @statistic.user_id || User.current.admin? %>
<%= link_to '编辑', edit_statistic_path(@statistic) ,:class => "submit_btn fr mr45" %>
<%= link_to '返回', statistics_path ,:class=>"grey_btn fr mr45 ml15", :style=>"padding:4px 10px" %>
<%= link_to '编辑', edit_statistic_path(@statistic) ,:class => "submit_btn fr" %>
<% end %>
</div>
@ -31,7 +32,6 @@
<% end %>
<div class="detail_part">
<label>&nbsp;</label>
<%= link_to '返回', statistics_path ,:class=>"grey_btn" %>
</div>
</div>
<script>

View File

@ -11,7 +11,7 @@
#
# It's strongly recommended to check this file into your version control system.
ActiveRecord::Schema.define(:version => 20180207065530) do
ActiveRecord::Schema.define(:version => 20180208073155) do
create_table "activities", :force => true do |t|
t.integer "act_id", :null => false
@ -90,11 +90,10 @@ ActiveRecord::Schema.define(:version => 20180207065530) do
t.integer "container_id"
t.string "container_type"
t.integer "dealer_id"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
t.integer "status", :limit => 1, :default => 0
t.text "apply_reason"
t.boolean "certification", :default => false
end
create_table "apply_add_departments", :force => true do |t|
@ -164,9 +163,8 @@ ActiveRecord::Schema.define(:version => 20180207065530) do
t.string "remarks"
t.integer "dealer"
t.datetime "deal_time"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
t.boolean "is_delete", :default => false
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
end
add_index "apply_user_authentications", ["user_id"], :name => "index_apply_user_authentications_on_user_id"
@ -987,9 +985,8 @@ ActiveRecord::Schema.define(:version => 20180207065530) do
create_table "departments", :force => true do |t|
t.string "name"
t.integer "school_id"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
t.boolean "is_auth", :default => false
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
end
add_index "departments", ["school_id"], :name => "index_departments_on_school_id"
@ -1017,7 +1014,6 @@ ActiveRecord::Schema.define(:version => 20180207065530) do
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
t.integer "challenge_id"
t.integer "reward"
end
add_index "discusses", ["user_id"], :name => "index_discusses_on_user_id"
@ -1086,22 +1082,6 @@ ActiveRecord::Schema.define(:version => 20180207065530) do
add_index "enumerations", ["id", "type"], :name => "index_enumerations_on_id_and_type"
add_index "enumerations", ["project_id"], :name => "index_enumerations_on_project_id"
create_table "evaluate_records", :force => true do |t|
t.integer "user_id"
t.integer "shixun_id"
t.integer "game_id"
t.integer "consume_time"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
t.float "file_update"
t.float "git_pull"
t.float "create_pod"
t.float "pod_execute"
t.float "student_work"
t.float "test_cases"
t.float "retry"
end
create_table "exercise_answers", :force => true do |t|
t.integer "user_id"
t.integer "exercise_question_id"
@ -1112,54 +1092,6 @@ ActiveRecord::Schema.define(:version => 20180207065530) do
t.integer "score", :default => -1
end
create_table "exercise_bank_choices", :force => true do |t|
t.integer "exercise_bank_question_id"
t.text "choice_text"
t.integer "choice_position"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
end
add_index "exercise_bank_choices", ["exercise_bank_question_id"], :name => "index_exercise_bank_choices_on_exercise_bank_question_id"
create_table "exercise_bank_questions", :force => true do |t|
t.text "question_title"
t.integer "question_type"
t.integer "question_number"
t.integer "question_score"
t.integer "exercise_bank_id"
t.integer "max_choices"
t.integer "min_choices"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
end
add_index "exercise_bank_questions", ["exercise_bank_id"], :name => "index_exercise_bank_questions_on_exercise_bank_id"
create_table "exercise_bank_standard_answers", :force => true do |t|
t.integer "exercise_bank_question_id"
t.integer "exercise_bank_choice_id"
t.text "answer_text"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
end
create_table "exercise_banks", :force => true do |t|
t.string "name"
t.text "description"
t.integer "user_id"
t.boolean "is_public"
t.integer "quotes"
t.integer "container_id"
t.string "container_type"
t.integer "course_list_id"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
end
add_index "exercise_banks", ["course_list_id"], :name => "index_exercise_banks_on_course_list_id"
add_index "exercise_banks", ["user_id"], :name => "index_exercise_banks_on_user_id"
create_table "exercise_choices", :force => true do |t|
t.integer "exercise_question_id"
t.text "choice_text"
@ -1207,17 +1139,13 @@ ActiveRecord::Schema.define(:version => 20180207065530) do
t.integer "exercise_status"
t.integer "user_id"
t.integer "time"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
t.datetime "publish_time"
t.datetime "end_time"
t.integer "show_result"
t.integer "question_random", :default => 0
t.integer "choice_random", :default => 0
t.boolean "is_public", :default => false
t.boolean "score_open", :default => true
t.boolean "answer_open", :default => true
t.integer "exercise_bank_id"
end
create_table "experiences", :force => true do |t|
@ -1307,7 +1235,6 @@ ActiveRecord::Schema.define(:version => 20180207065530) do
t.string "path"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
t.text "current_code", :limit => 2147483647
end
create_table "game_outputs", :force => true do |t|
@ -1322,27 +1249,19 @@ ActiveRecord::Schema.define(:version => 20180207065530) do
create_table "games", :force => true do |t|
t.integer "myshixun_id"
t.integer "user_id"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
t.integer "status", :default => 0
t.integer "final_score", :default => 0
t.integer "challenge_id"
t.datetime "open_time"
t.string "identifier"
t.boolean "answer_open", :default => false
t.boolean "answer_open"
t.datetime "end_time"
t.integer "retry_status", :default => 0
t.string "resubmit_identifier"
end
create_table "gitlab_urls", :force => true do |t|
t.integer "myshixun_id"
t.string "url"
t.string "myshixun_identifier"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
end
create_table "grades", :force => true do |t|
t.integer "user_id"
t.integer "container_id"
@ -1465,7 +1384,6 @@ ActiveRecord::Schema.define(:version => 20180207065530) do
t.boolean "allow_late", :default => true
t.datetime "late_time"
t.boolean "work_public", :default => true
t.text "explanation"
end
add_index "homework_commons", ["course_id", "id"], :name => "index_homework_commons_on_course_id_and_id"
@ -1501,11 +1419,10 @@ ActiveRecord::Schema.define(:version => 20180207065530) do
t.integer "no_anon_penalty", :default => 1
t.integer "appeal_penalty", :default => 0
t.integer "ta_mode", :default => 1
t.datetime "appeal_time"
t.float "te_proportion", :default => 1.0
t.boolean "final_mode", :default => false
t.datetime "appeal_time"
t.boolean "answer_open_evaluation", :default => false
t.boolean "shixun_evaluation", :default => false
end
create_table "homework_detail_programings", :force => true do |t|
@ -1569,19 +1486,6 @@ ActiveRecord::Schema.define(:version => 20180207065530) do
t.datetime "updated_at", :null => false
end
create_table "ii", :force => true do |t|
t.integer "project_id"
t.string "author_login"
t.string "rep_identifier"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
t.integer "sonar_version", :default => 0
t.string "path"
t.string "branch"
t.string "language"
t.string "sonar_name"
end
create_table "import_students", :force => true do |t|
t.string "name"
t.string "student_number"
@ -1808,6 +1712,7 @@ ActiveRecord::Schema.define(:version => 20180207065530) do
t.integer "course_id", :default => -1
t.integer "course_group_id", :default => 0
t.integer "is_collect", :default => 1
t.integer "import_student_id"
end
add_index "members", ["course_id"], :name => "index_members_on_course_id"
@ -1829,20 +1734,19 @@ ActiveRecord::Schema.define(:version => 20180207065530) do
add_index "memo_messages", ["user_id", "forum_id", "created_at"], :name => "index_memo_messages_on_user_id_and_forum_id_and_created_at"
create_table "memos", :force => true do |t|
t.integer "forum_id", :null => false
t.integer "forum_id", :null => false
t.integer "parent_id"
t.string "subject", :null => false
t.text "content", :limit => 2147483647, :null => false
t.integer "author_id", :null => false
t.integer "replies_count", :default => 0
t.string "subject", :null => false
t.text "content", :null => false
t.integer "author_id", :null => false
t.integer "replies_count", :default => 0
t.integer "last_reply_id"
t.boolean "lock", :default => false
t.boolean "sticky", :default => false
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
t.integer "viewed_count", :default => 0
t.boolean "lock", :default => false
t.boolean "sticky", :default => false
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
t.integer "viewed_count", :default => 0
t.integer "root_id"
t.integer "reward"
end
add_index "memos", ["root_id"], :name => "index_memos_on_root_id"
@ -1859,22 +1763,22 @@ ActiveRecord::Schema.define(:version => 20180207065530) do
add_index "message_alls", ["user_id", "message_id", "created_at"], :name => "index_message_alls_on_user_id_and_message_id_and_created_at"
create_table "messages", :force => true do |t|
t.integer "board_id", :null => false
t.integer "board_id", :null => false
t.integer "parent_id"
t.string "subject", :default => "", :null => false
t.text "content", :limit => 2147483647
t.string "subject", :default => "", :null => false
t.text "content"
t.integer "author_id"
t.integer "replies_count", :default => 0, :null => false
t.integer "replies_count", :default => 0, :null => false
t.integer "last_reply_id"
t.datetime "created_on", :null => false
t.datetime "updated_on", :null => false
t.boolean "locked", :default => false
t.integer "sticky", :default => 0
t.datetime "created_on", :null => false
t.datetime "updated_on", :null => false
t.boolean "locked", :default => false
t.integer "sticky", :default => 0
t.integer "reply_id"
t.integer "quotes"
t.integer "status", :default => 0
t.integer "status", :default => 0
t.integer "root_id"
t.integer "visits", :default => 0
t.integer "visits", :default => 0
end
add_index "messages", ["author_id"], :name => "index_messages_on_author_id"
@ -1932,21 +1836,6 @@ ActiveRecord::Schema.define(:version => 20180207065530) do
add_index "mirror_update_records", ["mirror_repository_id"], :name => "index_mirror_update_records_on_mirror_repository_id"
add_index "mirror_update_records", ["user_id"], :name => "index_mirror_update_records_on_user_id"
create_table "mul_tests", :force => true do |t|
t.integer "container_id"
t.string "container_type"
t.string "action"
t.integer "time"
t.integer "status", :default => 0
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
t.string "language"
t.integer "num"
t.string "indentifier"
t.string "name"
t.integer "shixun_id"
end
create_table "myshixun_members", :force => true do |t|
t.integer "myshixun_id"
t.integer "user_id"
@ -1963,18 +1852,13 @@ ActiveRecord::Schema.define(:version => 20180207065530) do
t.integer "user_id"
t.integer "gpid"
t.integer "visits", :default => 0
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
t.integer "status", :default => 0
t.string "identifier"
t.string "commit_id"
t.datetime "modify_time"
t.datetime "reset_time"
t.boolean "system_tip", :default => false
end
add_index "myshixuns", ["user_id", "shixun_id"], :name => "index_myshixuns_on_user_id_and_shixun_id", :unique => true
create_table "news", :force => true do |t|
t.integer "project_id"
t.string "title", :limit => 60, :default => "", :null => false
@ -2215,11 +2099,8 @@ ActiveRecord::Schema.define(:version => 20180207065530) do
create_table "poll_users", :force => true do |t|
t.integer "user_id"
t.integer "poll_id"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
t.integer "commit_status", :default => 0
t.datetime "start_at"
t.datetime "end_at"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
end
create_table "poll_votes", :force => true do |t|
@ -2234,20 +2115,24 @@ ActiveRecord::Schema.define(:version => 20180207065530) do
create_table "polls", :force => true do |t|
t.string "polls_name"
t.string "polls_type"
t.integer "course_id"
t.integer "polls_group_id"
t.integer "polls_status"
t.integer "user_id"
t.datetime "publish_time"
t.datetime "end_time"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
t.datetime "published_at"
t.datetime "closed_at"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
t.text "polls_description"
t.integer "show_result", :default => 1
t.integer "exercise_bank_id"
t.boolean "is_public", :default => false
end
add_index "polls", ["course_id"], :name => "index_polls_on_course_id"
create_table "pr_paths", :force => true do |t|
t.integer "project_id"
t.integer "gitlab_project_id"
t.string "path"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
end
create_table "praise_tread_caches", :force => true do |t|
t.integer "object_id", :null => false
@ -2409,18 +2294,6 @@ ActiveRecord::Schema.define(:version => 20180207065530) 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 "question_banks", :force => true do |t|
t.text "name"
t.integer "container_id"
t.string "container_type"
t.integer "quotes"
t.integer "user_id"
t.boolean "is_public"
t.integer "course_list_id"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
end
create_table "reference_materials", :force => true do |t|
t.string "book"
t.string "editor"
@ -2492,6 +2365,15 @@ ActiveRecord::Schema.define(:version => 20180207065530) do
add_index "repositories", ["project_id"], :name => "index_repositories_on_project_id"
create_table "repository_paths", :force => true do |t|
t.string "path"
t.integer "myshixun_id"
t.integer "user_id"
t.integer "status"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
end
create_table "resource_banks", :force => true do |t|
t.integer "course_id"
t.integer "attachment_id"
@ -2551,7 +2433,6 @@ ActiveRecord::Schema.define(:version => 20180207065530) do
t.string "city"
t.string "address"
t.boolean "auto_users_trial", :default => false
t.string "shool_code"
end
create_table "secdomains", :force => true do |t|
@ -2676,10 +2557,12 @@ ActiveRecord::Schema.define(:version => 20180207065530) do
t.integer "changeset_num"
t.integer "status", :default => 0
t.string "language"
t.boolean "authentication", :default => false
t.string "identifier"
t.boolean "authentication", :default => false
t.integer "myshixun_count", :default => 0
t.string "exec_path"
t.text "propaedeutics", :limit => 2147483647
t.integer "is_updated", :default => 0
t.boolean "webssh", :default => false
t.integer "trainee", :default => 1
t.integer "major_id"
@ -2687,9 +2570,6 @@ ActiveRecord::Schema.define(:version => 20180207065530) do
t.boolean "hidden", :default => false
t.integer "fork_from"
t.boolean "can_copy", :default => false
t.datetime "modify_time"
t.datetime "reset_time"
t.datetime "publish_time"
end
create_table "softapplications", :force => true do |t|
@ -2823,7 +2703,6 @@ ActiveRecord::Schema.define(:version => 20180207065530) do
t.text "late_reason"
t.integer "group_id", :default => 0
t.integer "myshixun_id"
t.datetime "update_time"
end
add_index "student_works", ["homework_common_id", "user_id"], :name => "index_student_works_on_homework_common_id_and_user_id"
@ -3025,19 +2904,15 @@ ActiveRecord::Schema.define(:version => 20180207065530) do
t.integer "position"
end
create_table "tidings", :force => true do |t|
create_table "tests", :force => true do |t|
t.integer "user_id"
t.integer "trigger_user_id"
t.integer "container_id"
t.string "container_type"
t.integer "parent_container_id"
t.string "parent_container_type"
t.integer "belong_container_id"
t.string "belong_container_type"
t.integer "status"
t.boolean "viewed"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
t.string "username"
t.integer "change_id"
t.string "pr_path"
t.integer "project_id"
t.integer "gpid"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
end
create_table "time_entries", :force => true do |t|
@ -3088,7 +2963,7 @@ ActiveRecord::Schema.define(:version => 20180207065530) do
t.datetime "updated_at", :null => false
t.integer "author_id"
t.integer "status", :limit => 1, :default => 0
t.integer "position", :limit => 1, :default => 0
t.integer "position", :limit => 1
t.integer "result", :default => 0
end
@ -3274,6 +3149,37 @@ ActiveRecord::Schema.define(:version => 20180207065530) do
t.integer "authentication_id"
end
create_table "users_copy", :force => true do |t|
t.string "login", :default => "", :null => false
t.string "hashed_password", :limit => 40, :default => "", :null => false
t.string "firstname", :limit => 30, :default => "", :null => false
t.string "lastname", :default => "", :null => false
t.string "mail", :limit => 60, :default => "", :null => false
t.boolean "admin", :default => false, :null => false
t.integer "status", :default => 1, :null => false
t.datetime "last_login_on"
t.string "language", :limit => 5, :default => ""
t.integer "auth_source_id"
t.datetime "created_on"
t.datetime "updated_on"
t.string "type"
t.string "identity_url"
t.string "mail_notification", :default => "", :null => false
t.string "salt", :limit => 64
t.integer "gid"
t.integer "visits", :default => 0
t.integer "excellent_teacher", :default => 0
t.integer "excellent_student", :default => 0
t.string "phone"
t.boolean "authentication", :default => false
t.integer "grade"
t.integer "experience", :default => 0
end
add_index "users_copy", ["auth_source_id"], :name => "index_users_on_auth_source_id"
add_index "users_copy", ["id", "type"], :name => "index_users_on_id_and_type"
add_index "users_copy", ["type"], :name => "index_users_on_type"
create_table "verification_codes", :force => true do |t|
t.string "code"
t.integer "code_type"

View File

@ -136,7 +136,6 @@ h4{ font-size:14px;}/*color:#3b3b3b;*/
.lh23{line-height: 23px;}
.p10{padding: 10px;}
.p5{padding: 5px;}
.wb100{width: 100%;}