From 45f3659305359fff5b0c7bf3de7d49a25ba5c36d Mon Sep 17 00:00:00 2001 From: Yannick Tivisse Date: Thu, 14 May 2020 13:44:05 +0000 Subject: [PATCH] [IMP] project,...: Improve list views with new widgets Purpose ======= Task 2195254 introduced many wonderful widgets to pimp the list view. This task aims at implemeting them into the Services apps: project, timesheets, helpdesk, expense, planning and field service. Remaining days: https://drive.google.com/file/d/1o4Wn47445GxLqBkw-ifH9MgtFU_437xz/view Avatar: https://drive.google.com/file/d/1yDwJWP0MZCUKZbqCa8hte1ziVTYRMMtb/view Activities: https://drive.google.com/file/d/1e_rXH50eZq4zY2HOzw7_pfgiD39SoRIl/view Field-specific decorations: https://drive.google.com/file/d/1WFnqJ-jkyDFftRHxWW4bgomoWrOpOuaY/view More control on buttons Specifications ============== You will find below a list of which widgets to apply to which fields by model. Some changes have to be done in the form/kanban views as well. 1) project.task remaining days -> date_deadline -> list + kanban + form views hide this field if is_closed is true avatar -> user_id -> list view activities -> 'next activity' field to be added -> list view field-specific decorations https://nimb.ws/ACewrY remove the current orange/red decorations we have if planned_hours > 0, display the remaining_hours field in (list view): red if progress is > 100% orange if progress is between 80% and 100% green if progress is <80% display unit_amount in red if > 24:00 -> form view 2) rating.rating display the rating in: green = satisfied orange = not_satisfied red = highly_dissatisfied list + form views 3) project.project avatar -> user_id -> list + form views 4) account.analytic.line avatar -> employee_id -> list view display unit_amount in red if > 24:00 -> list + kanban + form view https://nimb.ws/eIWa7E merge the timer and duration fields together 5) helpdesk.ticket avatar user_id -> list view employee_id under timesheet_ids -> form view remaining hours -> sla_deadline activities -> 'next activity' field to be added -> list view field specific decoration -> display unit_amount in red if > 24:00 -> form view 6) hr.expense avatar -> employee_id -> list view activities -> 'next activity' field to be added -> list view badge -> state -> list view draft = blue reported = green approved = green done = green refused = red combine the unit_amount and the currency_id fields (see the total_amount field for reference) -> list view (idem for the expense_line_ids one2many on hr.expense.sheet) display the total_amount in bold move 'company_id' before 'amount' 7) hr.expense.sheet avatar employee_id -> list view user_id -> list view activities -> 'next activity' field to be added -> list view badge -> state -> list view draft = blue submit = green approve = green post = green done = green cancel = red display the total_amount in bold move 'company_id' before 'amount' 8) planning.slot avatar -> employee_id -> list view decoration display the allocated_percentage field in red if > 100% -> list + form view display the forecast_hours field in red if > planned hours and if planned_hours > 0 -> form view display the effective_hours field in red if > forecast_hours and if forecast_hours > 0 -> form view 9) misc calendar.event -> avatar -> user_id -> form view mail.activity.type -> combine the delay_count and delay_unit fields together -> list view note.note -> 'next activity' field to be added -> list view crm.lead.mining.request combine the lead_number and lead_type fields together -> list view display the name in bold badge -> state draft = blue done = green error = red planning.slot.template -> display the duration field in red if it is = 0 closes odoo/odoo#51271 Taskid: 2248351 Related: odoo/enterprise#10605 Related: odoo/upgrade#1252 Signed-off-by: Yannick Tivisse (yti) --- addons/calendar/views/calendar_views.xml | 2 +- .../models/crm_iap_lead_mining_request.py | 12 +- .../crm_iap_lead/views/crm_iap_lead_views.xml | 7 +- addons/hr_expense/views/hr_expense_views.xml | 32 +++--- .../static/src/js/timesheet_uom.js | 7 +- .../static/src/js/timesheet_uom_timer.js | 107 ++++++++++++++++++ addons/hr_timesheet/views/assets.xml | 1 + .../hr_timesheet/views/hr_timesheet_views.xml | 8 +- addons/hr_timesheet/views/project_views.xml | 21 ++-- addons/mail/models/mail_activity.py | 9 ++ addons/mail/views/mail_activity_views.xml | 3 +- addons/note/views/note_views.xml | 1 + addons/project/models/project.py | 6 - addons/project/static/src/js/project.js | 47 -------- addons/project/views/project_assets.xml | 1 - addons/project/views/project_views.xml | 31 ++--- addons/rating/views/rating_rating_views.xml | 2 +- .../static/src/js/timer_toggle_button.js | 5 +- 18 files changed, 183 insertions(+), 119 deletions(-) create mode 100644 addons/hr_timesheet/static/src/js/timesheet_uom_timer.js delete mode 100644 addons/project/static/src/js/project.js diff --git a/addons/calendar/views/calendar_views.xml b/addons/calendar/views/calendar_views.xml index a5b1d080b63..5d8e8f598f7 100644 --- a/addons/calendar/views/calendar_views.xml +++ b/addons/calendar/views/calendar_views.xml @@ -233,7 +233,7 @@ diff --git a/addons/crm_iap_lead/models/crm_iap_lead_mining_request.py b/addons/crm_iap_lead/models/crm_iap_lead_mining_request.py index 598fe68d8d6..6f30f596d2a 100644 --- a/addons/crm_iap_lead/models/crm_iap_lead_mining_request.py +++ b/addons/crm_iap_lead/models/crm_iap_lead_mining_request.py @@ -37,7 +37,8 @@ class CRMLeadMiningRequest(models.Model): error = fields.Text(string='Error', readonly=True) # Lead / Opportunity Data - lead_type = fields.Selection([('lead', 'Lead'), ('opportunity', 'Opportunity')], string='Type', required=True, default=_default_lead_type) + lead_type = fields.Selection([('lead', 'Leads'), ('opportunity', 'Opportunities')], string='Type', required=True, default=_default_lead_type) + display_lead_label = fields.Char(compute='_compute_display_lead_label') team_id = fields.Many2one('crm.team', string='Sales Team', domain="[('use_opportunities', '=', True)]") user_id = fields.Many2one('res.users', string='Salesperson') tag_ids = fields.Many2many('crm.tag', string='Tags') @@ -64,6 +65,15 @@ class CRMLeadMiningRequest(models.Model): lead_contacts_credits = fields.Char(compute='_compute_tooltip', readonly=True) lead_total_credits = fields.Char(compute='_compute_tooltip', readonly=True) + @api.depends('lead_type', 'lead_number') + def _compute_display_lead_label(self): + selection_description_values = { + e[0]: e[1] for e in self._fields['lead_type']._description_selection(self.env)} + for request in self: + lead_type = selection_description_values[request.lead_type] + request.display_lead_label = '%s %s' % (request.lead_number, lead_type) + + @api.onchange('lead_number', 'contact_number') def _compute_tooltip(self): for record in self: diff --git a/addons/crm_iap_lead/views/crm_iap_lead_views.xml b/addons/crm_iap_lead/views/crm_iap_lead_views.xml index f76fb55013c..5621f10109e 100644 --- a/addons/crm_iap_lead/views/crm_iap_lead_views.xml +++ b/addons/crm_iap_lead/views/crm_iap_lead_views.xml @@ -116,15 +116,14 @@ crm.iap.lead.mining.request - - - + + - + diff --git a/addons/hr_expense/views/hr_expense_views.xml b/addons/hr_expense/views/hr_expense_views.xml index 72192d284a0..8468611276e 100644 --- a/addons/hr_expense/views/hr_expense_views.xml +++ b/addons/hr_expense/views/hr_expense_views.xml @@ -38,27 +38,28 @@ hr.expense.tree hr.expense - + - + - + + + - +