Merge pull request #2807 from aignatov-bio/ai-sci-status-migration

Add migration for task states [SCI-4962]
This commit is contained in:
Urban Rotnik 2020-08-28 13:05:17 +02:00 committed by GitHub
commit 2cc0422ba8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 38 additions and 19 deletions

View file

@ -3,7 +3,7 @@
var DasboardCurrentTasksWidget = (function() {
var sortFilter = '.curent-tasks-filters .sort-filter';
var viewFilter = '.curent-tasks-filters .view-filter';
var statusFilter = '.curent-tasks-filters .view-filter';
var projectFilter = '.curent-tasks-filters .project-filter';
var experimentFilter = '.curent-tasks-filters .experiment-filter';
@ -35,7 +35,7 @@ var DasboardCurrentTasksWidget = (function() {
params.project_id = dropdownSelector.getValues(projectFilter);
params.experiment_id = dropdownSelector.getValues(experimentFilter);
params.sort = dropdownSelector.getValues(sortFilter);
params.view = dropdownSelector.getValues(viewFilter);
params.statuses = dropdownSelector.getValues(statusFilter);
params.query = $('.current-tasks-widget .task-search-field').val();
params.mode = $('.current-tasks-navbar .active').data('mode');
return params;
@ -47,7 +47,6 @@ var DasboardCurrentTasksWidget = (function() {
return dropdownSelector.getValues(experimentFilter)
|| dropdownSelector.getValues(projectFilter)
|| $('.current-tasks-widget .task-search-field').val().length > 0
|| dropdownSelector.getValues(viewFilter) !== 'uncompleted';
}
function loadCurrentTasksList(newList) {
@ -56,7 +55,7 @@ var DasboardCurrentTasksWidget = (function() {
project_id: dropdownSelector.getValues(projectFilter),
experiment_id: dropdownSelector.getValues(experimentFilter),
sort: dropdownSelector.getValues(sortFilter),
view: dropdownSelector.getValues(viewFilter),
statuses: dropdownSelector.getValues(statusFilter),
query: $('.current-tasks-widget .task-search-field').val(),
mode: $('.current-tasks-navbar .active').data('mode')
};
@ -97,12 +96,9 @@ var DasboardCurrentTasksWidget = (function() {
disableSearch: true
});
dropdownSelector.init(viewFilter, {
noEmptyOption: true,
singleSelect: true,
closeOnSelect: true,
dropdownSelector.init(statusFilter, {
selectAppearance: 'simple',
disableSearch: true
optionClass: 'checkbox-icon'
});
dropdownSelector.init(projectFilter, {
@ -142,7 +138,7 @@ var DasboardCurrentTasksWidget = (function() {
e.stopPropagation();
e.preventDefault();
dropdownSelector.closeDropdown(sortFilter);
dropdownSelector.closeDropdown(viewFilter);
dropdownSelector.closeDropdown(statusFilter);
dropdownSelector.closeDropdown(projectFilter);
dropdownSelector.closeDropdown(experimentFilter);
});

View file

@ -434,7 +434,7 @@ var dropdownSelector = (function() {
// Select default value
if (!selectElement.data('ajax-url')) {
addSelectedOption(selectElement, dropdownContainer);
addSelectedOptions(selectElement, dropdownContainer);
}
// Enable simple mode for dropdown selector

View file

@ -25,7 +25,7 @@ module Dashboard
tasks = tasks.left_outer_joins(:user_my_modules).where(user_my_modules: { user_id: current_user.id })
end
tasks = filter_by_state(tasks)
tasks = tasks.where(my_module_status_id: task_filters[:statuses])
case task_filters[:sort]
when 'start_date'
@ -92,10 +92,6 @@ module Dashboard
private
def filter_by_state(tasks)
tasks.where(my_modules: { state: task_filters[:view] })
end
def prepare_due_date(task)
if task.due_date.present?
due_date_formatted = I18n.l(task.due_date, format: :full_date)
@ -113,7 +109,7 @@ module Dashboard
end
def task_filters
params.permit(:project_id, :experiment_id, :mode, :view, :sort, :query, :page)
params.permit(:project_id, :experiment_id, :mode, :sort, :query, :page, statuses: [])
end
def load_project

View file

@ -14,7 +14,11 @@ en:
due_date: "Due date"
atoz: "From A to Z"
ztoa: "From Z to A"
display: "Display"
display: "Display statuses"
statuses:
placeholder: "Select statuses"
all_selected: "All selected"
selected: "selected"
uncompleted_tasks: "Tasks in progress"
completed_tasks: "Tasks completed"
project: "Project"

View file

@ -0,0 +1,20 @@
# frozen_string_literal: true
class MigrateTaskStatus < ActiveRecord::Migration[6.0]
def up
MyModuleStatusFlow.ensure_default
in_progress_status = execute("SELECT id FROM my_module_statuses WHERE name = 'In progress' LIMIT 1").to_a[0]
completed_status = execute("SELECT id FROM my_module_statuses WHERE name = 'Completed' LIMIT 1").to_a[0]
if in_progress_status
execute("UPDATE my_modules
SET my_module_status_id = #{in_progress_status['id']} WHERE state = 0")
end
if completed_status
execute("UPDATE my_modules
SET my_module_status_id = #{completed_status['id']} WHERE state = 1")
end
end
end

View file

@ -7625,4 +7625,7 @@ INSERT INTO "schema_migrations" (version) VALUES
('20200622155632'),
('20200709142830'),
('20200713142353'),
('20200714082503');
('20200714082503'),
('20200826143431');