mirror of
https://github.com/galaxyproject/galaxy.git
synced 2026-09-24 16:30:27 +08:00
Merge pull request #7014 from mvdbeek/fix_inability_to_remove_workflow_from_panel
[18.01] Fix display_in_tool_panel status for shared workflows
This commit is contained in:
@@ -3756,6 +3756,13 @@ class StoredWorkflow(HasTags, Dictifiable):
|
||||
self.latest_workflow_id = None
|
||||
self.workflows = []
|
||||
|
||||
def show_in_tool_panel(self, user_id):
|
||||
sa_session = object_session(self)
|
||||
return bool(sa_session.query(StoredWorkflowMenuEntry).filter(
|
||||
StoredWorkflowMenuEntry.stored_workflow_id == self.id,
|
||||
StoredWorkflowMenuEntry.user_id == user_id,
|
||||
).count())
|
||||
|
||||
def copy_tags_from(self, target_user, source_workflow):
|
||||
# Override to only copy owner tags.
|
||||
for src_swta in source_workflow.owner_tags:
|
||||
|
||||
@@ -137,11 +137,7 @@ class WorkflowsAPIController(BaseAPIController, UsesStoredWorkflowMixin, UsesAnn
|
||||
item['url'] = url_for('workflow', id=encoded_id)
|
||||
item['owner'] = wf.user.username
|
||||
item['number_of_steps'] = wf.latest_workflow.step_count
|
||||
item['show_in_tool_panel'] = False
|
||||
for x in user.stored_workflow_menu_entries:
|
||||
if x.stored_workflow_id == wf.id:
|
||||
item['show_in_tool_panel'] = True
|
||||
break
|
||||
item['show_in_tool_panel'] = wf.show_in_tool_panel(user_id=user.id)
|
||||
rval.append(item)
|
||||
for wf_sa in trans.sa_session.query(model.StoredWorkflowUserShareAssociation).join(
|
||||
model.StoredWorkflowUserShareAssociation.stored_workflow).options(
|
||||
@@ -156,11 +152,7 @@ class WorkflowsAPIController(BaseAPIController, UsesStoredWorkflowMixin, UsesAnn
|
||||
item['slug'] = wf_sa.stored_workflow.slug
|
||||
item['owner'] = wf_sa.stored_workflow.user.username
|
||||
item['number_of_steps'] = wf_sa.stored_workflow.latest_workflow.step_count
|
||||
item['show_in_tool_panel'] = False
|
||||
for x in user.stored_workflow_menu_entries:
|
||||
if x.stored_workflow_id == wf_sa.id:
|
||||
item['show_in_tool_panel'] = True
|
||||
break
|
||||
item['show_in_tool_panel'] = wf_sa.stored_workflow.show_in_tool_panel(user_id=user.id)
|
||||
rval.append(item)
|
||||
if missing_tools:
|
||||
workflows_missing_tools = []
|
||||
|
||||
Reference in New Issue
Block a user