User assignment for tasks

This commit is contained in:
2016-09-21 15:14:09 +02:00
parent 4035d89ced
commit 8470efbcf1
3 changed files with 17 additions and 2 deletions

View File

@@ -68,7 +68,7 @@ class TaskManager(object):
task.description = fields.pop('description') task.description = fields.pop('description')
task.properties.status = fields.pop('status') task.properties.status = fields.pop('status')
task.properties.task_type = fields.pop('task_type', '').strip() or None 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()) self._log.info('Saving task %s', task.to_dict())
if fields: if fields:

View File

@@ -43,6 +43,9 @@ def view_embed_task(project, attract_props, task_id):
api = pillar_api() api = pillar_api()
task = pillarsdk.Node.find(task_id, api=api) task = pillarsdk.Node.find(task_id, api=api)
node_type = project.get_node_type(node_type_task['name']) 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) log.info('Attract properties: %s', attract_props)
@@ -59,7 +62,11 @@ def save(project, task_id):
log.info('Saving task %s', task_id) log.info('Saving task %s', task_id)
log.debug('Form data: %s', request.form) 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 }) return flask.jsonify({'task_id': task_id, 'etag': task._etag, 'time': task._updated })

View File

@@ -33,5 +33,13 @@ script(src="{{ url_for('static_attract', filename='js/tasks.js') }}",async=true)
| <option value="{{ status }}" {% if status == task.properties.status %}selected{% endif %}>{{ status|undertitle }}</option> | <option value="{{ status }}" {% if status == task.properties.status %}selected{% endif %}>{{ status|undertitle }}</option>
| {% endfor %} | {% endfor %}
.input-transparent-group
select.input-transparent(
name="users",
multiple,
aria-describedby="task-addon-users")
| {% for u in project.users %}
| <option value="{{ u._id }}">{{u.email}}</option>
| {% endfor %}
.input-transparent-group .input-transparent-group
button.btn.btn-default(type=submit) Save task button.btn.btn-default(type=submit) Save task