{"action":"created","comment":{"url":"https://api.github.com/repos/odoo/odoo/pulls/comments/41698235","id":41698235,"diff_hunk":"@@ -0,0 +1,83 @@\n+# -*- coding: utf-8 -*-\n+# Part of Odoo. See LICENSE file for full copyright and licensing details.\n+\n+from openerp import api, fields, models, _\n+\n+\n+class HrJob(models.Model):\n+\n+    _name = \"hr.job\"\n+    _description = \"Job Position\"\n+    _inherit = \"mail.thread\"\n+\n+    name = fields.Char(string='Job Name', required=True, index=True, translate=True)\n+    expected_employees = fields.Integer(compute='_compute_employees',\n+         string='Total Forecasted Employees', store=True,\n+         help='Expected number of employees for this job position after new recruitment.')\n+    no_of_employee = fields.Integer(compute='_compute_employees',\n+         string=\"Current Number of Employees\", store=True,\n+         help='Number of employees currently occupying this job position.')\n+    no_of_recruitment = fields.Integer(string='Expected New Employees', copy=False,\n+         help='Number of new employees you expect to recruit.', default=1)\n+    no_of_hired_employee = fields.Integer(string='Hired Employees', copy=False,\n+         help='Number of hired employees for this job position during recruitment phase.')\n+    employee_ids = fields.One2many('hr.employee', 'job_id', string='Employees',\n+        groups='base.group_user')\n+    description = fields.Text(string='Job Description')\n+    requirements = fields.Text()\n+    department_id = fields.Many2one('hr.department', string='Department')\n+    company_id = fields.Many2one('res.company', string='Company',\n+        default=lambda self: self.env.user.company_id)\n+    state = fields.Selection([\n+            ('recruit', 'Recruitment in Progress'),\n+            ('open', 'Recruitment Closed')\n+        ], string='Status', readonly=True, required=True, track_visibility='always', \n+        copy=False, default='recruit',\n+        help=\"Set whether the recruitment process is open or closed for this job position.\")\n+    write_date = fields.Datetime(string='Update Date', readonly=True)\n+\n+    _sql_constraints = [\n+        ('name_company_uniq', 'unique(name, company_id, department_id)',\n+        'The name of the job position must be unique per department in company!'),\n+    ]\n+\n+    @api.depends('no_of_recruitment', 'employee_ids.job_id')\n+    def _compute_employees(self):\n+        job_data = self.env['hr.employee'].read_group([('job_id', 'in', self.ids)], ['job_id'], ['job_id'])\n+        mapped_data = dict([(job['job_id'][0], job['job_id_count']) for job in job_data])\n+        for job in self:\n+            job.no_of_employee = mapped_data.get(job.id, 0)\n+            job.expected_employees = job.no_of_employee + job.no_of_recruitment\n+\n+    # TDE note: done in new api, because called with new api -> context is a\n+    # frozendict -> error when tryign to manipulate it\n+    @api.model\n+    def create(self, values):\n+        return super(HrJob, self.with_context(mail_create_nosubscribe=True)).create(values)\n+\n+    @api.one","path":"addons/hr/models/hr_job.py","position":58,"original_position":58,"commit_id":"8123cb7fc9f60940b7da7351c8247dfb3857b396","original_commit_id":"8123cb7fc9f60940b7da7351c8247dfb3857b396","user":{"login":"WHPODOO","id":14940179,"avatar_url":"https://avatars.githubusercontent.com/u/14940179?v=3","gravatar_id":"","url":"https://api.github.com/users/WHPODOO","html_url":"https://github.com/WHPODOO","followers_url":"https://api.github.com/users/WHPODOO/followers","following_url":"https://api.github.com/users/WHPODOO/following{/other_user}","gists_url":"https://api.github.com/users/WHPODOO/gists{/gist_id}","starred_url":"https://api.github.com/users/WHPODOO/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/WHPODOO/subscriptions","organizations_url":"https://api.github.com/users/WHPODOO/orgs","repos_url":"https://api.github.com/users/WHPODOO/repos","events_url":"https://api.github.com/users/WHPODOO/events{/privacy}","received_events_url":"https://api.github.com/users/WHPODOO/received_events","type":"User","site_admin":false},"body":"Dont use @api.one","created_at":"2015-10-10T15:33:58Z","updated_at":"2015-10-10T15:33:58Z","html_url":"https://github.com/odoo/odoo/pull/8499#discussion_r41698235","pull_request_url":"https://api.github.com/repos/odoo/odoo/pulls/8499","_links":{"self":{"href":"https://api.github.com/repos/odoo/odoo/pulls/comments/41698235"},"html":{"href":"https://github.com/odoo/odoo/pull/8499#discussion_r41698235"},"pull_request":{"href":"https://api.github.com/repos/odoo/odoo/pulls/8499"}}},"pull_request":{"url":"https://api.github.com/repos/odoo/odoo/pulls/8499","id":44765844,"html_url":"https://github.com/odoo/odoo/pull/8499","diff_url":"https://github.com/odoo/odoo/pull/8499.diff","patch_url":"https://github.com/odoo/odoo/pull/8499.patch","issue_url":"https://api.github.com/repos/odoo/odoo/issues/8499","number":8499,"state":"open","locked":false,"title":"[MIGRATE]HR: Migrated new api. ","user":{"login":"atp-odoo","id":7599410,"avatar_url":"https://avatars.githubusercontent.com/u/7599410?v=3","gravatar_id":"","url":"https://api.github.com/users/atp-odoo","html_url":"https://github.com/atp-odoo","followers_url":"https://api.github.com/users/atp-odoo/followers","following_url":"https://api.github.com/users/atp-odoo/following{/other_user}","gists_url":"https://api.github.com/users/atp-odoo/gists{/gist_id}","starred_url":"https://api.github.com/users/atp-odoo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/atp-odoo/subscriptions","organizations_url":"https://api.github.com/users/atp-odoo/orgs","repos_url":"https://api.github.com/users/atp-odoo/repos","events_url":"https://api.github.com/users/atp-odoo/events{/privacy}","received_events_url":"https://api.github.com/users/atp-odoo/received_events","type":"User","site_admin":false},"body":"Task: https://www.odoo.com/web?#id=12437&view_type=form&model=project.task&menu_id=3942&action=327\r\nPad: https://pad.odoo.com/p/r.ECFkv1NxYlPWI7gg","created_at":"2015-09-11T10:07:31Z","updated_at":"2015-10-10T15:33:58Z","closed_at":null,"merged_at":null,"merge_commit_sha":"cf23bb712991ffda7b4282581f0d93ff662d20eb","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/odoo/odoo/pulls/8499/commits","review_comments_url":"https://api.github.com/repos/odoo/odoo/pulls/8499/comments","review_comment_url":"https://api.github.com/repos/odoo/odoo/pulls/comments{/number}","comments_url":"https://api.github.com/repos/odoo/odoo/issues/8499/comments","statuses_url":"https://api.github.com/repos/odoo/odoo/statuses/8123cb7fc9f60940b7da7351c8247dfb3857b396","head":{"label":"odoo-dev:master-new-api-hr-rgo","ref":"master-new-api-hr-rgo","sha":"8123cb7fc9f60940b7da7351c8247dfb3857b396","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-09T20:37:12Z","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":1414498,"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-10T09:08:39Z","pushed_at":"2015-10-10T15:15:12Z","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":1555973,"stargazers_count":3222,"watchers_count":3222,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":2826,"mirror_url":null,"open_issues_count":2629,"forks":2826,"open_issues":2629,"watchers":3222,"default_branch":"9.0"}},"_links":{"self":{"href":"https://api.github.com/repos/odoo/odoo/pulls/8499"},"html":{"href":"https://github.com/odoo/odoo/pull/8499"},"issue":{"href":"https://api.github.com/repos/odoo/odoo/issues/8499"},"comments":{"href":"https://api.github.com/repos/odoo/odoo/issues/8499/comments"},"review_comments":{"href":"https://api.github.com/repos/odoo/odoo/pulls/8499/comments"},"review_comment":{"href":"https://api.github.com/repos/odoo/odoo/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/odoo/odoo/pulls/8499/commits"},"statuses":{"href":"https://api.github.com/repos/odoo/odoo/statuses/8123cb7fc9f60940b7da7351c8247dfb3857b396"}}}}