summaryrefslogtreecommitdiff
path: root/addons/website_project_issue/controllers/main.py
diff options
context:
space:
mode:
Diffstat (limited to 'addons/website_project_issue/controllers/main.py')
-rw-r--r--addons/website_project_issue/controllers/main.py41
1 files changed, 35 insertions, 6 deletions
diff --git a/addons/website_project_issue/controllers/main.py b/addons/website_project_issue/controllers/main.py
index 98f06c0c281..64b006e2f42 100644
--- a/addons/website_project_issue/controllers/main.py
+++ b/addons/website_project_issue/controllers/main.py
@@ -6,17 +6,46 @@ from openerp.http import request
class WebsiteAccount(website_account):
- @http.route(['/my', '/my/home'], type='http', auth="user", website=True)
+
+ @http.route()
def account(self):
response = super(WebsiteAccount, self).account()
- user = request.env.user
- project_issues = request.env['project.issue'].search([])
- response.qcontext.update({'issues': project_issues})
+ issue_count = request.env['project.issue'].search_count([])
+ response.qcontext.update({'issue_count': issue_count})
return response
+ @http.route(['/my/issues', '/my/issues/page/<int:page>'], type='http', auth="user", website=True)
+ def portal_my_issues(self, page=1, date_begin=None, date_end=None, **kw):
+ values = self._prepare_portal_layout_values()
+ ProjectIssue = request.env['project.issue']
+ domain = []
+ # archive groups - Default Group By 'create_date'
+ archive_groups = self._get_archive_groups('project.issue', domain)
+ if date_begin and date_end:
+ domain += [('create_date', '>=', date_begin), ('create_date', '<', date_end)]
+ # pager
+ issue_count = ProjectIssue.search_count(domain)
+ pager = request.website.pager(
+ url="/my/issues",
+ url_args={'date_begin': date_begin, 'date_end': date_end},
+ total=issue_count,
+ page=page,
+ step=self._items_per_page
+ )
+ # content according to pager and archive selected
+ project_issues = ProjectIssue.search(domain, order="stage_id", limit=self._items_per_page, offset=pager['offset'])
+
+ values.update({
+ 'date': date_begin,
+ 'issues': project_issues,
+ 'page_name': 'issue',
+ 'archive_groups': archive_groups,
+ 'default_url': '/my/issues',
+ 'pager': pager
+ })
+ return request.website.render("website_project_issue.portal_my_issues", values)
-class WebsiteProjectIssue(http.Controller):
@http.route(['/my/issues/<int:issue_id>'], type='http', auth="user", website=True)
- def issues_followup(self, issue_id=None):
+ def issues_followup(self, issue_id=None, **kw):
issue = request.env['project.issue'].browse(issue_id)
return request.website.render("website_project_issue.issues_followup", {'issue': issue})