{"action":"created","comment":{"url":"https://api.github.com/repos/odoo/odoo/pulls/comments/24092334","id":24092334,"diff_hunk":"@@ -0,0 +1,342 @@\n+# -*- coding: utf-8 -*-\n+from openerp import models, fields, api, _, tools\n+from openerp.exceptions import Warning\n+\n+\n+class HrMaterialStage(models.Model):\n+\n+    \"\"\"Model for case stages. This models the main stages of a Maintenance Request management flow.\n+       Stages are for example used to display the kanban view of records.\n+    \"\"\"\n+\n+    _name = 'hr.material.stage'\n+    _description = 'Material Stage'\n+    _order = 'sequence asc'\n+\n+    name = fields.Char('Name', required=True, translate=True)\n+    sequence = fields.Integer('Sequence')\n+    fold = fields.Boolean('Folded in Kanban View')\n+\n+\n+class HrMaterialCategory(models.Model):\n+    _name = 'hr.material.category'\n+    _inherits = {\"mail.alias\": \"alias_id\"}\n+    _inherit = ['mail.thread']\n+    _description = 'Material Category'\n+\n+    @api.one\n+    def _compute_material_count(self):\n+        self.material_count = len(self.material_ids)\n+        self.fold = False if self.material_count else True\n+\n+    @api.one\n+    def _compute_maintenance_count(self):\n+        self.maintenance_count = len(self.maintenance_ids)\n+\n+    name = fields.Char('Category Name', required=True, translate=True)\n+    user_id = fields.Many2one('res.users', 'Responsible', track_visibility='onchange', default=lambda self: self.env.uid)\n+    color = fields.Integer('Color Index')\n+    note = fields.Text('Comments', translate=True)\n+    material_ids = fields.One2many('hr.material', 'category_id', string='Materials', copy=False)\n+    material_count = fields.Integer(compute='_compute_material_count', string=\"Material\")\n+    maintenance_ids = fields.One2many('hr.material.request', 'category_id', copy=False, domain=[('stage_id.fold', '=', False)])\n+    maintenance_count = fields.Integer(compute='_compute_maintenance_count', string=\"Maintenance\")\n+    alias_id = fields.Many2one(\n+        'mail.alias', 'Alias', ondelete=\"restrict\", required=True,\n+        help=\"Email alias for this material category. New emails will automatically \"\n+        \"create new maintenance request for this material category.\")\n+    fold = fields.Boolean(compute='_compute_material_count', string='Folded in Kanban View')\n+\n+    @api.model\n+    def create(self, vals):\n+        self = self.with_context(alias_model_name='hr.material.request', alias_parent_model_name=self._name)\n+        category_id = super(HrMaterialCategory, self).create(vals)\n+        category_id.alias_id.write({'alias_parent_thread_id': category_id.id, 'alias_defaults': {'category_id': category_id.id}})\n+        return category_id\n+\n+    @api.multi\n+    def unlink(self):\n+        alias_ids = []\n+        for category in self:\n+            if category.material_ids or category.maintenance_ids:\n+                raise Warning(_('You cannot delete a Material Category containing Material/Maintenance Request. You can either delete all the material/maintenance which belongs to in this category and then delete the material category.'))\n+            elif category.alias_id:\n+                alias_ids.append(category.alias_id)\n+        res = super(HrMaterialCategory, self).unlink()\n+        for alias_id in alias_ids:\n+            alias_id.unlink()\n+        return res\n+\n+\n+class HrMaterial(models.Model):\n+    _name = 'hr.material'\n+    _inherit = ['mail.thread']\n+    _description = 'Material'\n+    _rec_name = 'complete_name'\n+\n+    _track = {\n+        'employee_id': {\n+            'hr_material.mt_mat_assign': lambda self, cr, uid, obj, ctx = None: obj.employee_id,\n+        },\n+        'department_id': {\n+            'hr_material.mt_mat_assign': lambda self, cr, uid, obj, ctx = None: obj.department_id,\n+        },\n+    }\n+\n+    @api.one\n+    def _maintenance_count(self):\n+        self.maintenance_count = len(self.maintenance_ids)\n+\n+    @api.depends('name', 'serial_no')\n+    def _get_full_name(self):","path":"addons/hr_material/models/hr_material.py","position":91,"original_position":91,"commit_id":"0ce6128796e8b0566f6e2077663b115fb3c9b916","original_commit_id":"0ce6128796e8b0566f6e2077663b115fb3c9b916","user":{"login":"tde-banana-odoo","id":7501424,"avatar_url":"https://avatars.githubusercontent.com/u/7501424?v=3","gravatar_id":"","url":"https://api.github.com/users/tde-banana-odoo","html_url":"https://github.com/tde-banana-odoo","followers_url":"https://api.github.com/users/tde-banana-odoo/followers","following_url":"https://api.github.com/users/tde-banana-odoo/following{/other_user}","gists_url":"https://api.github.com/users/tde-banana-odoo/gists{/gist_id}","starred_url":"https://api.github.com/users/tde-banana-odoo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tde-banana-odoo/subscriptions","organizations_url":"https://api.github.com/users/tde-banana-odoo/orgs","repos_url":"https://api.github.com/users/tde-banana-odoo/repos","events_url":"https://api.github.com/users/tde-banana-odoo/events{/privacy}","received_events_url":"https://api.github.com/users/tde-banana-odoo/received_events","type":"User","site_admin":false},"body":"Should be a name_get, with a name_search probably.","created_at":"2015-02-04T15:48:22Z","updated_at":"2015-02-04T15:48:22Z","html_url":"https://github.com/odoo/odoo/pull/2187#discussion_r24092334","pull_request_url":"https://api.github.com/repos/odoo/odoo/pulls/2187","_links":{"self":{"href":"https://api.github.com/repos/odoo/odoo/pulls/comments/24092334"},"html":{"href":"https://github.com/odoo/odoo/pull/2187#discussion_r24092334"},"pull_request":{"href":"https://api.github.com/repos/odoo/odoo/pulls/2187"}}},"pull_request":{"url":"https://api.github.com/repos/odoo/odoo/pulls/2187","id":20741080,"html_url":"https://github.com/odoo/odoo/pull/2187","diff_url":"https://github.com/odoo/odoo/pull/2187.diff","patch_url":"https://github.com/odoo/odoo/pull/2187.patch","issue_url":"https://api.github.com/repos/odoo/odoo/issues/2187","number":2187,"state":"open","locked":false,"title":"[ADD]Hr material:added new module hr_material,which allows you to easily...","user":{"login":"tde-banana-odoo","id":7501424,"avatar_url":"https://avatars.githubusercontent.com/u/7501424?v=3","gravatar_id":"","url":"https://api.github.com/users/tde-banana-odoo","html_url":"https://github.com/tde-banana-odoo","followers_url":"https://api.github.com/users/tde-banana-odoo/followers","following_url":"https://api.github.com/users/tde-banana-odoo/following{/other_user}","gists_url":"https://api.github.com/users/tde-banana-odoo/gists{/gist_id}","starred_url":"https://api.github.com/users/tde-banana-odoo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tde-banana-odoo/subscriptions","organizations_url":"https://api.github.com/users/tde-banana-odoo/orgs","repos_url":"https://api.github.com/users/tde-banana-odoo/repos","events_url":"https://api.github.com/users/tde-banana-odoo/events{/privacy}","received_events_url":"https://api.github.com/users/tde-banana-odoo/received_events","type":"User","site_admin":false},"body":"... keep track of office materials.\r\n\r\n- Task: https://www.odoo.com/web#id=6897&view_type=form&model=project.task\r\n- Pad: https://pad.odoo.com/p/r.JyyLhFD93zvKcCbu","created_at":"2014-09-04T12:52:50Z","updated_at":"2015-02-04T15:48:22Z","closed_at":null,"merged_at":null,"merge_commit_sha":"26ee5d317e36a82ee951b37c65125fc34940c145","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/odoo/odoo/pulls/2187/commits","review_comments_url":"https://api.github.com/repos/odoo/odoo/pulls/2187/comments","review_comment_url":"https://api.github.com/repos/odoo/odoo/pulls/comments/{number}","comments_url":"https://api.github.com/repos/odoo/odoo/issues/2187/comments","statuses_url":"https://api.github.com/repos/odoo/odoo/statuses/0ce6128796e8b0566f6e2077663b115fb3c9b916","head":{"label":"odoo-dev:master-hr-track-material-dka","ref":"master-hr-track-material-dka","sha":"0ce6128796e8b0566f6e2077663b115fb3c9b916","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-01-15T06:11:53Z","pushed_at":"2015-02-04T15:48:23Z","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":1041132,"stargazers_count":38,"watchers_count":38,"language":"Python","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":17,"mirror_url":null,"open_issues_count":5,"forks":17,"open_issues":5,"watchers":38,"default_branch":"master"}},"base":{"label":"odoo:master","ref":"master","sha":"c260607569f38436dcc5e349d8745e1424fd49bc","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-02-04T15:43:16Z","pushed_at":"2015-02-04T15:42:42Z","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":1062040,"stargazers_count":1936,"watchers_count":1936,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1576,"mirror_url":null,"open_issues_count":1746,"forks":1576,"open_issues":1746,"watchers":1936,"default_branch":"8.0"}},"_links":{"self":{"href":"https://api.github.com/repos/odoo/odoo/pulls/2187"},"html":{"href":"https://github.com/odoo/odoo/pull/2187"},"issue":{"href":"https://api.github.com/repos/odoo/odoo/issues/2187"},"comments":{"href":"https://api.github.com/repos/odoo/odoo/issues/2187/comments"},"review_comments":{"href":"https://api.github.com/repos/odoo/odoo/pulls/2187/comments"},"review_comment":{"href":"https://api.github.com/repos/odoo/odoo/pulls/comments/{number}"},"commits":{"href":"https://api.github.com/repos/odoo/odoo/pulls/2187/commits"},"statuses":{"href":"https://api.github.com/repos/odoo/odoo/statuses/0ce6128796e8b0566f6e2077663b115fb3c9b916"}}}}