diff options
| author | Jeremy Kersten <jke@odoo.com> | 2017-01-11 18:36:33 +0100 |
|---|---|---|
| committer | Jeremy Kersten <jke@odoo.com> | 2017-02-24 08:51:26 +0100 |
| commit | 83bfdb0d212a99d808fa4d0dc9d3ebe3ce469a18 (patch) | |
| tree | b37440855ef18c062720cd561b8e9f3921938b09 /addons/website_project | |
| parent | d89210e1fdddaa985c86eb147c043d49b626cfa7 (diff) | |
[IMP] website_portal*, website_project*, website_quote, website_blog: add record pager in portal
+ fix re-use websitue_url in get_access_action
Diffstat (limited to 'addons/website_project')
| -rw-r--r-- | addons/website_project/controllers/main.py | 14 | ||||
| -rw-r--r-- | addons/website_project/models/project.py | 12 | ||||
| -rw-r--r-- | addons/website_project/views/project_templates.xml | 2 |
3 files changed, 23 insertions, 5 deletions
diff --git a/addons/website_project/controllers/main.py b/addons/website_project/controllers/main.py index cc6271ad4a8..ed82ff3d63f 100644 --- a/addons/website_project/controllers/main.py +++ b/addons/website_project/controllers/main.py @@ -6,7 +6,7 @@ from collections import OrderedDict from odoo import http, _ from odoo.http import request -from odoo.addons.website_portal.controllers.main import website_account +from odoo.addons.website_portal.controllers.main import website_account, get_records_pager class WebsiteAccount(website_account): @@ -51,6 +51,7 @@ class WebsiteAccount(website_account): # content according to pager and archive selected projects = Project.search(domain, order=order, limit=self._items_per_page, offset=pager['offset']) + request.session['my_projects_history'] = projects.ids[:100] values.update({ 'date': date_begin, @@ -67,7 +68,10 @@ class WebsiteAccount(website_account): @http.route(['/my/project/<model("project.project"):project>'], type='http', auth="user", website=True) def my_project(self, project=None, **kw): - return request.render("website_project.my_project", {'project': project}) + vals = {'project': project, } + history = request.session.get('my_projects_history', []) + vals.update(get_records_pager(history, project)) + return request.render("website_project.my_project", vals) @http.route(['/my/tasks', '/my/tasks/page/<int:page>'], type='http', auth="user", website=True) def my_tasks(self, page=1, date_begin=None, date_end=None, sortby=None, filterby=None, **kw): @@ -116,6 +120,7 @@ class WebsiteAccount(website_account): ) # content according to pager and archive selected tasks = request.env['project.task'].search(domain, order=order, limit=self._items_per_page, offset=pager['offset']) + request.session['my_tasks_history'] = tasks.ids[:100] values.update({ 'date': date_begin, @@ -135,4 +140,7 @@ class WebsiteAccount(website_account): @http.route(['/my/task/<model("project.task"):task>'], type='http', auth="user", website=True) def my_task(self, task=None, **kw): - return request.render("website_project.my_task", {'task': task, 'user': request.env.user}) + vals = {'task': task, 'user': request.env.user} + history = request.session.get('my_tasks_history', []) + vals.update(get_records_pager(history, task)) + return request.render("website_project.my_task", vals) diff --git a/addons/website_project/models/project.py b/addons/website_project/models/project.py index 450e9de178d..47c03e34540 100644 --- a/addons/website_project/models/project.py +++ b/addons/website_project/models/project.py @@ -1,7 +1,9 @@ # -*- coding: utf-8 -*- # Part of Odoo. See LICENSE file for full copyright and licensing details. -from odoo import api, exceptions, models +from odoo import api, exceptions, models, fields +from odoo.addons.website.models.website import slug + class Project(models.Model): _inherit = ['project.project'] @@ -38,6 +40,12 @@ class Project(models.Model): class Task(models.Model): _inherit = ['project.task'] + website_url = fields.Char('Website URL', compute='_compute_website_url', help='The full URL to access the document through the website.') + + def _compute_website_url(self): + for task in self: + task.website_url = '/my/task/%s' % task.id + @api.multi def get_access_action(self): """ Instead of the classic form view, redirect to website for portal users @@ -51,7 +59,7 @@ class Task(models.Model): else: return { 'type': 'ir.actions.act_url', - 'url': '/my/task/%s' % self.id, + 'url': self.website_url, 'target': 'self', 'res_id': self.id, } diff --git a/addons/website_project/views/project_templates.xml b/addons/website_project/views/project_templates.xml index 2052c80be50..a7e527d9f5a 100644 --- a/addons/website_project/views/project_templates.xml +++ b/addons/website_project/views/project_templates.xml @@ -103,6 +103,7 @@ <div class="row"> <div class="col-md-12"> <h4> + <t t-call='website_portal.record_pager'/> Project - <span t-field="project.name"/> </h4> </div> @@ -213,6 +214,7 @@ <div class="row"> <div class="col-md-12"> <h4> + <t t-call='website_portal.record_pager'/> Task - <span t-field="task.name"/> <span t-field="task.stage_id.name" class="pull-right label label-info" title="Current stage of this task"/> <a class="btn btn-info" t-att-href="'/web#return_label=Website&model=project.task&id=%s&view_type=form' % (task.id)" groups="project.group_project_user">Edit Task</a> |
