mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2025-03-05 04:03:45 +08:00
Merge pull request #2807 from aignatov-bio/ai-sci-status-migration
Add migration for task states [SCI-4962]
This commit is contained in:
commit
2cc0422ba8
6 changed files with 38 additions and 19 deletions
|
@ -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);
|
||||
});
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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"
|
||||
|
|
20
db/migrate/20200826143431_migrate_task_status.rb
Normal file
20
db/migrate/20200826143431_migrate_task_status.rb
Normal 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
|
|
@ -7625,4 +7625,7 @@ INSERT INTO "schema_migrations" (version) VALUES
|
|||
('20200622155632'),
|
||||
('20200709142830'),
|
||||
('20200713142353'),
|
||||
('20200714082503');
|
||||
('20200714082503'),
|
||||
('20200826143431');
|
||||
|
||||
|
||||
|
|
Loading…
Reference in a new issue