From 8514ef827e1fcc2224aa0f4e6c2849819005c27d Mon Sep 17 00:00:00 2001 From: RomainLibert Date: Tue, 2 Jul 2019 07:54:26 +0000 Subject: [PATCH] [IMP] various: Make some small tree views editable Purpose ======= Some formviews are useless since there are so few relevant fields https://nimb.ws/1EdMV7 For instance, to create a new lost reason the user is forced to: 1. Hit create 2. Type in the name of the record 3. Hit save 4. Go back to the treeview While he could simply type them away in an editable treeview. The goal of this task is to allow for creation/edition of records in such models directly from the treeview. Specification ============= Modify tree views from a given list of models for which the treeview has to be made editable bottom. If not specified otherwise, the content treeview should stay the same. If a field is readonly/required/etc. in the formview, it should be in the editable treeview as well. Relabeling has to be done of the field itself, not in the view. TaskID: 2026126 closes odoo/odoo#34577 Signed-off-by: Yannick Tivisse (yti) --- addons/account/models/account.py | 4 ++-- addons/account/views/account_incoterms_view.xml | 2 +- addons/account/views/account_view.xml | 16 ++++++++++++++-- addons/crm/models/crm_lead.py | 6 +++--- addons/crm/views/crm_lead_views.xml | 13 ++++++++++++- addons/fleet/models/fleet_vehicle.py | 2 +- addons/fleet/views/fleet_vehicle_views.xml | 10 ++++++++++ addons/hr/models/hr_employee_category.py | 2 +- addons/hr/views/hr_employee_category_views.xml | 2 +- .../hr_attendance/views/hr_attendance_view.xml | 4 ++-- addons/hr_recruitment/models/hr_recruitment.py | 4 ++-- .../views/hr_recruitment_views.xml | 15 +++++++++++++-- addons/hr_skills/views/hr_views.xml | 17 ++++++++++++++++- addons/maintenance/models/maintenance.py | 2 +- addons/maintenance/views/maintenance_views.xml | 5 +++-- addons/mrp/models/mrp_workcenter.py | 2 +- addons/mrp/views/mrp_workcenter_views.xml | 4 ++-- addons/point_of_sale/views/product_view.xml | 11 +++++++++++ addons/project/models/project.py | 2 +- addons/project/views/project_views.xml | 10 ++++++++++ addons/uom/views/uom_uom_views.xml | 12 ++++++++++++ addons/utm/models/utm.py | 2 +- addons/utm/views/utm_views.xml | 8 ++++---- .../views/res_partner_views.xml | 5 +++-- .../views/res_partner_views.xml | 4 ++-- .../website_event_track/models/event_track.py | 4 ++-- .../views/event_track_views.xml | 2 +- odoo/addons/base/views/res_country_views.xml | 4 ++-- odoo/addons/base/views/res_partner_views.xml | 6 +++--- 29 files changed, 137 insertions(+), 43 deletions(-) diff --git a/addons/account/models/account.py b/addons/account/models/account.py index c83c5350431..bf1a2aa5d69 100644 --- a/addons/account/models/account.py +++ b/addons/account/models/account.py @@ -41,7 +41,7 @@ class AccountAccountTag(models.Model): _name = 'account.account.tag' _description = 'Account Tag' - name = fields.Char(required=True) + name = fields.Char('Tag Name', required=True) applicability = fields.Selection([('accounts', 'Accounts'), ('taxes', 'Taxes')], required=True, default='accounts') color = fields.Integer('Color Index') active = fields.Boolean(default=True, help="Set active to false to hide the Account Tag without removing it.") @@ -506,7 +506,7 @@ class AccountJournalGroup(models.Model): _name = 'account.journal.group' _description = "Account Journal Group" - name = fields.Char(required=True, translate=True) + name = fields.Char("Group Name", required=True, translate=True) company_id = fields.Many2one('res.company', required=True, default=lambda self: self.env.company) account_journal_ids = fields.Many2many('account.journal', string="Journals") sequence = fields.Integer(default=10) diff --git a/addons/account/views/account_incoterms_view.xml b/addons/account/views/account_incoterms_view.xml index 20cd4ce29bd..3b4d308a113 100644 --- a/addons/account/views/account_incoterms_view.xml +++ b/addons/account/views/account_incoterms_view.xml @@ -6,7 +6,7 @@ account.incoterms.tree account.incoterms - + diff --git a/addons/account/views/account_view.xml b/addons/account/views/account_view.xml index da2a270c835..b5001de19a2 100644 --- a/addons/account/views/account_view.xml +++ b/addons/account/views/account_view.xml @@ -180,10 +180,10 @@ account.journal.group 1 - + - + @@ -388,6 +388,18 @@ action = model.setting_init_bank_account_action() + + + Tags + account.account.tag + + + + + + + + Account Tags account.account.tag diff --git a/addons/crm/models/crm_lead.py b/addons/crm/models/crm_lead.py index 290068944e9..7e383027400 100644 --- a/addons/crm/models/crm_lead.py +++ b/addons/crm/models/crm_lead.py @@ -1611,7 +1611,7 @@ class Lead(models.Model): from crm_lead_tag_rel rel inner join crm_lead_tag t on rel.tag_id = t.id inner join crm_lead l on l.id = rel.lead_id - where (l.probability = 0 or l.probability >= 100) + where (l.probability = 0 or l.probability >= 100) and l.create_date > %%s %s group by l.probability, l.active, t.id""" @@ -1726,7 +1726,7 @@ class Tag(models.Model): _name = "crm.lead.tag" _description = "Lead Tag" - name = fields.Char('Name', required=True, translate=True) + name = fields.Char('Tag Name', required=True, translate=True) color = fields.Integer('Color Index') _sql_constraints = [ @@ -1738,5 +1738,5 @@ class LostReason(models.Model): _name = "crm.lost.reason" _description = 'Opp. Lost Reason' - name = fields.Char('Name', required=True, translate=True) + name = fields.Char('Description', required=True, translate=True) active = fields.Boolean('Active', default=True) diff --git a/addons/crm/views/crm_lead_views.xml b/addons/crm/views/crm_lead_views.xml index f62828dbb42..da376243cfb 100644 --- a/addons/crm/views/crm_lead_views.xml +++ b/addons/crm/views/crm_lead_views.xml @@ -31,8 +31,9 @@ crm.lead.tag.tree crm.lead.tag - + + @@ -855,6 +856,16 @@ + + crm.lost.reason.tree + crm.lost.reason + + + + + + + diff --git a/addons/fleet/models/fleet_vehicle.py b/addons/fleet/models/fleet_vehicle.py index 692e7246b4b..709880486ed 100644 --- a/addons/fleet/models/fleet_vehicle.py +++ b/addons/fleet/models/fleet_vehicle.py @@ -366,7 +366,7 @@ class FleetVehicleTag(models.Model): _name = 'fleet.vehicle.tag' _description = 'Vehicle Tag' - name = fields.Char(required=True, translate=True) + name = fields.Char('Tag Name', required=True, translate=True) color = fields.Integer('Color Index') _sql_constraints = [('name_uniq', 'unique (name)', "Tag name already exists !")] diff --git a/addons/fleet/views/fleet_vehicle_views.xml b/addons/fleet/views/fleet_vehicle_views.xml index 831753f9307..8c3c6090340 100644 --- a/addons/fleet/views/fleet_vehicle_views.xml +++ b/addons/fleet/views/fleet_vehicle_views.xml @@ -489,6 +489,16 @@ + + fleet.vehicle.tag.tree + fleet.vehicle.tag + + + + + + + Vehicle Tags fleet.vehicle.tag diff --git a/addons/hr/models/hr_employee_category.py b/addons/hr/models/hr_employee_category.py index a088b9af893..dbd14f81a94 100644 --- a/addons/hr/models/hr_employee_category.py +++ b/addons/hr/models/hr_employee_category.py @@ -9,7 +9,7 @@ class EmployeeCategory(models.Model): _name = "hr.employee.category" _description = "Employee Category" - name = fields.Char(string="Employee Tag", required=True) + name = fields.Char(string="Tag Name", required=True) color = fields.Integer(string='Color Index') employee_ids = fields.Many2many('hr.employee', 'employee_category_rel', 'category_id', 'emp_id', string='Employees') diff --git a/addons/hr/views/hr_employee_category_views.xml b/addons/hr/views/hr_employee_category_views.xml index 8ac422eea2b..f7a52d9958a 100644 --- a/addons/hr/views/hr_employee_category_views.xml +++ b/addons/hr/views/hr_employee_category_views.xml @@ -21,7 +21,7 @@ hr.employee.category - + diff --git a/addons/hr_attendance/views/hr_attendance_view.xml b/addons/hr_attendance/views/hr_attendance_view.xml index 999f323060c..040f94f03fa 100644 --- a/addons/hr_attendance/views/hr_attendance_view.xml +++ b/addons/hr_attendance/views/hr_attendance_view.xml @@ -7,7 +7,7 @@ hr.attendance.tree hr.attendance - + @@ -175,7 +175,7 @@ - + diff --git a/addons/hr_recruitment/models/hr_recruitment.py b/addons/hr_recruitment/models/hr_recruitment.py index 24fd9eba483..a142a94bd92 100644 --- a/addons/hr_recruitment/models/hr_recruitment.py +++ b/addons/hr_recruitment/models/hr_recruitment.py @@ -84,7 +84,7 @@ class RecruitmentDegree(models.Model): ('name_uniq', 'unique (name)', 'The name of the Degree of Recruitment must be unique!') ] - name = fields.Char("Degree", required=True, translate=True) + name = fields.Char("Degree Name", required=True, translate=True) sequence = fields.Integer("Sequence", default=1, help="Gives the sequence order when displaying a list of degrees.") @@ -484,7 +484,7 @@ class ApplicantCategory(models.Model): _name = "hr.applicant.category" _description = "Category of applicant" - name = fields.Char("Name", required=True) + name = fields.Char("Tag Name", required=True) color = fields.Integer(string='Color Index', default=10) _sql_constraints = [ diff --git a/addons/hr_recruitment/views/hr_recruitment_views.xml b/addons/hr_recruitment/views/hr_recruitment_views.xml index 829cbb587c4..c67213542db 100644 --- a/addons/hr_recruitment/views/hr_recruitment_views.xml +++ b/addons/hr_recruitment/views/hr_recruitment_views.xml @@ -770,6 +770,17 @@ action = act + + hr.applicant.category.tree + hr.applicant.category + + + + + + + + Tags @@ -792,8 +803,8 @@ action = act hr.recruitment.degree.tree hr.recruitment.degree - - + + diff --git a/addons/hr_skills/views/hr_views.xml b/addons/hr_skills/views/hr_views.xml index b9a4a104a61..de5f94a8fdc 100644 --- a/addons/hr_skills/views/hr_views.xml +++ b/addons/hr_skills/views/hr_views.xml @@ -170,6 +170,17 @@ + + hr.resume.line.type.tree.view + hr.resume.line.type + + + + + + + + Resumé Line Types hr.resume.line.type @@ -287,7 +298,11 @@ - + + + + + diff --git a/addons/maintenance/models/maintenance.py b/addons/maintenance/models/maintenance.py index ce4fc8c3e65..1978129da6e 100644 --- a/addons/maintenance/models/maintenance.py +++ b/addons/maintenance/models/maintenance.py @@ -401,7 +401,7 @@ class MaintenanceTeam(models.Model): _name = 'maintenance.team' _description = 'Maintenance Teams' - name = fields.Char(required=True, translate=True) + name = fields.Char('Team Name', required=True, translate=True) active = fields.Boolean(default=True) company_id = fields.Many2one('res.company', string='Company', default=lambda self: self.env.company) diff --git a/addons/maintenance/views/maintenance_views.xml b/addons/maintenance/views/maintenance_views.xml index 81ff745a4a0..1d119550bd0 100644 --- a/addons/maintenance/views/maintenance_views.xml +++ b/addons/maintenance/views/maintenance_views.xml @@ -779,9 +779,10 @@ maintenance.team.tree maintenance.team - + - + + diff --git a/addons/mrp/models/mrp_workcenter.py b/addons/mrp/models/mrp_workcenter.py index 44d48928fea..65b05606a04 100644 --- a/addons/mrp/models/mrp_workcenter.py +++ b/addons/mrp/models/mrp_workcenter.py @@ -220,7 +220,7 @@ class MrpWorkcenterProductivityLoss(models.Model): _description = "Workcenter Productivity Losses" _order = "sequence, id" - name = fields.Char('Reason', required=True) + name = fields.Char('Blocking Reason', required=True) sequence = fields.Integer('Sequence', default=1) manual = fields.Boolean('Is a Blocking Reason', default=True) loss_id = fields.Many2one('mrp.workcenter.productivity.loss.type', domain=([('loss_type', 'in', ['quality', 'availability'])]), string='Category') diff --git a/addons/mrp/views/mrp_workcenter_views.xml b/addons/mrp/views/mrp_workcenter_views.xml index d092dbf0f6e..58b5f93176d 100644 --- a/addons/mrp/views/mrp_workcenter_views.xml +++ b/addons/mrp/views/mrp_workcenter_views.xml @@ -458,9 +458,9 @@ mrp.workcenter.productivity.loss.tree mrp.workcenter.productivity.loss - + - + diff --git a/addons/point_of_sale/views/product_view.xml b/addons/point_of_sale/views/product_view.xml index 42911496778..a2d6b8e9af9 100644 --- a/addons/point_of_sale/views/product_view.xml +++ b/addons/point_of_sale/views/product_view.xml @@ -97,4 +97,15 @@ + + uom.category.tree.inherit + uom.category + + + + + + + + diff --git a/addons/project/models/project.py b/addons/project/models/project.py index f417e3fb7a4..19692c88686 100644 --- a/addons/project/models/project.py +++ b/addons/project/models/project.py @@ -978,7 +978,7 @@ class ProjectTags(models.Model): _name = "project.tags" _description = "Project Tags" - name = fields.Char(required=True) + name = fields.Char('Tag Name', required=True) color = fields.Integer(string='Color Index') _sql_constraints = [ diff --git a/addons/project/views/project_views.xml b/addons/project/views/project_views.xml index 6d62cef471c..9b2f80529ae 100644 --- a/addons/project/views/project_views.xml +++ b/addons/project/views/project_views.xml @@ -904,6 +904,16 @@ + + Tags + project.tags + + + + + + + Tags project.tags diff --git a/addons/uom/views/uom_uom_views.xml b/addons/uom/views/uom_uom_views.xml index 43c373ca3f3..9b198a4844e 100644 --- a/addons/uom/views/uom_uom_views.xml +++ b/addons/uom/views/uom_uom_views.xml @@ -76,6 +76,18 @@ + + + uom.category.tree + uom.category + + + + + + + + Unit of Measure Categories ir.actions.act_window diff --git a/addons/utm/models/utm.py b/addons/utm/models/utm.py index 41efca78cf5..92046d17bea 100644 --- a/addons/utm/models/utm.py +++ b/addons/utm/models/utm.py @@ -10,7 +10,7 @@ class UtmMedium(models.Model): _description = 'UTM Medium' _order = 'name' - name = fields.Char(string='Channel Name', required=True) + name = fields.Char(string='Medium Name', required=True) active = fields.Boolean(default=True) diff --git a/addons/utm/views/utm_views.xml b/addons/utm/views/utm_views.xml index 0b397931301..190c5c33f32 100644 --- a/addons/utm/views/utm_views.xml +++ b/addons/utm/views/utm_views.xml @@ -16,7 +16,7 @@ utm.campaign.view.tree utm.campaign - + @@ -57,9 +57,9 @@ utm.medium.view.tree utm.medium - + - + @@ -98,7 +98,7 @@ utm.source.view.tree utm.source - + diff --git a/addons/website_crm_partner_assign/views/res_partner_views.xml b/addons/website_crm_partner_assign/views/res_partner_views.xml index b4ffb30b73f..fc5dcbce76d 100644 --- a/addons/website_crm_partner_assign/views/res_partner_views.xml +++ b/addons/website_crm_partner_assign/views/res_partner_views.xml @@ -23,8 +23,9 @@ res.partner.activation.tree res.partner.activation - - + + + diff --git a/addons/website_customer/views/res_partner_views.xml b/addons/website_customer/views/res_partner_views.xml index 4849acb4907..5c2cf4bec82 100644 --- a/addons/website_customer/views/res_partner_views.xml +++ b/addons/website_customer/views/res_partner_views.xml @@ -34,11 +34,11 @@ res.partner.tag - + - + diff --git a/addons/website_event_track/models/event_track.py b/addons/website_event_track/models/event_track.py index 501d9cc43eb..b24d15cbd39 100644 --- a/addons/website_event_track/models/event_track.py +++ b/addons/website_event_track/models/event_track.py @@ -11,7 +11,7 @@ class TrackTag(models.Model): _description = 'Event Track Tag' _order = 'name' - name = fields.Char('Tag') + name = fields.Char('Tag Name', required=True) track_ids = fields.Many2many('event.track', string='Tracks') color = fields.Integer(string='Color Index') @@ -24,7 +24,7 @@ class TrackLocation(models.Model): _name = "event.track.location" _description = 'Event Track Location' - name = fields.Char('Room') + name = fields.Char('Location') class TrackStage(models.Model): diff --git a/addons/website_event_track/views/event_track_views.xml b/addons/website_event_track/views/event_track_views.xml index f275c826423..5ec6624b0c7 100644 --- a/addons/website_event_track/views/event_track_views.xml +++ b/addons/website_event_track/views/event_track_views.xml @@ -275,7 +275,7 @@ event.sponsor.type - + diff --git a/odoo/addons/base/views/res_country_views.xml b/odoo/addons/base/views/res_country_views.xml index c55ea2ae20d..dd629118e7d 100644 --- a/odoo/addons/base/views/res_country_views.xml +++ b/odoo/addons/base/views/res_country_views.xml @@ -101,10 +101,10 @@ res.country.state.tree res.country.state - + - + diff --git a/odoo/addons/base/views/res_partner_views.xml b/odoo/addons/base/views/res_partner_views.xml index d990f6769d4..2851ecb72ff 100644 --- a/odoo/addons/base/views/res_partner_views.xml +++ b/odoo/addons/base/views/res_partner_views.xml @@ -7,7 +7,7 @@ res.partner.title.tree res.partner.title - + @@ -722,10 +722,10 @@ res.partner.industry - + - +