From 8470efbcf1144cd021eb7d98129259419bfa4bda Mon Sep 17 00:00:00 2001 From: Francesco Siddi Date: Wed, 21 Sep 2016 15:14:09 +0200 Subject: [PATCH] User assignment for tasks --- attract/task_manager.py | 2 +- attract/tasks.py | 9 ++++++++- src/templates/attract/tasks/view_task_embed.jade | 8 ++++++++ 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/attract/task_manager.py b/attract/task_manager.py index da2b389..f82adca 100644 --- a/attract/task_manager.py +++ b/attract/task_manager.py @@ -68,7 +68,7 @@ class TaskManager(object): task.description = fields.pop('description') task.properties.status = fields.pop('status') task.properties.task_type = fields.pop('task_type', '').strip() or None - + task.properties.assigned_to = {'users': fields.pop('users')} self._log.info('Saving task %s', task.to_dict()) if fields: diff --git a/attract/tasks.py b/attract/tasks.py index 0b83f1d..d40ab7c 100644 --- a/attract/tasks.py +++ b/attract/tasks.py @@ -43,6 +43,9 @@ def view_embed_task(project, attract_props, task_id): api = pillar_api() task = pillarsdk.Node.find(task_id, api=api) node_type = project.get_node_type(node_type_task['name']) + # Fetch project users so that we can assign them tasks + users = project.get_users(api=api) + project.users = users['_items'] log.info('Attract properties: %s', attract_props) @@ -59,7 +62,11 @@ def save(project, task_id): log.info('Saving task %s', task_id) log.debug('Form data: %s', request.form) - task = current_attract.task_manager.edit_task(task_id, **request.form.to_dict()) + assigned_to_users = request.form.getlist('users') + task_dict = request.form.to_dict() + task_dict['users'] = assigned_to_users + + task = current_attract.task_manager.edit_task(task_id, **task_dict) return flask.jsonify({'task_id': task_id, 'etag': task._etag, 'time': task._updated }) diff --git a/src/templates/attract/tasks/view_task_embed.jade b/src/templates/attract/tasks/view_task_embed.jade index 5195537..ed2050f 100644 --- a/src/templates/attract/tasks/view_task_embed.jade +++ b/src/templates/attract/tasks/view_task_embed.jade @@ -33,5 +33,13 @@ script(src="{{ url_for('static_attract', filename='js/tasks.js') }}",async=true) | | {% endfor %} + .input-transparent-group + select.input-transparent( + name="users", + multiple, + aria-describedby="task-addon-users") + | {% for u in project.users %} + | + | {% endfor %} .input-transparent-group button.btn.btn-default(type=submit) Save task