User assignment for tasks
This commit is contained in:
@@ -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:
|
||||||
|
@@ -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 })
|
||||||
|
|
||||||
|
@@ -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
|
||||||
|
Reference in New Issue
Block a user