dev_forge
sylor_huang@126.com 5 years ago
parent 5dde9c693d
commit a5d2949f28

@ -13,6 +13,7 @@ gem 'uglifier', '>= 1.3.0'
gem 'turbolinks', '~> 5'
gem 'jbuilder', '~> 2.5'
gem 'groupdate', '~> 4.1.0'
gem 'chartkick'
gem 'grape-entity', '~> 0.7.1'
gem 'kaminari', '~> 1.1', '>= 1.1.1'

@ -16,3 +16,5 @@
//= require jquery3
//= require popper
//= require bootstrap-sprockets
//= require chartkick
//= require Chart.bundle

@ -1,7 +1,40 @@
class Admins::ProjectStatisticsController < Admins::BaseController
def index
projects = Project.all.project_statics_select
projects = Project.project_statics_select.all
by_time = params[:time]
project_type = params[:project_type]
is_private = params[:is_private]
project_category_id = params[:project_category_id]
project_language_id = params[:project_language_id]
license_id = params[:license_id]
projects = projects.where(project_type: project_type) if project_type.present?
projects = projects.where(is_private: is_private) if is_private.present?
projects = projects.where(project_category_id: project_category_id) if project_category_id.present?
projects = projects.where(project_language_id: project_language_id) if project_language_id.present?
projects = projects.where(license_id: license_id) if license_id.present?
if by_time.present?
case by_time.to_s
when "week"
projects = projects.group_by_week(:created_on).size
when "month"
projects = projects.group_by_month(:created_on).size
when "quarter"
projects = projects.group_by_month(:created_on).size
when "year"
projects = projects.group_by_year(:created_on).size
else
projects = projects.group_by_day(:created_on).size
end
end
@projects = projects
end
def visits_static
projects = Project.project_statics_select.all
by_time = params[:time]
project_type = params[:project_type]
is_private = params[:is_private]
@ -18,18 +51,20 @@ class Admins::ProjectStatisticsController < Admins::BaseController
if by_time.present?
case by_time.to_s
when "week"
projects = projects.group_by_week(:created_on, time_zone: "Beijing").count
projects = projects.group_by_week(:created_on).size
when "month"
projects = projects.group_by_month(:created_on, time_zone: "Beijing").count
projects = projects.group_by_month(:created_on).size
when "quarter"
projects = projects.group_by_month(:created_on, time_zone: "Beijing").count
projects = projects.group_by_month(:created_on).size
when "year"
projects = projects.group_by_year(:created_on, time_zone: "Beijing").count
projects = projects.group_by_year(:created_on).size
else
projects = projects.group_by_day(:created_on, time_zone: "Beijing").count
projects = projects.group_by_day(:created_on).size
end
end
@projects = projects
end
end

@ -163,7 +163,7 @@ class IssuesController < ApplicationController
closed_on: (params[:status_id].to_i == 5) ? Time.now : nil,
issue_classify: "issue",
branch_name: params[:branch_name].to_s,
author_id: params[:author_id] || current_user.id,
author_id: current_user.id,
project_id: @project.id
}
@issue = Issue.new(issue_params)
@ -173,6 +173,7 @@ class IssuesController < ApplicationController
attachment = Attachment.select(:id, :container_id, :container_type)&.find_by_id(id)
unless attachment.blank?
attachment.container = @issue
attachment.author_id = current_user.id
attachment.save
end
end
@ -241,6 +242,7 @@ class IssuesController < ApplicationController
attachment = Attachment.select(:id, :container_id, :container_type)&.find_by_id(id)
unless attachment.blank?
attachment.container = @issue
attachment.author_id = current_user.id
attachment.save
end
end

@ -30,7 +30,7 @@ class Project < ApplicationRecord
has_and_belongs_to_many :trackers, :order => "#{Tracker.table_name}.position"
after_save :check_project_members
scope :project_statics_select, -> {select(:id,:name, :is_public, :identifier, :status, :project_type, :hidden_repo, :user_id, :forked_count, :visits, :project_category_id, :project_language_id, :license_id, :ignore_id, :watchers_count, :created_on)}
scope :project_statics_select, -> {select(:id,:name, :is_public, :identifier, :status, :project_type, :user_id, :forked_count, :visits, :project_category_id, :project_language_id, :license_id, :ignore_id, :watchers_count, :created_on)}
# 创建者

@ -1 +1,2 @@
<%= @projects %>
<%= line_chart @projects %>

@ -19,7 +19,7 @@ module Educoderplus
#
# config.educoder = config_for(:configuration)
config.active_record.default_timezone = :local
config.active_record.default_timezone = :utc
config.time_zone = 'Beijing'
# I18n

@ -743,7 +743,11 @@ Rails.application.routes.draw do
namespace :admins do
get '/', to: 'dashboards#index'
resources :project_statistics
resources :project_statistics, only: [:index] do
collection do
get :visits_static
end
end
resources :major_informations, only: [:index]
resources :ec_templates, only: [:index, :destroy] do
collection do

Loading…
Cancel
Save