diff --git a/project_acceptance/__manifest__.py b/project_acceptance/__manifest__.py index 9bb7459f..b188914a 100644 --- a/project_acceptance/__manifest__.py +++ b/project_acceptance/__manifest__.py @@ -9,7 +9,7 @@ 'description': """ """, 'depends': [ 'project', - # 'project_exception', + 'project_exception', ], 'data': [ 'data/mail_template_data.xml', diff --git a/project_acceptance/controllers/__init__.py b/project_acceptance/controllers/__init__.py index 8c3feb6f..9eee67ba 100644 --- a/project_acceptance/controllers/__init__.py +++ b/project_acceptance/controllers/__init__.py @@ -1 +1,2 @@ +from . import mail from . import portal diff --git a/project_acceptance/controllers/mail.py b/project_acceptance/controllers/mail.py new file mode 100644 index 00000000..226f8c00 --- /dev/null +++ b/project_acceptance/controllers/mail.py @@ -0,0 +1,16 @@ +from odoo import http +from odoo.http import request + +from odoo.addons.portal.controllers import mail + + +class PortalChatter(mail.PortalChatter): + + + @http.route() + def portal_chatter_post(self, res_model, res_id, message, attachment_ids='', attachment_tokens='', **kwargs): + if request.httprequest.method == 'POST': + task = request.env['project.task'].browse([res_id]) + task.task_acceptance = 'feedback' + return super(PortalChatter, self).portal_chatter_post(res_model, res_id, message, attachment_ids=attachment_ids, attachment_tokens=attachment_tokens, **kwargs) + \ No newline at end of file diff --git a/project_acceptance/controllers/portal.py b/project_acceptance/controllers/portal.py index f3f20791..ef5fdf15 100644 --- a/project_acceptance/controllers/portal.py +++ b/project_acceptance/controllers/portal.py @@ -1,26 +1,37 @@ -import binascii +# import binascii from odoo import fields, http, SUPERUSER_ID, _ -from odoo.exceptions import AccessError, MissingError, ValidationError +# from odoo.exceptions import AccessError, MissingError, ValidationError from odoo.http import request -from odoo.addons.portal.controllers.mail import _message_post_helper +# from odoo.addons.portal.controllers.mail import _message_post_helper from odoo.addons.portal.controllers import portal -from odoo.addons.portal.controllers.portal import pager as portal_pager, get_records_pager +# from odoo.addons.portal.controllers.portal import pager as portal_pager, get_records_pager class CustomerPortal(portal.CustomerPortal): - - @http.route(['/my/task//modaccept'], type='json', auth="public", website=True) - def portal_quote_accept(self, task_id, access_token=None, name=None, signature=None): - pass + @http.route('/my/task//accept', type='http', auth="user", website=True) + def portal_task_accept(self, task_id, access_token=None, **post): + if request.httprequest.method == 'POST': + task = request.env['project.task'].browse([task_id]) + task.task_acceptance = 'accept' - - @http.route(['/my/task//decline'], type='http', auth="public", methods=['POST'], website=True) - def decline(self, task_id, access_token=None, **post): - pass + @http.route(['/my/task//decline'], type='http', auth="user", website=True) + def portal_task_decline(self, task_id, access_token=None, **post): + if request.httprequest.method == 'POST': + task = request.env['project.task'].browse([task_id]) + task.task_acceptance = 'decline' + # @http.route(['/my/task//feedback'], type='http', auth="user", website=True) + # def portal_task_feedback(self, task_id, access_token=None, **post): + # if request.httprequest.method == 'POST': + # task = request.env['project.task'].browse([task_id]) + # task.task_acceptance = 'feedback' + # return request.redirect('/my/task/#discussion') + + + # @http.route(['/my/task/'], type='http', auth="public", website=True) # def portal_my_task(self, task_id, access_token=None, **kw): # try: diff --git a/project_acceptance/data/mail_template_data.xml b/project_acceptance/data/mail_template_data.xml index 95de9428..69f719b6 100644 --- a/project_acceptance/data/mail_template_data.xml +++ b/project_acceptance/data/mail_template_data.xml @@ -31,24 +31,15 @@ diff --git a/project_acceptance/security/project_acceptance_security.xml b/project_acceptance/security/project_acceptance_security.xml index 56971689..862bb564 100644 --- a/project_acceptance/security/project_acceptance_security.xml +++ b/project_acceptance/security/project_acceptance_security.xml @@ -1,15 +1,18 @@ - - - - [('', '', ), ('', '', )] - - - - - + + + Task Acceptance Exception Rule + Task Acceptance Exception Rule + 50 + project.task + + + + + + \ No newline at end of file diff --git a/project_acceptance/views/project_portal_templates.xml b/project_acceptance/views/project_portal_templates.xml index 9f8f0fa0..7de3aba6 100644 --- a/project_acceptance/views/project_portal_templates.xml +++ b/project_acceptance/views/project_portal_templates.xml @@ -58,19 +58,28 @@ -->
-
- Accepted - - - +
+
+ + + +
- Declined - +
+ + + +
- - + Accepted - - + Declined - - + Feedback