Global task list

This commit is contained in:
Shalabh Aggarwal 2012-09-25 21:45:43 +05:30
parent 998377c006
commit d94f35fe81
2 changed files with 51 additions and 0 deletions

View File

@ -690,6 +690,51 @@ class Project(ModelSQL, ModelView):
state_filter=state, tasks=tasks
)
@login_required
def my_tasks(self):
"""
Renders all tasks of the user in all projects
"""
tag_task_obj = Pool().get('project.work-project.work.tag')
state = request.args.get('state', None)
page = request.args.get('page', 1, int)
filter_domain = [
('type', '=', 'task'),
('assigned_to', '=', request.nereid_user.id)
]
query = request.args.get('q', None)
if query:
# This search is probably the suckiest search in the
# history of mankind in terms of scalability and utility
# TODO: Figure out something better
filter_domain.append(('name', 'ilike', '%%%s%%' % query))
tag = request.args.get('tag', None, int)
if tag:
filter_domain.append(('tags', '=', tag))
counts = {}
counts['opened_tasks_count'] = self.search(
filter_domain + [('state', '=', 'opened')], count=True
)
counts['done_tasks_count'] = self.search(
filter_domain + [('state', '=', 'done')], count=True
)
counts['all_tasks_count'] = self.search(
filter_domain, count=True
)
if state and state in ('opened', 'done'):
filter_domain.append(('state', '=', state))
tasks = Pagination(self, filter_domain, page, 10)
return render_template(
'project/global-task-list.jinja',
active_type_name='render_task_list', counts=counts,
state_filter=state, tasks=tasks
)
@login_required
def render_task(self, task_id, project_id=None):
"""

View File

@ -25,6 +25,12 @@
<field name="methods">("POST",)</field>
<field name="url_map" ref="nereid.default_url_map" />
</record>
<record id="global_task_list" model="nereid.url_rule">
<field name="rule">/&lt;language&gt;/my-tasks</field>
<field name="endpoint">project.work.my_tasks</field>
<field name="sequence" eval="10" />
<field name="url_map" ref="nereid.default_url_map" />
</record>
<record id="project_task_list" model="nereid.url_rule">
<field name="rule">/&lt;language&gt;/project-&lt;int:project_id&gt;/task-list</field>
<field name="endpoint">project.work.render_task_list</field>