openerp-community-reviewer team mailing list archive
-
openerp-community-reviewer team
-
Mailing list archive
-
Message #05640
[Merge] lp:~dreis-pt/project-service/7.0-project_issue_reassign-dr into lp:project-service
Daniel Reis has proposed merging lp:~dreis-pt/project-service/7.0-project_issue_reassign-dr into lp:project-service.
Requested reviews:
Project Core Editors (project-core-editors)
For more details, see:
https://code.launchpad.net/~dreis-pt/project-service/7.0-project_issue_reassign-dr/+merge/195275
Module to improve Issue reassignment to other Projects or Users.
--
https://code.launchpad.net/~dreis-pt/project-service/7.0-project_issue_reassign-dr/+merge/195275
Your team Project Core Editors is requested to review the proposed merge of lp:~dreis-pt/project-service/7.0-project_issue_reassign-dr into lp:project-service.
=== added directory 'project_issue_reassign'
=== added file 'project_issue_reassign/__init__.py'
--- project_issue_reassign/__init__.py 1970-01-01 00:00:00 +0000
+++ project_issue_reassign/__init__.py 2014-04-02 11:39:40 +0000
@@ -0,0 +1,3 @@
+# -*- coding: utf-8 -*-
+import project
+import wizard
=== added file 'project_issue_reassign/__openerp__.py'
--- project_issue_reassign/__openerp__.py 1970-01-01 00:00:00 +0000
+++ project_issue_reassign/__openerp__.py 2014-04-02 11:39:40 +0000
@@ -0,0 +1,54 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# Copyright (C) 2013 Daniel Reis
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+##############################################################################
+{
+ 'name': 'Reassign Project Issues',
+ 'summary': 'Reassign Issues to other Responsibles and Projects',
+ 'version': '1.1',
+ "category": "Project Management",
+ 'description': """\
+The Responsible (``user_id``) field is made read only, and can instead be
+changed through a wizard, accessible only to Project Users.
+
+Regular users (Employee group) will be able to see who is handling the request,
+but won't be able to change it.
+
+Project Users can click on the "=> Reassign" link, in front of the current
+responsible, to open a dialog where they can select the new responsible and/or
+new Project/Service Team it should be assigned to.
+
+Mass reassignments can also be made, through the context menu action on the
+Issues list view.
+
+Also adds notifications to followers when issue is reassigned / responsible
+is changed.
+""",
+ 'author': 'Daniel Reis',
+ 'website': '',
+ 'depends': [
+ 'project_issue',
+ ],
+ 'data': [
+ 'project_issue_data.xml',
+ 'wizard/project_issue_reassign_view.xml',
+ 'project_issue_view.xml',
+ ],
+ 'installable': True,
+}
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
=== added directory 'project_issue_reassign/i18n'
=== added file 'project_issue_reassign/i18n/project_issue_reassign.pot'
--- project_issue_reassign/i18n/project_issue_reassign.pot 1970-01-01 00:00:00 +0000
+++ project_issue_reassign/i18n/project_issue_reassign.pot 2014-04-02 11:39:40 +0000
@@ -0,0 +1,82 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * project_issue_reassign
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 7.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-04-02 10:56+0000\n"
+"PO-Revision-Date: 2014-04-02 10:56+0000\n"
+"Last-Translator: <>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: \n"
+
+#. module: project_issue_reassign
+#: view:project.issue.reassign:0
+msgid "or"
+msgstr ""
+
+#. module: project_issue_reassign
+#: code:addons/project_issue_reassign/wizard/project_issue_reassign.py:42
+#, python-format
+msgid "No active Issues found."
+msgstr ""
+
+#. module: project_issue_reassign
+#: model:ir.model,name:project_issue_reassign.model_project_issue
+msgid "Project Issue"
+msgstr ""
+
+#. module: project_issue_reassign
+#: model:ir.model,name:project_issue_reassign.model_project_issue_reassign
+msgid "Issue Reassign"
+msgstr ""
+
+#. module: project_issue_reassign
+#: view:project.issue.reassign:0
+msgid "_Reassign"
+msgstr ""
+
+#. module: project_issue_reassign
+#: model:ir.actions.act_window,name:project_issue_reassign.issue_reassign_wizard_action
+msgid "Reassign Issues"
+msgstr ""
+
+#. module: project_issue_reassign
+#: model:ir.actions.act_window,name:project_issue_reassign.action_project_issue_reassign
+#: view:project.issue.reassign:0
+msgid "Reassign Project Issue"
+msgstr ""
+
+#. module: project_issue_reassign
+#: code:addons/project_issue_reassign/project.py:30
+#, python-format
+msgid "No reassignment data was provided."
+msgstr ""
+
+#. module: project_issue_reassign
+#: model:mail.message.subtype,description:project_issue_reassign.mt_issue_reassign
+#: model:mail.message.subtype,description:project_issue_reassign.mt_project_issue_reassign
+msgid "Issue reassignment"
+msgstr ""
+
+#. module: project_issue_reassign
+#: view:project.issue:0
+msgid "⇒ Reassign"
+msgstr ""
+
+#. module: project_issue_reassign
+#: view:project.issue.reassign:0
+msgid "Cancel"
+msgstr ""
+
+#. module: project_issue_reassign
+#: model:mail.message.subtype,name:project_issue_reassign.mt_issue_reassign
+#: model:mail.message.subtype,name:project_issue_reassign.mt_project_issue_reassign
+msgid "Issue Reassignment"
+msgstr ""
+
=== added file 'project_issue_reassign/i18n/pt.po'
--- project_issue_reassign/i18n/pt.po 1970-01-01 00:00:00 +0000
+++ project_issue_reassign/i18n/pt.po 2014-04-02 11:39:40 +0000
@@ -0,0 +1,82 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * project_issue_reassign
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 7.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-04-02 10:56+0000\n"
+"PO-Revision-Date: 2014-04-02 10:56+0000\n"
+"Last-Translator: <>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: \n"
+
+#. module: project_issue_reassign
+#: view:project.issue.reassign:0
+msgid "or"
+msgstr "ou"
+
+#. module: project_issue_reassign
+#: code:addons/project_issue_reassign/wizard/project_issue_reassign.py:42
+#, python-format
+msgid "No active Issues found."
+msgstr "Não foram encontrados Incidentes ativos."
+
+#. module: project_issue_reassign
+#: model:ir.model,name:project_issue_reassign.model_project_issue
+msgid "Project Issue"
+msgstr "Incidente"
+
+#. module: project_issue_reassign
+#: model:ir.model,name:project_issue_reassign.model_project_issue_reassign
+msgid "Issue Reassign"
+msgstr "Reatribuir Incidente
+
+#. module: project_issue_reassign
+#: view:project.issue.reassign:0
+msgid "_Reassign"
+msgstr "_Reatribuir"
+
+#. module: project_issue_reassign
+#: model:ir.actions.act_window,name:project_issue_reassign.issue_reassign_wizard_action
+msgid "Reassign Issues"
+msgstr "Reatribuir Incidentes"
+
+#. module: project_issue_reassign
+#: model:ir.actions.act_window,name:project_issue_reassign.action_project_issue_reassign
+#: view:project.issue.reassign:0
+msgid "Reassign Project Issue"
+msgstr "Reatribuir Incidentes"
+
+#. module: project_issue_reassign
+#: code:addons/project_issue_reassign/project.py:30
+#, python-format
+msgid "No reassignment data was provided."
+msgstr "Faltam dados para a reatribuição."
+
+#. module: project_issue_reassign
+#: model:mail.message.subtype,description:project_issue_reassign.mt_issue_reassign
+#: model:mail.message.subtype,description:project_issue_reassign.mt_project_issue_reassign
+msgid "Issue reassignment"
+msgstr "Reatribuição do incidente"
+
+#. module: project_issue_reassign
+#: view:project.issue:0
+msgid "⇒ Reassign"
+msgstr "⇒ Reatribuir"
+
+#. module: project_issue_reassign
+#: view:project.issue.reassign:0
+msgid "Cancel"
+msgstr "Cancelar"
+
+#. module: project_issue_reassign
+#: model:mail.message.subtype,name:project_issue_reassign.mt_issue_reassign
+#: model:mail.message.subtype,name:project_issue_reassign.mt_project_issue_reassign
+msgid "Issue Reassignment"
+msgstr "Reatribuição Incidente"
+
=== added file 'project_issue_reassign/project.py'
--- project_issue_reassign/project.py 1970-01-01 00:00:00 +0000
+++ project_issue_reassign/project.py 2014-04-02 11:39:40 +0000
@@ -0,0 +1,48 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# Copyright (C) 2013 Daniel Reis
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+##############################################################################
+
+from openerp.osv import orm
+from openerp.tools.translate import _
+
+
+class ProjectIssue(orm.Model):
+ _inherit = 'project.issue'
+
+ def do_reassign(self, cr, uid, ids, user=None, proj=None, context=None):
+ """ Reassign an Issue to another User and/or Project """
+ assert user or proj, _("No reassignment data was provided.")
+ # Add tracking notifications to model
+ if 'user_id' not in self._track:
+ self._track['user_id'] = {
+ 'project_issue_reassign.mt_issue_reassign':
+ lambda self, cr, uid, obj, ctx: True,
+ }
+ if 'project_id' not in self._track:
+ self._track['project_id'] = {
+ 'project_issue_reassign.mt_issue_reassign':
+ lambda self, cr, uid, obj, ctx: True,
+ }
+ # write reassignment changes
+ reassign_data = {}
+ if user:
+ reassign_data['user_id'] = user
+ if proj:
+ reassign_data['project_id'] = proj
+ return self.write(cr, uid, ids, reassign_data, context=context)
=== added file 'project_issue_reassign/project_issue_data.xml'
--- project_issue_reassign/project_issue_data.xml 1970-01-01 00:00:00 +0000
+++ project_issue_reassign/project_issue_data.xml 2014-04-02 11:39:40 +0000
@@ -0,0 +1,24 @@
+<?xml version="1.0"?>
+<openerp>
+ <data noupdate="1">
+
+ <!-- Issue-related subtypes for messaging / Chatter
+ Active by default, to ensure assignments to people
+ outside the Project followers are notified -->
+ <record id="mt_issue_reassign" model="mail.message.subtype">
+ <field name="name">Issue Reassignment</field>
+ <field name="res_model">project.issue</field>
+ <field name="default" eval="True"/>
+ <field name="description">Issue reassignment</field>
+ </record>
+ <!-- Project-related subtypes for messaging / Chatter -->
+ <record id="mt_project_issue_reassign" model="mail.message.subtype">
+ <field name="name">Issue Reassigned</field>
+ <field name="res_model">project.project</field>
+ <field name="description">Issue reassigned</field>
+ <field name="parent_id" eval="ref('mt_issue_reassign')"/>
+ <field name="relation_field">project_id</field>
+ </record>
+
+ </data>
+</openerp>
=== added file 'project_issue_reassign/project_issue_view.xml'
--- project_issue_reassign/project_issue_view.xml 1970-01-01 00:00:00 +0000
+++ project_issue_reassign/project_issue_view.xml 2014-04-02 11:39:40 +0000
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="utf-8"?>
+<openerp>
+ <data>
+
+
+ <!-- Project Issue form -->
+ <record id="project_issue_form_view_reassign" model="ir.ui.view">
+ <field name="name">project_issue_form_view_reassign</field>
+ <field name="model">project.issue</field>
+ <field name="inherit_id" ref="project_issue.project_issue_form_view"/>
+ <field name="arch" type="xml">
+
+ <!-- Important: users than can access only followed issues must
+ be left as "Responsible" upon creation, to make sure they are
+ added to the followers. Otherwise they might get an
+ access denied error -->
+ <field name="user_id" position="replace">
+ <label for="user_id" groups="base.group_user"/>
+ <span>
+ <field name="user_id" class="oe_inline" readonly="1"
+ groups="base.group_user"/>
+ <button name="%(action_project_issue_reassign)d"
+ string="⇒ Reassign" type="action" class="oe_link"
+ groups="project.group_project_user" states="draft,open,pending"/>
+ </span>
+ </field>
+
+ </field>
+ </record>
+
+
+ </data>
+</openerp>
=== added directory 'project_issue_reassign/wizard'
=== added file 'project_issue_reassign/wizard/__init__.py'
--- project_issue_reassign/wizard/__init__.py 1970-01-01 00:00:00 +0000
+++ project_issue_reassign/wizard/__init__.py 2014-04-02 11:39:40 +0000
@@ -0,0 +1,2 @@
+# -*- coding: utf-8 -*-
+import project_issue_reassign
=== added file 'project_issue_reassign/wizard/project_issue_reassign.py'
--- project_issue_reassign/wizard/project_issue_reassign.py 1970-01-01 00:00:00 +0000
+++ project_issue_reassign/wizard/project_issue_reassign.py 2014-04-02 11:39:40 +0000
@@ -0,0 +1,48 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# Copyright (C) 2013 Daniel Reis
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+##############################################################################
+
+from openerp.osv import fields, osv
+from openerp.tools.translate import _
+
+
+class project_issue_reassign(osv.TransientModel):
+ _name = 'project.issue.reassign'
+ _description = 'Issue Reassign'
+
+ _columns = {
+ 'project_id': fields.many2one(
+ 'project.project', 'Project',
+ help="Project this issue should belong to"),
+ 'user_id': fields.many2one(
+ 'res.users', 'Assign To',
+ help="User you want to assign this issue to"),
+ }
+
+ def reassign(self, cr, uid, ids, context=None):
+ if context is None:
+ context = {}
+ issue_ids = context.get('active_ids') or [context.get('active_id')]
+ assert issue_ids, _("No active Issues found.")
+ assign_to = self.browse(cr, uid, ids, context=context)[0]
+ return self.pool.get('project.issue').do_reassign(
+ cr, uid, issue_ids,
+ assign_to.user_id and assign_to.user_id.id or None,
+ assign_to.project_id and assign_to.project_id.id or None,
+ context=context)
=== added file 'project_issue_reassign/wizard/project_issue_reassign_view.xml'
--- project_issue_reassign/wizard/project_issue_reassign_view.xml 1970-01-01 00:00:00 +0000
+++ project_issue_reassign/wizard/project_issue_reassign_view.xml 2014-04-02 11:39:40 +0000
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="utf-8"?>
+<openerp>
+ <data>
+
+ <record id="view_project_issue_reassign" model="ir.ui.view">
+ <field name="name">Reassign Project Issue</field>
+ <field name="model">project.issue.reassign</field>
+ <field name="arch" type="xml">
+
+ <form string="Reassign Project Issue" version="7.0">
+ <group>
+ <field name="user_id"/>
+ <field name="project_id"/>
+ </group>
+ <footer>
+ <button name="reassign" string="_Reassign" type="object" class="oe_highlight"/>
+ or
+ <button string="Cancel" class="oe_link" special="cancel"/>
+ </footer>
+ </form>
+
+ </field>
+ </record>
+
+ <!-- action to call from Issue form button -->
+ <record id="action_project_issue_reassign" model="ir.actions.act_window">
+ <field name="name">Reassign Project Issue</field>
+ <field name="type">ir.actions.act_window</field>
+ <field name="res_model">project.issue.reassign</field>
+ <field name="view_type">form</field>
+ <field name="view_mode">form</field>
+ <field name="view_id" ref="view_project_issue_reassign"/>
+ <field name="target">new</field>
+ </record>
+
+ <!-- wizard action on Issue context menu -->
+ <act_window id="issue_reassign_wizard_action"
+ name="Reassign Issues"
+ src_model="project.issue"
+ res_model="project.issue.reassign"
+ view_type="form" view_mode="form"
+ key2="client_action_multi" target="new"
+ groups="project.group_project_user"/>
+
+ </data>
+</openerp>
Follow ups