summaryrefslogtreecommitdiff
path: root/addons/website_project
diff options
context:
space:
mode:
authorJeremy Kersten <jke@odoo.com>2017-01-11 18:36:33 +0100
committerJeremy Kersten <jke@odoo.com>2017-02-24 08:51:26 +0100
commit83bfdb0d212a99d808fa4d0dc9d3ebe3ce469a18 (patch)
treeb37440855ef18c062720cd561b8e9f3921938b09 /addons/website_project
parentd89210e1fdddaa985c86eb147c043d49b626cfa7 (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.py14
-rw-r--r--addons/website_project/models/project.py12
-rw-r--r--addons/website_project/views/project_templates.xml2
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&amp;model=project.task&amp;id=%s&amp;view_type=form' % (task.id)" groups="project.group_project_user">Edit Task</a>