diff --git a/addons/project/views/project_views.xml b/addons/project/views/project_views.xml index 0ed16dcaf4bcef9d2c3986dd95b8645ed05073d2..0ba7c57f886b219a5406fa9accf495c8c0330bcc 100644 --- a/addons/project/views/project_views.xml +++ b/addons/project/views/project_views.xml @@ -179,8 +179,8 @@ </field> </record> - <record id="edit_project_simplified" model="ir.ui.view"> - <field name="name">project.project.form.popup</field> + <record id="project_project_view_form_simplified" model="ir.ui.view"> + <field name="name">project.project.view.form.simplified</field> <field name="model">project.project</field> <field name="arch" type="xml"> <form string="Project"> @@ -208,7 +208,7 @@ <field name="res_model">project.project</field> <field name="view_type">form</field> <field name="view_mode">form</field> - <field name="view_id" ref="edit_project_simplified"/> + <field name="view_id" ref="project_project_view_form_simplified"/> <field name="target">new</field> </record> diff --git a/addons/project_issue/__manifest__.py b/addons/project_issue/__manifest__.py index 999e91888edb0f0c6390aeb2ae509401645fe270..3552bfb77c1442fc8da7b5de2ce13b8184186fac 100644 --- a/addons/project_issue/__manifest__.py +++ b/addons/project_issue/__manifest__.py @@ -20,16 +20,13 @@ It allows the manager to quickly check the issues, assign them and decide on the ], 'data': [ 'data/mail_message_subtype_data.xml', - 'report/project_issue_report_view.xml', + 'report/project_issue_report_views.xml', 'security/project_issue_security.xml', 'security/ir.model.access.csv', - 'views/project_issue_view.xml', - 'views/project_issue_config_settings_views.xml', - 'views/account_analytic_account_view.xml', - 'views/project_project_view.xml', - 'views/res_partner_view.xml', - 'views/project_issue_menu.xml', - 'views/project_dashboard.xml', + 'views/project_issue_views.xml', + 'views/account_analytic_account_views.xml', + 'views/project_project_views.xml', + 'views/res_partner_views.xml', 'views/project_config_settings_views.xml', ], 'demo': ['data/project_issue_demo.xml'], diff --git a/addons/project_issue/models/project_issue.py b/addons/project_issue/models/project_issue.py index 64e027d6b356ff2de47411efdd2d66a46e0df117..f2d667a4a500ad014e40073679ed7f993f7e1854 100644 --- a/addons/project_issue/models/project_issue.py +++ b/addons/project_issue/models/project_issue.py @@ -41,7 +41,7 @@ class ProjectIssue(models.Model): date_closed = fields.Datetime(string='Closed', readonly=True, index=True) date = fields.Datetime('Date') date_last_stage_update = fields.Datetime(string='Last Stage Update', index=True, default=fields.Datetime.now) - channel = fields.Char(string='Channel', help="Communication channel.") + channel = fields.Char(string='Channel', help="Communication channel.") # TDE note: is it still used somewhere ? tag_ids = fields.Many2many('project.tags', string='Tags') priority = fields.Selection([('0', 'Low'), ('1', 'Normal'), ('2', 'High')], 'Priority', index=True, default='0') stage_id = fields.Many2one('project.task.type', string='Stage', track_visibility='onchange', index=True, diff --git a/addons/project_issue/report/project_issue_report.py b/addons/project_issue/report/project_issue_report.py index 2fd80ed6485311bbccc49e88f640ccb0b7182ea8..c81f5ccc23cba3afcff9c9e5268bec589c36c388 100644 --- a/addons/project_issue/report/project_issue_report.py +++ b/addons/project_issue/report/project_issue_report.py @@ -25,8 +25,6 @@ class ProjectIssueReport(models.Model): project_id = fields.Many2one('project.project', 'Project', readonly=True) user_id = fields.Many2one('res.users', 'Assigned to', readonly=True) partner_id = fields.Many2one('res.partner', 'Contact') - channel = fields.Char('Channel', readonly=True, help="Communication Channel.") - task_id = fields.Many2one('project.task', 'Task') email = fields.Integer('# Emails', readonly=True) @api.model_cr @@ -49,11 +47,9 @@ class ProjectIssueReport(models.Model): c.project_id as project_id, 1 as nbr_issues, c.partner_id, - c.channel, - c.task_id, c.day_open as delay_open, c.day_close as delay_close, - (SELECT count(id) FROM mail_message WHERE model='project.issue' AND res_id=c.id) AS email + (SELECT count(id) FROM mail_message WHERE model='project.issue' AND message_type IN ('email', 'comment') AND res_id=c.id) AS email FROM project_issue c diff --git a/addons/project_issue/report/project_issue_report_view.xml b/addons/project_issue/report/project_issue_report_views.xml similarity index 97% rename from addons/project_issue/report/project_issue_report_view.xml rename to addons/project_issue/report/project_issue_report_views.xml index 5f2d2260fdb20812201e33cf945bc2bf6c160720..e5aeefedfc49b393259656183fb56940c9789871 100644 --- a/addons/project_issue/report/project_issue_report_view.xml +++ b/addons/project_issue/report/project_issue_report_views.xml @@ -48,8 +48,6 @@ <field name="partner_id" filter_domain="[('partner_id', 'child_of', self)]"/> <field name="stage_id"/> <filter string="Unassigned" name="unassigned" domain="[('user_id','=',False)]"/> - <separator/> - <filter string="New" name="new" domain="[('stage_id.sequence', '<=', 1)]"/> <group expand="1" string="Group By"> <filter string="Assigned to" name="Responsible" context="{'group_by':'user_id'}" /> <filter string="Project" name="project" context="{'group_by':'project_id'}" /> diff --git a/addons/project_issue/views/account_analytic_account_view.xml b/addons/project_issue/views/account_analytic_account_views.xml similarity index 100% rename from addons/project_issue/views/account_analytic_account_view.xml rename to addons/project_issue/views/account_analytic_account_views.xml diff --git a/addons/project_issue/views/project_config_settings_views.xml b/addons/project_issue/views/project_config_settings_views.xml index 3880f7235b15a10d6ad7401da872c4ac63ef73cc..220707950d27cf0b5778fa35415f543153b38050 100644 --- a/addons/project_issue/views/project_config_settings_views.xml +++ b/addons/project_issue/views/project_config_settings_views.xml @@ -6,6 +6,12 @@ <field name="model">project.config.settings</field> <field name="inherit_id" ref="project.view_config_settings"/> <field name="arch" type="xml"> + <xpath expr="//group[@name='timesheets']" position="attributes"> + <attribute name="string">Timesheets</attribute> + </xpath> + <xpath expr="//group[@name='timesheets']" position="inside"> + <field name="module_project_issue_sheet" widget="radio"/> + </xpath> <xpath expr="//group[@name='timesheets']" position="after"> <group string="Helpdesk & Support"> <field name="module_rating_project_issue" widget="radio"/> diff --git a/addons/project_issue/views/project_dashboard.xml b/addons/project_issue/views/project_dashboard.xml deleted file mode 100644 index 0138a09f382dcb970ad4047adb32ce35b7fe80a4..0000000000000000000000000000000000000000 --- a/addons/project_issue/views/project_dashboard.xml +++ /dev/null @@ -1,31 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<odoo> - <record id="view_project_kanban_inherited" model="ir.ui.view"> - <field name="name">project.project.kanban.inherited</field> - <field name="model">project.project</field> - <field name="inherit_id" ref="project.view_project_kanban"/> - <field name="arch" type="xml"> - <field name="use_tasks" position="after"> - <field name="use_issues"/> - <field name="issue_ids" invisible="1"/> - <field name="issue_needaction_count" invisible="1"/> - </field> - <xpath expr="//div/a[contains(@class, 'o_project_kanban_box')]" position="after"> - <a t-if="record.use_issues.raw_value" class="o_project_kanban_box" name="%(act_project_project_2_project_issue_all)d" type="action"> - <span class="o_value"><t t-raw="record.issue_ids.raw_value.length"/></span> - <span class="o_label"><field name="label_issues"/></span> - <a t-if="record.issue_needaction_count.raw_value" class="o_needaction" name="%(act_project_project_2_project_issue_all)d" type="action" context="{'search_default_message_needaction': 1}"> - <t t-esc="record.issue_needaction_count.raw_value"/> - </a> - </a> - </xpath> - - <xpath expr="//div[contains(@class, 'o_kanban_manage_reports')]" position="inside"> - <div> - <a name="%(action_project_issue_report_filtered)d" type="action">Issues</a> - </div> - </xpath> - - </field> - </record> -</odoo> diff --git a/addons/project_issue/views/project_issue_config_settings_views.xml b/addons/project_issue/views/project_issue_config_settings_views.xml deleted file mode 100644 index 7555571ec8354fd05101c05e45fed46585bda42a..0000000000000000000000000000000000000000 --- a/addons/project_issue/views/project_issue_config_settings_views.xml +++ /dev/null @@ -1,18 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<odoo> - <data> - <record id="view_config_settings_form_inherit_project_issue" model="ir.ui.view"> - <field name="name">project issue settings</field> - <field name="model">project.config.settings</field> - <field name="inherit_id" ref="project.view_config_settings"/> - <field name="arch" type="xml"> - <xpath expr="//group[@name='timesheets']" position="attributes"> - <attribute name="string">Timesheets</attribute> - </xpath> - <xpath expr="//group[@name='timesheets']" position="inside"> - <field name="module_project_issue_sheet" widget="radio"/> - </xpath> - </field> - </record> - </data> -</odoo> diff --git a/addons/project_issue/views/project_issue_menu.xml b/addons/project_issue/views/project_issue_menu.xml deleted file mode 100644 index 675b5061af49a0ed46732ab4856466a8393ef279..0000000000000000000000000000000000000000 --- a/addons/project_issue/views/project_issue_menu.xml +++ /dev/null @@ -1,61 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<odoo> - <!-- - ALL BUGS - --> - <record id="project_issue_categ_act0" model="ir.actions.act_window"> - <field name="name">Issues</field> - <field name="res_model">project.issue</field> - <field name="view_type">form</field> - <field name="view_mode">kanban,tree,calendar,form,pivot,graph</field> - <field name="view_id" eval="False"/> - <field name="domain" eval=""/> - <field name="context">{'search_default_my_issues': 1}</field> - <field name="search_view_id" ref="view_project_issue_filter"/> - <field name="help" type="html"> - <p> - The Odoo issues tracker allows you to efficiently manage things - like internal requests, software development bugs, customer - complaints, project troubles, material breakdowns, etc. - </p> - </field> - </record> - - <record id="action_crm_tag_kanban_view0" model="ir.actions.act_window.view"> - <field name="sequence" eval="0"/> - <field name="view_mode">kanban</field> - <field name="view_id" ref="project_issue_kanban_view"/> - <field name="act_window_id" ref="project_issue_categ_act0"/> - </record> - - <record id="action_crm_tag_tree_view0" model="ir.actions.act_window.view"> - <field name="sequence" eval="1"/> - <field name="view_mode">tree</field> - <field name="view_id" ref="project_issue_tree_view"/> - <field name="act_window_id" ref="project_issue_categ_act0"/> - </record> - - <record id="action_crm_tag_calendar_view0" model="ir.actions.act_window.view"> - <field name="sequence" eval="2"/> - <field name="view_mode">calendar</field> - <field name="view_id" ref="project_issue_calendar_view"/> - <field name="act_window_id" ref="project_issue_categ_act0"/> - </record> - - <record id="action_crm_tag_form_view0" model="ir.actions.act_window.view"> - <field name="sequence" eval="3"/> - <field name="view_mode">form</field> - <field name="view_id" ref="project_issue_form_view"/> - <field name="act_window_id" ref="project_issue_categ_act0"/> - </record> - - <record id="action_crm_tag_graph_view0" model="ir.actions.act_window.view"> - <field name="sequence" eval="4"/> - <field name="view_mode">graph</field> - <field name="view_id" ref="project_issue_graph_view"/> - <field name="act_window_id" ref="project_issue_categ_act0"/> - </record> - - <menuitem id="menu_project_issue_track" name="Issues" parent="project.menu_project_management" - action="project_issue_categ_act0" sequence="15"/> -</odoo> diff --git a/addons/project_issue/views/project_issue_view.xml b/addons/project_issue/views/project_issue_views.xml similarity index 86% rename from addons/project_issue/views/project_issue_view.xml rename to addons/project_issue/views/project_issue_views.xml index ed29e2db2e8c884f84f08f9885deb8bbda5f1af0..97fd873770ab05ab79910b488d660f29c0d421a0 100644 --- a/addons/project_issue/views/project_issue_view.xml +++ b/addons/project_issue/views/project_issue_views.xml @@ -195,6 +195,19 @@ </field> </record> + <record id="project_issue_view_kanban_inherit_no_group_create" model="ir.ui.view"> + <field name="name">project.issue.view.kanban.inherit.no.group.create</field> + <field name="model">project.issue</field> + <field name="inherit_id" ref="project_issue.project_issue_kanban_view"/> + <field name="mode">primary</field> + <field name="priority">32</field> + <field name="arch" type="xml"> + <kanban position="attributes"> + <attribute name="group_create">false</attribute> + </kanban> + </field> + </record> + <record id="project_issue_pivot_view" model="ir.ui.view"> <field name="name">project.issue.pivot.view</field> <field name="model">project.issue</field> @@ -267,4 +280,33 @@ </p> </field> </record> + + <record id="project_issue_categ_act0" model="ir.actions.act_window"> + <field name="name">Issues</field> + <field name="res_model">project.issue</field> + <field name="view_type">form</field> + <field name="view_mode">kanban,tree,calendar,form,pivot,graph</field> + <field name="view_id" eval="False"/> + <field name="domain" eval=""/> + <field name="context">{'search_default_my_issues': 1}</field> + <field name="search_view_id" ref="view_project_issue_filter"/> + <field name="view_ids" + eval="[(5, 0, 0), + (0, 0, {'view_mode': 'kanban', 'view_id': ref('project_issue_view_kanban_inherit_no_group_create')}), + (0, 0, {'view_mode': 'tree', 'view_id': ref('project_issue_tree_view')}), + (0, 0, {'view_mode': 'calendar', 'view_id': ref('project_issue_calendar_view')}), + (0, 0, {'view_mode': 'form', 'view_id': ref('project_issue_form_view')}), + (0, 0, {'view_mode': 'graph', 'view_id': ref('project_issue_graph_view')}), + ]"/> + <field name="help" type="html"> + <p> + The Odoo issues tracker allows you to efficiently manage things + like internal requests, software development bugs, customer + complaints, project troubles, material breakdowns, etc. + </p> + </field> + </record> + + <menuitem id="menu_project_issue_track" name="Issues" parent="project.menu_project_management" + action="project_issue_categ_act0" sequence="15"/> </odoo> diff --git a/addons/project_issue/views/project_project_view.xml b/addons/project_issue/views/project_project_view.xml deleted file mode 100644 index 76bce706a8f57ab5d05f949434c6c35a8e546084..0000000000000000000000000000000000000000 --- a/addons/project_issue/views/project_project_view.xml +++ /dev/null @@ -1,28 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<odoo> - <!-- Project --> - <record id="view_project_form_inherited" model="ir.ui.view"> - <field name="name">project.project.form.inherited</field> - <field name="model">project.project</field> - <field name="inherit_id" ref="project.edit_project"/> - <field name="arch" type="xml"> - <xpath expr='//div[@name="options_active"]' position="attributes"> - <attribute name="invisible">0</attribute> - </xpath> - <xpath expr='//div[@name="options_active"]' position='inside'> - <div> - <field name="use_issues" class="oe_inline"/> - <label for="use_issues" class="oe_inline" string="Issues"/> - <span attrs="{'invisible':[('use_issues', '=', False)]}">as </span> - <field name="label_issues" class="oe_inline oe_input_align" attrs="{'invisible': [('use_issues', '=', False)]}"/> - </div> - </xpath> - <div name="button_box" position="inside"> - <button class="oe_stat_button" type="action" attrs="{'invisible':[('use_issues','=', False)]}" - name="%(act_project_project_2_project_issue_all)d" icon="fa-bug"> - <field string="Issues" name="issue_count" widget="statinfo" options="{'label_field': 'label_issues'}"/> - </button> - </div> - </field> - </record> -</odoo> diff --git a/addons/project_issue/views/project_project_views.xml b/addons/project_issue/views/project_project_views.xml new file mode 100644 index 0000000000000000000000000000000000000000..cd907e715d5bac71244970991220123a516bfd88 --- /dev/null +++ b/addons/project_issue/views/project_project_views.xml @@ -0,0 +1,68 @@ +<?xml version="1.0" encoding="utf-8"?> +<odoo> + + <record id="project_project_view_form_simplified_inherit_issue" model="ir.ui.view"> + <field name="name">project.project.view.form.simplified.inherit.issue</field> + <field name="model">project.project</field> + <field name="inherit_id" ref="project.project_project_view_form_simplified"/> + <field name="arch" type="xml"> + <div name="alias_def" position="after"> + <field name="use_tasks"/> + <field name="use_issues"/> + </div> + </field> + </record> + + <record id="view_project_kanban_inherited" model="ir.ui.view"> + <field name="name">project.project.kanban.inherited</field> + <field name="model">project.project</field> + <field name="inherit_id" ref="project.view_project_kanban"/> + <field name="arch" type="xml"> + <field name="use_tasks" position="after"> + <field name="use_issues"/> + <field name="issue_ids" invisible="1"/> + <field name="issue_needaction_count" invisible="1"/> + </field> + <xpath expr="//div/a[contains(@class, 'o_project_kanban_box')]" position="after"> + <a t-if="record.use_issues.raw_value" class="o_project_kanban_box" name="%(act_project_project_2_project_issue_all)d" type="action"> + <span class="o_value"><t t-raw="record.issue_ids.raw_value.length"/></span> + <span class="o_label"><field name="label_issues"/></span> + <a t-if="record.issue_needaction_count.raw_value" class="o_needaction" name="%(act_project_project_2_project_issue_all)d" type="action" context="{'search_default_message_needaction': 1}"> + <t t-esc="record.issue_needaction_count.raw_value"/> + </a> + </a> + </xpath> + <xpath expr="//div[contains(@class, 'o_kanban_manage_reports')]" position="inside"> + <div> + <a name="%(action_project_issue_report_filtered)d" type="action">Issues</a> + </div> + </xpath> + + </field> + </record> + + <record id="view_project_form_inherited" model="ir.ui.view"> + <field name="name">project.project.form.inherited</field> + <field name="model">project.project</field> + <field name="inherit_id" ref="project.edit_project"/> + <field name="arch" type="xml"> + <div name="options_active" position="attributes"> + <attribute name="class"></attribute> + </div> + <xpath expr='//div[@name="options_active"]' position='inside'> + <div> + <field name="use_issues" class="oe_inline"/> + <label for="use_issues" class="oe_inline" string="Issues"/> + <span attrs="{'invisible':[('use_issues', '=', False)]}">as </span> + <field name="label_issues" class="oe_inline oe_input_align" attrs="{'invisible': [('use_issues', '=', False)]}"/> + </div> + </xpath> + <div name="button_box" position="inside"> + <button class="oe_stat_button" type="action" attrs="{'invisible':[('use_issues','=', False)]}" + name="%(act_project_project_2_project_issue_all)d" icon="fa-bug"> + <field string="Issues" name="issue_count" widget="statinfo" options="{'label_field': 'label_issues'}"/> + </button> + </div> + </field> + </record> +</odoo> diff --git a/addons/project_issue/views/res_partner_view.xml b/addons/project_issue/views/res_partner_views.xml similarity index 100% rename from addons/project_issue/views/res_partner_view.xml rename to addons/project_issue/views/res_partner_views.xml