{"action":"created","comment":{"url":"https://api.github.com/repos/odoo/odoo/pulls/comments/41639639","id":41639639,"diff_hunk":"@@ -2,64 +2,60 @@\n \n import urlparse\n \n+from openerp import api, fields, models\n from openerp.http import request\n-from openerp.osv import fields, osv\n \n \n-class actions_server(osv.Model):\n+class ActionsServer(models.Model):\n     \"\"\" Add website option in server actions. \"\"\"\n     _name = 'ir.actions.server'\n     _inherit = ['ir.actions.server']\n \n-    def _compute_website_url(self, cr, uid, id, website_path, xml_id, context=None):\n-        base_url = self.pool['ir.config_parameter'].get_param(cr, uid, 'web.base.url', context=context)\n-        link = website_path or xml_id or (id and '%d' % id) or ''\n+    @api.multi\n+    def _compute_website_url(self):\n+        self.ensure_one()\n+        base_url = self.env['ir.config_parameter'].get_param('web.base.url')\n+        link = self.website_path or self.xml_id or (self.id and '%d' % self.id) or ''\n         if base_url and link:\n             path = '%s/%s' % ('/website/action', link)\n             return '%s' % urlparse.urljoin(base_url, path)\n         return ''\n \n-    def _get_website_url(self, cr, uid, ids, name, args, context=None):\n-        res = dict.fromkeys(ids, False)\n-        for action in self.browse(cr, uid, ids, context=context):\n+    @api.multi\n+    def _get_website_url(self):\n+        for action in self:\n             if action.state == 'code' and action.website_published:\n-                res[action.id] = self._compute_website_url(cr, uid, action.id, action.website_path, action.xml_id, context=context)\n-        return res\n-\n-    _columns = {\n-        'xml_id': fields.function(\n-            osv.osv.get_xml_id, type='char', string=\"External ID\",\n-            help=\"ID of the action if defined in a XML file\"),\n-        'website_path': fields.char('Website Path'),\n-        'website_url': fields.function(\n-            _get_website_url, type='char', string='Website URL',\n-            help='The full URL to access the server action through the website.'),\n-        'website_published': fields.boolean(\n-            'Available on the Website', copy=False,\n+                action.website_url = action._compute_website_url()\n+\n+    xml_id = fields.Char(compute=models.BaseModel.get_xml_id, string=\"External ID\",\n+            help=\"ID of the action if defined in a XML file\")\n+    website_path = fields.Char('Website Path')\n+    website_url = fields.Char(compute='_get_website_url', string='Website URL',\n+            help='The full URL to access the server action through the website.')\n+    website_published = fields.Boolean('Available on the Website', copy=False,\n             help='A code server action can be executed from the website, using a dedicated'\n                  'controller. The address is <base>/website/action/<website_path>.'\n                  'Set this field as True to allow users to run this action. If it'\n-                 'set to is False the action cannot be run through the website.'),\n-    }\n+                 'set to is False the action cannot be run through the website.')\n \n-    def on_change_website_path(self, cr, uid, ids, website_path, xml_id, context=None):\n-        values = {\n-            'website_url': self._compute_website_url(cr, uid, ids and ids[0] or None, website_path, xml_id, context=context)\n-        }\n-        return {'value': values}\n+    @api.onchange('website_path')\n+    def on_change_website_path(self):\n+        self.website_url = self._compute_website_url()","path":"addons/website/models/ir_actions.py","position":70,"original_position":70,"commit_id":"dd348d8d4a6976f036b26d8cc8a181709d61adba","original_commit_id":"dd348d8d4a6976f036b26d8cc8a181709d61adba","user":{"login":"rim-odoo","id":7300760,"avatar_url":"https://avatars.githubusercontent.com/u/7300760?v=3","gravatar_id":"","url":"https://api.github.com/users/rim-odoo","html_url":"https://github.com/rim-odoo","followers_url":"https://api.github.com/users/rim-odoo/followers","following_url":"https://api.github.com/users/rim-odoo/following{/other_user}","gists_url":"https://api.github.com/users/rim-odoo/gists{/gist_id}","starred_url":"https://api.github.com/users/rim-odoo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rim-odoo/subscriptions","organizations_url":"https://api.github.com/users/rim-odoo/orgs","repos_url":"https://api.github.com/users/rim-odoo/repos","events_url":"https://api.github.com/users/rim-odoo/events{/privacy}","received_events_url":"https://api.github.com/users/rim-odoo/received_events","type":"User","site_admin":false},"body":"not sure it is still needed with new computed fields","created_at":"2015-10-09T15:00:44Z","updated_at":"2015-10-09T15:00:44Z","html_url":"https://github.com/odoo/odoo/pull/8230#discussion_r41639639","pull_request_url":"https://api.github.com/repos/odoo/odoo/pulls/8230","_links":{"self":{"href":"https://api.github.com/repos/odoo/odoo/pulls/comments/41639639"},"html":{"href":"https://github.com/odoo/odoo/pull/8230#discussion_r41639639"},"pull_request":{"href":"https://api.github.com/repos/odoo/odoo/pulls/8230"}}},"pull_request":{"url":"https://api.github.com/repos/odoo/odoo/pulls/8230","id":43276732,"html_url":"https://github.com/odoo/odoo/pull/8230","diff_url":"https://github.com/odoo/odoo/pull/8230.diff","patch_url":"https://github.com/odoo/odoo/pull/8230.patch","issue_url":"https://api.github.com/repos/odoo/odoo/issues/8230","number":8230,"state":"open","locked":false,"title":"[website] new API migration","user":{"login":"mba-odoo","id":7599764,"avatar_url":"https://avatars.githubusercontent.com/u/7599764?v=3","gravatar_id":"","url":"https://api.github.com/users/mba-odoo","html_url":"https://github.com/mba-odoo","followers_url":"https://api.github.com/users/mba-odoo/followers","following_url":"https://api.github.com/users/mba-odoo/following{/other_user}","gists_url":"https://api.github.com/users/mba-odoo/gists{/gist_id}","starred_url":"https://api.github.com/users/mba-odoo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mba-odoo/subscriptions","organizations_url":"https://api.github.com/users/mba-odoo/orgs","repos_url":"https://api.github.com/users/mba-odoo/repos","events_url":"https://api.github.com/users/mba-odoo/events{/privacy}","received_events_url":"https://api.github.com/users/mba-odoo/received_events","type":"User","site_admin":false},"body":"Task: https://www.odoo.com/web#id=12131&view_type=form&model=project.task&menu_id=3942&action=327\r\nPad: https://pad.odoo.com/p/r.eLvFy2wnfbAiJdxS","created_at":"2015-08-25T11:56:17Z","updated_at":"2015-10-09T15:00:44Z","closed_at":null,"merged_at":null,"merge_commit_sha":"6b24cfd28311f82f640a07d7ef4618f06bd0ecdd","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/odoo/odoo/pulls/8230/commits","review_comments_url":"https://api.github.com/repos/odoo/odoo/pulls/8230/comments","review_comment_url":"https://api.github.com/repos/odoo/odoo/pulls/comments{/number}","comments_url":"https://api.github.com/repos/odoo/odoo/issues/8230/comments","statuses_url":"https://api.github.com/repos/odoo/odoo/statuses/dd348d8d4a6976f036b26d8cc8a181709d61adba","head":{"label":"odoo-dev:master-website-new-api-mba","ref":"master-website-new-api-mba","sha":"dd348d8d4a6976f036b26d8cc8a181709d61adba","user":{"login":"odoo-dev","id":7466976,"avatar_url":"https://avatars.githubusercontent.com/u/7466976?v=3","gravatar_id":"","url":"https://api.github.com/users/odoo-dev","html_url":"https://github.com/odoo-dev","followers_url":"https://api.github.com/users/odoo-dev/followers","following_url":"https://api.github.com/users/odoo-dev/following{/other_user}","gists_url":"https://api.github.com/users/odoo-dev/gists{/gist_id}","starred_url":"https://api.github.com/users/odoo-dev/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/odoo-dev/subscriptions","organizations_url":"https://api.github.com/users/odoo-dev/orgs","repos_url":"https://api.github.com/users/odoo-dev/repos","events_url":"https://api.github.com/users/odoo-dev/events{/privacy}","received_events_url":"https://api.github.com/users/odoo-dev/received_events","type":"Organization","site_admin":false},"repo":{"id":19853934,"name":"odoo","full_name":"odoo-dev/odoo","owner":{"login":"odoo-dev","id":7466976,"avatar_url":"https://avatars.githubusercontent.com/u/7466976?v=3","gravatar_id":"","url":"https://api.github.com/users/odoo-dev","html_url":"https://github.com/odoo-dev","followers_url":"https://api.github.com/users/odoo-dev/followers","following_url":"https://api.github.com/users/odoo-dev/following{/other_user}","gists_url":"https://api.github.com/users/odoo-dev/gists{/gist_id}","starred_url":"https://api.github.com/users/odoo-dev/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/odoo-dev/subscriptions","organizations_url":"https://api.github.com/users/odoo-dev/orgs","repos_url":"https://api.github.com/users/odoo-dev/repos","events_url":"https://api.github.com/users/odoo-dev/events{/privacy}","received_events_url":"https://api.github.com/users/odoo-dev/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/odoo-dev/odoo","description":"RD Dev Repository","fork":true,"url":"https://api.github.com/repos/odoo-dev/odoo","forks_url":"https://api.github.com/repos/odoo-dev/odoo/forks","keys_url":"https://api.github.com/repos/odoo-dev/odoo/keys{/key_id}","collaborators_url":"https://api.github.com/repos/odoo-dev/odoo/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/odoo-dev/odoo/teams","hooks_url":"https://api.github.com/repos/odoo-dev/odoo/hooks","issue_events_url":"https://api.github.com/repos/odoo-dev/odoo/issues/events{/number}","events_url":"https://api.github.com/repos/odoo-dev/odoo/events","assignees_url":"https://api.github.com/repos/odoo-dev/odoo/assignees{/user}","branches_url":"https://api.github.com/repos/odoo-dev/odoo/branches{/branch}","tags_url":"https://api.github.com/repos/odoo-dev/odoo/tags","blobs_url":"https://api.github.com/repos/odoo-dev/odoo/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/odoo-dev/odoo/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/odoo-dev/odoo/git/refs{/sha}","trees_url":"https://api.github.com/repos/odoo-dev/odoo/git/trees{/sha}","statuses_url":"https://api.github.com/repos/odoo-dev/odoo/statuses/{sha}","languages_url":"https://api.github.com/repos/odoo-dev/odoo/languages","stargazers_url":"https://api.github.com/repos/odoo-dev/odoo/stargazers","contributors_url":"https://api.github.com/repos/odoo-dev/odoo/contributors","subscribers_url":"https://api.github.com/repos/odoo-dev/odoo/subscribers","subscription_url":"https://api.github.com/repos/odoo-dev/odoo/subscription","commits_url":"https://api.github.com/repos/odoo-dev/odoo/commits{/sha}","git_commits_url":"https://api.github.com/repos/odoo-dev/odoo/git/commits{/sha}","comments_url":"https://api.github.com/repos/odoo-dev/odoo/comments{/number}","issue_comment_url":"https://api.github.com/repos/odoo-dev/odoo/issues/comments{/number}","contents_url":"https://api.github.com/repos/odoo-dev/odoo/contents/{+path}","compare_url":"https://api.github.com/repos/odoo-dev/odoo/compare/{base}...{head}","merges_url":"https://api.github.com/repos/odoo-dev/odoo/merges","archive_url":"https://api.github.com/repos/odoo-dev/odoo/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/odoo-dev/odoo/downloads","issues_url":"https://api.github.com/repos/odoo-dev/odoo/issues{/number}","pulls_url":"https://api.github.com/repos/odoo-dev/odoo/pulls{/number}","milestones_url":"https://api.github.com/repos/odoo-dev/odoo/milestones{/number}","notifications_url":"https://api.github.com/repos/odoo-dev/odoo/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/odoo-dev/odoo/labels{/name}","releases_url":"https://api.github.com/repos/odoo-dev/odoo/releases{/id}","created_at":"2014-05-16T11:16:19Z","updated_at":"2015-10-08T04:50:52Z","pushed_at":"2015-10-09T14:58:45Z","git_url":"git://github.com/odoo-dev/odoo.git","ssh_url":"git@github.com:odoo-dev/odoo.git","clone_url":"https://github.com/odoo-dev/odoo.git","svn_url":"https://github.com/odoo-dev/odoo","homepage":"https://www.odoo.com","size":1414424,"stargazers_count":62,"watchers_count":62,"language":null,"has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":24,"mirror_url":null,"open_issues_count":0,"forks":24,"open_issues":0,"watchers":62,"default_branch":"master"}},"base":{"label":"odoo:master","ref":"master","sha":"43edebc328e530ab1446f591e7ead1ac24f11719","user":{"login":"odoo","id":6368483,"avatar_url":"https://avatars.githubusercontent.com/u/6368483?v=3","gravatar_id":"","url":"https://api.github.com/users/odoo","html_url":"https://github.com/odoo","followers_url":"https://api.github.com/users/odoo/followers","following_url":"https://api.github.com/users/odoo/following{/other_user}","gists_url":"https://api.github.com/users/odoo/gists{/gist_id}","starred_url":"https://api.github.com/users/odoo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/odoo/subscriptions","organizations_url":"https://api.github.com/users/odoo/orgs","repos_url":"https://api.github.com/users/odoo/repos","events_url":"https://api.github.com/users/odoo/events{/privacy}","received_events_url":"https://api.github.com/users/odoo/received_events","type":"Organization","site_admin":false},"repo":{"id":19745004,"name":"odoo","full_name":"odoo/odoo","owner":{"login":"odoo","id":6368483,"avatar_url":"https://avatars.githubusercontent.com/u/6368483?v=3","gravatar_id":"","url":"https://api.github.com/users/odoo","html_url":"https://github.com/odoo","followers_url":"https://api.github.com/users/odoo/followers","following_url":"https://api.github.com/users/odoo/following{/other_user}","gists_url":"https://api.github.com/users/odoo/gists{/gist_id}","starred_url":"https://api.github.com/users/odoo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/odoo/subscriptions","organizations_url":"https://api.github.com/users/odoo/orgs","repos_url":"https://api.github.com/users/odoo/repos","events_url":"https://api.github.com/users/odoo/events{/privacy}","received_events_url":"https://api.github.com/users/odoo/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/odoo/odoo","description":"Odoo (formerly OpenERP). Open Source Apps To Grow Your Business.","fork":false,"url":"https://api.github.com/repos/odoo/odoo","forks_url":"https://api.github.com/repos/odoo/odoo/forks","keys_url":"https://api.github.com/repos/odoo/odoo/keys{/key_id}","collaborators_url":"https://api.github.com/repos/odoo/odoo/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/odoo/odoo/teams","hooks_url":"https://api.github.com/repos/odoo/odoo/hooks","issue_events_url":"https://api.github.com/repos/odoo/odoo/issues/events{/number}","events_url":"https://api.github.com/repos/odoo/odoo/events","assignees_url":"https://api.github.com/repos/odoo/odoo/assignees{/user}","branches_url":"https://api.github.com/repos/odoo/odoo/branches{/branch}","tags_url":"https://api.github.com/repos/odoo/odoo/tags","blobs_url":"https://api.github.com/repos/odoo/odoo/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/odoo/odoo/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/odoo/odoo/git/refs{/sha}","trees_url":"https://api.github.com/repos/odoo/odoo/git/trees{/sha}","statuses_url":"https://api.github.com/repos/odoo/odoo/statuses/{sha}","languages_url":"https://api.github.com/repos/odoo/odoo/languages","stargazers_url":"https://api.github.com/repos/odoo/odoo/stargazers","contributors_url":"https://api.github.com/repos/odoo/odoo/contributors","subscribers_url":"https://api.github.com/repos/odoo/odoo/subscribers","subscription_url":"https://api.github.com/repos/odoo/odoo/subscription","commits_url":"https://api.github.com/repos/odoo/odoo/commits{/sha}","git_commits_url":"https://api.github.com/repos/odoo/odoo/git/commits{/sha}","comments_url":"https://api.github.com/repos/odoo/odoo/comments{/number}","issue_comment_url":"https://api.github.com/repos/odoo/odoo/issues/comments{/number}","contents_url":"https://api.github.com/repos/odoo/odoo/contents/{+path}","compare_url":"https://api.github.com/repos/odoo/odoo/compare/{base}...{head}","merges_url":"https://api.github.com/repos/odoo/odoo/merges","archive_url":"https://api.github.com/repos/odoo/odoo/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/odoo/odoo/downloads","issues_url":"https://api.github.com/repos/odoo/odoo/issues{/number}","pulls_url":"https://api.github.com/repos/odoo/odoo/pulls{/number}","milestones_url":"https://api.github.com/repos/odoo/odoo/milestones{/number}","notifications_url":"https://api.github.com/repos/odoo/odoo/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/odoo/odoo/labels{/name}","releases_url":"https://api.github.com/repos/odoo/odoo/releases{/id}","created_at":"2014-05-13T15:38:58Z","updated_at":"2015-10-09T14:23:56Z","pushed_at":"2015-10-09T14:58:47Z","git_url":"git://github.com/odoo/odoo.git","ssh_url":"git@github.com:odoo/odoo.git","clone_url":"https://github.com/odoo/odoo.git","svn_url":"https://github.com/odoo/odoo","homepage":"https://www.odoo.com","size":1555786,"stargazers_count":3214,"watchers_count":3214,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":2819,"mirror_url":null,"open_issues_count":2617,"forks":2819,"open_issues":2617,"watchers":3214,"default_branch":"9.0"}},"_links":{"self":{"href":"https://api.github.com/repos/odoo/odoo/pulls/8230"},"html":{"href":"https://github.com/odoo/odoo/pull/8230"},"issue":{"href":"https://api.github.com/repos/odoo/odoo/issues/8230"},"comments":{"href":"https://api.github.com/repos/odoo/odoo/issues/8230/comments"},"review_comments":{"href":"https://api.github.com/repos/odoo/odoo/pulls/8230/comments"},"review_comment":{"href":"https://api.github.com/repos/odoo/odoo/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/odoo/odoo/pulls/8230/commits"},"statuses":{"href":"https://api.github.com/repos/odoo/odoo/statuses/dd348d8d4a6976f036b26d8cc8a181709d61adba"}}}}