mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2025-03-04 19:53:19 +08:00
Fix task visibility for current task widget
This commit is contained in:
parent
a09d6151cd
commit
eb4a783337
3 changed files with 27 additions and 7 deletions
|
@ -9,7 +9,10 @@ module Dashboard
|
|||
start_date = date.at_beginning_of_month.utc - 7.days
|
||||
end_date = date.at_end_of_month.utc + 14.days
|
||||
due_dates = current_user.my_modules.active.uncomplete
|
||||
.where('due_date > ? AND due_date < ?', start_date, end_date)
|
||||
.joins(experiment: :project)
|
||||
.where('experiments.archived': false)
|
||||
.where('projects.archived': false)
|
||||
.where('my_modules.due_date > ? AND my_modules.due_date < ?', start_date, end_date)
|
||||
.joins(:protocols).where('protocols.team_id = ?', current_team.id)
|
||||
.pluck(:due_date)
|
||||
render json: { events: due_dates.map { |i| { date: i } } }
|
||||
|
@ -18,6 +21,9 @@ module Dashboard
|
|||
def day
|
||||
date = DateTime.parse(params[:date]).utc
|
||||
my_modules = current_user.my_modules.active.uncomplete
|
||||
.joins(experiment: :project)
|
||||
.where('experiments.archived': false)
|
||||
.where('projects.archived': false)
|
||||
.where('DATE(my_modules.due_date) = DATE(?)', date)
|
||||
.where('projects.team_id = ?', current_team.id)
|
||||
.my_modules_list_partial
|
||||
|
|
|
@ -12,10 +12,15 @@ module Dashboard
|
|||
tasks = if @experiment
|
||||
@experiment.my_modules.active
|
||||
elsif @project
|
||||
MyModule.active.joins(:experiment).where('experiments.project_id': @project.id)
|
||||
MyModule.active.where('projects.id': @project.id)
|
||||
else
|
||||
MyModule.active.viewable_by_user(current_user, current_team)
|
||||
end
|
||||
|
||||
tasks = tasks.joins(experiment: :project)
|
||||
.where('experiments.archived': false)
|
||||
.where('projects.archived': false)
|
||||
|
||||
if task_filters[:mode] == 'assigned'
|
||||
tasks = tasks.left_outer_joins(:user_my_modules).where('user_my_modules.user_id': current_user.id)
|
||||
end
|
||||
|
@ -60,7 +65,11 @@ module Dashboard
|
|||
end
|
||||
|
||||
def project_filter
|
||||
projects = current_team.projects.search(current_user, false, params[:query], 1, current_team).select(:id, :name)
|
||||
projects = current_team.projects
|
||||
.where(archived: false)
|
||||
.viewable_by_user(current_user, current_team)
|
||||
.search_by_name(current_user, current_team, params[:query]).select(:id, :name)
|
||||
|
||||
unless params[:mode] == 'team'
|
||||
projects = projects.where(id: current_user.my_modules.joins(:experiment)
|
||||
.group(:project_id).select(:project_id).pluck(:project_id))
|
||||
|
@ -73,7 +82,11 @@ module Dashboard
|
|||
render json: []
|
||||
return false
|
||||
end
|
||||
experiments = @project.experiments.search(current_user, false, params[:query], 1, current_team).select(:id, :name)
|
||||
experiments = @project.experiments
|
||||
.where(archived: false)
|
||||
.viewable_by_user(current_user, current_team)
|
||||
.search_by_name(current_user, current_team, params[:query]).select(:id, :name)
|
||||
|
||||
unless params[:mode] == 'team'
|
||||
experiments = experiments.where(id: current_user.my_modules
|
||||
.group(:experiment_id).select(:experiment_id).pluck(:experiment_id))
|
||||
|
|
|
@ -81,13 +81,14 @@ class MyModule < ApplicationRecord
|
|||
scope :workflow_ordered, -> { order(workflow_order: :asc) }
|
||||
scope :uncomplete, -> { where(state: 'uncompleted') }
|
||||
scope :with_step_statistics, (lambda do
|
||||
joins(protocols: :steps)
|
||||
left_outer_joins(protocols: :steps)
|
||||
.group(:id)
|
||||
.select('my_modules.*')
|
||||
.select('COUNT(steps.id) AS steps_total')
|
||||
.select('COUNT(steps.id) FILTER (where steps.completed = true) AS steps_completed')
|
||||
.select('((COUNT(steps.id) FILTER (where steps.completed = true)) * 100 / COUNT(steps.id)) '\
|
||||
'AS steps_completed_percentage')
|
||||
.select('CASE COUNT(steps.id) WHEN 0 THEN 0 ELSE'\
|
||||
'((COUNT(steps.id) FILTER (where steps.completed = true)) * 100 / COUNT(steps.id)) '\
|
||||
'END AS steps_completed_percentage')
|
||||
end)
|
||||
|
||||
# A module takes this much space in canvas (x, y) in database
|
||||
|
|
Loading…
Reference in a new issue