From e6c5734d0f684c4ef9dd59d513127133e15683ae Mon Sep 17 00:00:00 2001 From: Stefan Date: Mon, 23 Jan 2023 10:21:21 +0100 Subject: [PATCH] [MIG] crm_event: Migration to 15.0 --- crm_event/__manifest__.py | 2 +- crm_event/i18n/crm_event.pot | 13 +- crm_event/i18n/es.po | 174 +++++++++++++++++++++++-- crm_event/models/event_type.py | 10 +- crm_event/readme/CONTRIBUTORS.rst | 5 +- crm_event/reports/event_type_report.py | 11 +- crm_event/tests/test_event_type.py | 14 +- crm_event/views/crm_lead_view.xml | 2 +- 8 files changed, 190 insertions(+), 41 deletions(-) diff --git a/crm_event/__manifest__.py b/crm_event/__manifest__.py index 4c42b7fa4..d3b5837dc 100644 --- a/crm_event/__manifest__.py +++ b/crm_event/__manifest__.py @@ -3,7 +3,7 @@ { "name": "CRM Event Category", "summary": "Link opportunities to event categories", - "version": "13.0.1.1.0", + "version": "15.0.1.0.0", "development_status": "Production/Stable", "category": "Event Management", "website": "https://github.com/OCA/event", diff --git a/crm_event/i18n/crm_event.pot b/crm_event/i18n/crm_event.pot index c409ab8db..699954db9 100644 --- a/crm_event/i18n/crm_event.pot +++ b/crm_event/i18n/crm_event.pot @@ -4,8 +4,10 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 13.0\n" +"Project-Id-Version: Odoo Server 15.0\n" "Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-01-23 09:29+0000\n" +"PO-Revision-Date: 2023-01-23 09:29+0000\n" "Last-Translator: \n" "Language-Team: \n" "MIME-Version: 1.0\n" @@ -13,6 +15,11 @@ msgstr "" "Content-Transfer-Encoding: \n" "Plural-Forms: \n" +#. module: crm_event +#: model_terms:ir.ui.view,arch_db:crm_event.crm_case_kanban_view_leads +msgid "" +msgstr "" + #. module: crm_event #: model:ir.model.fields,field_description:crm_event.field_event_type_report__events_available_count msgid "Available events count" @@ -45,7 +52,7 @@ msgstr "" #. module: crm_event #: model:ir.model,name:crm_event.model_event_type -msgid "Event Category" +msgid "Event Template" msgstr "" #. module: crm_event @@ -203,7 +210,9 @@ msgid "Total seats wanted" msgstr "" #. module: crm_event +#: code:addons/crm_event/models/event_type.py:0 #: model:ir.model.fields.selection,name:crm_event.selection__event_type_report__event_seats_availability__unlimited +#, python-format msgid "Unlimited" msgstr "" diff --git a/crm_event/i18n/es.po b/crm_event/i18n/es.po index 765dfb36d..f15aacb59 100644 --- a/crm_event/i18n/es.po +++ b/crm_event/i18n/es.po @@ -6,8 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 12.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-02-10 12:25+0000\n" -"PO-Revision-Date: 2021-02-10 12:26+0000\n" +"POT-Creation-Date: 2023-01-23 09:29+0000\n" +"PO-Revision-Date: 2023-01-23 13:07+0100\n" "Last-Translator: Jairo Llopis \n" "Language-Team: \n" "Language: es_ES\n" @@ -15,7 +15,37 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Poedit 2.4.2\n" +"X-Generator: Poedit 3.2.2\n" + +#. module: crm_event +#: model_terms:ir.ui.view,arch_db:crm_event.crm_case_kanban_view_leads +msgid "" +msgstr "" + +#. module: crm_event +#: model:ir.model.fields,field_description:crm_event.field_event_type_report__events_available_count +msgid "Available events count" +msgstr "Recuento de eventos disponibles" + +#. module: crm_event +#: model:ir.model.fields,field_description:crm_event.field_event_type_report__seats_limited_available +msgid "Available seats in limited events" +msgstr "Plazas disponibles en eventos limitados" + +#. module: crm_event +#: model:ir.ui.menu,name:crm_event.menu_event_type_report +msgid "Categories" +msgstr "Categorías" + +#. module: crm_event +#: model:ir.model.fields,field_description:crm_event.field_event_type_report__name +msgid "Category name" +msgstr "Nombre de categoría" + +#. module: crm_event +#: model:ir.model.fields,field_description:crm_event.field_event_type_report__display_name +msgid "Display Name" +msgstr "Nombre mostrado" #. module: crm_event #: model_terms:ir.ui.view,arch_db:crm_event.crm_opportunity_report_view_search @@ -24,33 +54,75 @@ msgstr "Evento" #. module: crm_event #: model:ir.model,name:crm_event.model_event_type -msgid "Event Category" -msgstr "Categoría de eventos" +msgid "Event Template" +msgstr "Plantilla de eventos" + +#. module: crm_event +#: model:ir.model,name:crm_event.model_event_type_report +msgid "Event categories analysis report" +msgstr "Informe de análisis de categorías de eventos" #. module: crm_event #: model:ir.model.fields,field_description:crm_event.field_crm_lead__event_type_id +msgid "Event category" +msgstr "Categoría de evento" + +#. module: crm_event +#: model:ir.actions.act_window,name:crm_event.action_event_type_report +#: model_terms:ir.ui.view,arch_db:crm_event.view_event_type_report_graph +#: model_terms:ir.ui.view,arch_db:crm_event.view_event_type_report_pivot +#: model_terms:ir.ui.view,arch_db:crm_event.view_event_type_report_search +msgid "Event category analysis" +msgstr "Análisis de categorías de eventos" + +#. module: crm_event +#: model_terms:ir.ui.view,arch_db:crm_event.view_event_type_report_search +msgid "Event seats availability" +msgstr "Disponibilidad de plazas del evento" + +#. module: crm_event #: model_terms:ir.ui.view,arch_db:crm_event.crm_opportunity_report_view_search #: model_terms:ir.ui.view,arch_db:crm_event.view_crm_case_leads_filter #: model_terms:ir.ui.view,arch_db:crm_event.view_crm_case_opportunities_filter -msgid "Event category" -msgstr "Categoría de evento" +msgid "Event type" +msgstr "Tipo de evento" #. module: crm_event -#: code:addons/crm_event/models/event_type.py:94 +#: code:addons/crm_event/models/event_type.py:0 #, python-format msgid "Events" msgstr "Eventos" #. module: crm_event -#: model:ir.model.fields,field_description:crm_event.field_event_type__seats_available_total +#: model_terms:ir.ui.view,arch_db:crm_event.view_event_type_form msgid "Events (seats)" msgstr "Eventos (plazas)" +#. module: crm_event +#: model:ir.model.fields,field_description:crm_event.field_event_type__seats_available_total +msgid "Events available (and seats)" +msgstr "Eventos disponibles (y plazas)" + +#. module: crm_event +#: model_terms:ir.ui.view,arch_db:crm_event.view_event_type_report_search +msgid "Extended Filters" +msgstr "Filtros extendidos" + +#. module: crm_event +#: model_terms:ir.ui.view,arch_db:crm_event.view_event_type_report_search +msgid "Group By" +msgstr "Agrupar por" + +#. module: crm_event +#: model:ir.model.fields,field_description:crm_event.field_event_type_report__id +msgid "ID" +msgstr "ID" + #. module: crm_event #: model:ir.model.fields,help:crm_event.field_crm_lead__seats_wanted msgid "" -"If this lead/opportunity is related to a specific event category, indicate how " -"many seats would you sell if won." +"If this lead/opportunity is related to a specific event category, indicate " +"how many seats would you sell if won." msgstr "" "Si esta iniciativa u oportunidad está relacionada con una categoría " "específica de evento, indique cuántas plazas vendería si se gana." @@ -58,17 +130,47 @@ msgstr "" #. module: crm_event #: model:ir.model.fields,help:crm_event.field_crm_lead__event_type_id msgid "" -"If this lead/opportunity is related to a specific event category, indicate it " -"here." +"If this lead/opportunity is related to a specific event category, indicate " +"it here." msgstr "" "Si esta iniciativa u oportunidad está relacionada con una categoría " "específica de evento, indíquelo aquí." +#. module: crm_event +#: model:ir.model.fields,field_description:crm_event.field_event_type_report____last_update +msgid "Last Modified on" +msgstr "Última modificación el" + #. module: crm_event #: model:ir.model,name:crm_event.model_crm_lead msgid "Lead/Opportunity" msgstr "Iniciativa/Oportunidad" +#. module: crm_event +#: model:ir.model.fields,field_description:crm_event.field_event_type__crm_lead_ids +#, fuzzy +#| msgid "Lead/Opportunity" +msgid "Leads/Opportunities" +msgstr "Iniciativa/Oportunidad" + +#. module: crm_event +#: model:ir.model.fields.selection,name:crm_event.selection__event_type_report__event_seats_availability__limited +msgid "Limited" +msgstr "Limitado" + +#. module: crm_event +#: model_terms:ir.ui.view,arch_db:crm_event.view_event_type_report_search +msgid "Limited events" +msgstr "Eventos limitados" + +#. module: crm_event +#: model:ir.model.fields,field_description:crm_event.field_event_type__open_opportunities_count +#: model:ir.model.fields,field_description:crm_event.field_event_type_report__open_opportunities_count +#, fuzzy +#| msgid "Opportunities" +msgid "Open Opportunities Count" +msgstr "Oportunidades" + #. module: crm_event #: model:ir.model.fields,help:crm_event.field_event_type__seats_wanted_total msgid "Open opportunities for events of this category (and wanted seats)." @@ -76,7 +178,12 @@ msgstr "" "Oportunidades abiertas para eventos de esta categoría (y plazas deseadas)." #. module: crm_event -#: code:addons/crm_event/models/event_type.py:109 +#: model:ir.model.fields,help:crm_event.field_event_type__open_opportunities_count +msgid "Open opportunities for events of this category." +msgstr "Oportunidades abiertas para eventos de esta categoría." + +#. module: crm_event +#: code:addons/crm_event/models/event_type.py:0 #, python-format msgid "Opportunities" msgstr "Oportunidades" @@ -86,17 +193,56 @@ msgstr "Oportunidades" msgid "Opportunities (seats)" msgstr "Oportunidades (plazas)" +#. module: crm_event +#: model_terms:ir.actions.act_window,help:crm_event.action_event_type_report +msgid "" +"Report to analyze interest and status of event categories, taking into " +"account upcoming or running events and potential sale information." +msgstr "" +"Informe para analizar el interés y el estado de las categorías de eventos, " +"teniendo en cuenta los eventos próximos o en curso y la información sobre " +"ventas potenciales." + #. module: crm_event #: model:ir.model.fields,field_description:crm_event.field_crm_lead__seats_wanted msgid "Seats Wanted" msgstr "Plazas deseadas" +#. module: crm_event +#: model:ir.model.fields,field_description:crm_event.field_event_type_report__event_seats_availability +msgid "Seats availability" +msgstr "Disponibilidad de plazas" + +#. module: crm_event +#: model:ir.model.fields,help:crm_event.field_event_type__seats_wanted_sum +msgid "Sum of wanted seats in opportunities for events of this category." +msgstr "" +"Suma de plazas buscadas en oportunidades para eventos de esta categoría." + #. module: crm_event #: model_terms:ir.ui.view,arch_db:crm_event.crm_case_tree_view_oppor msgid "Total seats wanted" msgstr "Total de plazas deseadas" +#. module: crm_event +#: code:addons/crm_event/models/event_type.py:0 +#: model:ir.model.fields.selection,name:crm_event.selection__event_type_report__event_seats_availability__unlimited +#, python-format +msgid "Unlimited" +msgstr "Ilimitado" + +#. module: crm_event +#: model_terms:ir.ui.view,arch_db:crm_event.view_event_type_report_search +msgid "Unlimited events" +msgstr "Eventos ilimitados" + #. module: crm_event #: model:ir.model.fields,help:crm_event.field_event_type__seats_available_total msgid "Upcoming/running events of this category (and available seats)." msgstr "Eventos próximos/en marcha de esta categoría (y plazas disponibles)." + +#. module: crm_event +#: model:ir.model.fields,field_description:crm_event.field_event_type__seats_wanted_sum +#: model:ir.model.fields,field_description:crm_event.field_event_type_report__seats_wanted +msgid "Wanted seats" +msgstr "Asientos buscados" diff --git a/crm_event/models/event_type.py b/crm_event/models/event_type.py index a9533e6da..05dcf1bff 100644 --- a/crm_event/models/event_type.py +++ b/crm_event/models/event_type.py @@ -47,7 +47,6 @@ def _events_domain(self): # events when clicking on it, so it seems more user-friendly to # include these events, even if they finished earlier today. ("date_end", ">=", fields.Date.today()), - ("state", "!=", "cancel"), ] def _compute_event_totals(self): @@ -56,7 +55,7 @@ def _compute_event_totals(self): types_with_unlimited_seats = ( self.env["event.event"] .search( - domain + [("seats_availability", "=", "unlimited")], + domain + [("seats_limited", "=", False)], ) .mapped("event_type_id") ) @@ -65,17 +64,12 @@ def _compute_event_totals(self): fields=["seats_available"], groupby=["event_type_id"], ) - translated_unlimited = dict( - self.env["event.event"].fields_get(["seats_availability"])[ - "seats_availability" - ]["selection"] - )["unlimited"] totals = {group["event_type_id"][0]: group for group in results} for one in self: totals_item = totals.get(one.id, {}) event_count = totals_item.get("event_type_id_count", 0) seats_sum = ( - translated_unlimited + _("Unlimited") if one in types_with_unlimited_seats else totals_item.get("seats_available", "0") ) diff --git a/crm_event/readme/CONTRIBUTORS.rst b/crm_event/readme/CONTRIBUTORS.rst index 7ee45dc9b..7de327916 100644 --- a/crm_event/readme/CONTRIBUTORS.rst +++ b/crm_event/readme/CONTRIBUTORS.rst @@ -1 +1,4 @@ -* Jairo Llopis (https://www.tecnativa.com/) +* `Tecnativa `__: + + * Jairo Llopis + * Stefan Ungureanu diff --git a/crm_event/reports/event_type_report.py b/crm_event/reports/event_type_report.py index 32eb29461..786d1ec7d 100644 --- a/crm_event/reports/event_type_report.py +++ b/crm_event/reports/event_type_report.py @@ -48,8 +48,8 @@ def _select(self, fields_=()): ("events_available_count", "COUNT(ee.*)"), ( "event_seats_availability", - """CASE WHEN 'unlimited' = ANY(ARRAY_AGG(seats_availability)) - THEN 'unlimited' ELSE 'limited' END""", + """CASE WHEN ee.seats_limited + THEN 'limited' ELSE 'unlimited' END""", ), ("seats_limited_available", "COALESCE(SUM(ee.seats_available), 0)"), ("open_opportunities_count", "et.open_opportunities_count"), @@ -80,10 +80,7 @@ def _where(self, clauses=()): Arguments: clauses: `("mt.field >= 10 OR mt.field < 0", ...)` """ - clauses += ( - "ee.state IS NULL OR ee.state != 'cancel'", - "ee.date_end IS NULL OR ee.date_end >= CURRENT_DATE", - ) + clauses += ("ee.date_end IS NULL OR ee.date_end >= CURRENT_DATE",) result = sql.Composed(map(sql.SQL, clauses)).join(" AND ") return result @@ -93,7 +90,7 @@ def _groupby(self, clauses=()): Arguments: clauses: `("mt.field", ...)` """ - clauses += ("et.id",) + clauses += ("et.id", "ee.seats_limited") result = sql.Composed(map(sql.SQL, clauses)).join(", ") return result diff --git a/crm_event/tests/test_event_type.py b/crm_event/tests/test_event_type.py index 8e628f3a8..3581010bd 100644 --- a/crm_event/tests/test_event_type.py +++ b/crm_event/tests/test_event_type.py @@ -3,10 +3,10 @@ from datetime import datetime, timedelta -from odoo.tests.common import SavepointCase +from odoo.tests.common import TransactionCase -class CrmEventCase(SavepointCase): +class CrmEventCase(TransactionCase): @classmethod def setUpClass(cls): super().setUpClass() @@ -21,7 +21,7 @@ def setUpClass(cls): "date_begin": datetime.now() - timedelta(days=1), "date_end": datetime.now() - timedelta(minutes=1), "name": "Today's past event", - "seats_availability": "limited", + "seats_limited": True, "seats_max": 1, }, { @@ -29,7 +29,7 @@ def setUpClass(cls): "date_begin": datetime.now() - timedelta(days=2), "date_end": datetime.now() - timedelta(days=1), "name": "Yesterday's past event", - "seats_availability": "limited", + "seats_limited": True, "seats_max": 10, }, { @@ -37,7 +37,7 @@ def setUpClass(cls): "date_begin": datetime.now() - timedelta(days=1), "date_end": datetime.now() + timedelta(days=1), "name": "Present event", - "seats_availability": "limited", + "seats_limited": True, "seats_max": 100, }, { @@ -45,7 +45,7 @@ def setUpClass(cls): "date_begin": datetime.now() + timedelta(days=1), "date_end": datetime.now() + timedelta(days=2), "name": "Future event", - "seats_availability": "limited", + "seats_limited": True, "seats_max": 1000, }, ] @@ -55,7 +55,7 @@ def setUpClass(cls): cls.b_events = cls.env["event.event"] for event in cls.a_events: cls.b_events |= event.copy({"event_type_id": cls.type_b.id}) - cls.b_events[0].seats_availability = "unlimited" + cls.b_events[0].seats_limited = False # Leads and opportunities test data cls.opportunities = cls.env["crm.lead"].create( [ diff --git a/crm_event/views/crm_lead_view.xml b/crm_event/views/crm_lead_view.xml index 7cda3ee0a..cec5edbc4 100644 --- a/crm_event/views/crm_lead_view.xml +++ b/crm_event/views/crm_lead_view.xml @@ -32,7 +32,7 @@
- +