From 8c4ce772e7b90dfdffbad6435abc505c68e537fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Wed, 2 Dec 2020 09:23:09 +0000 Subject: [PATCH 1/9] [ADD] website_event_exhibitor: add a module to handle sponsors and (online) exhibitors RATIONALE Events often have sponsors displayed on their front page. This should be a real standalone feature of Online Event application. However currently it cannot be used without tracks managements PURPOSE Purpose of this task is to allow to use and display sponsors on an Event front page without using tracks. Moreover online and chat capabilities should be part of a sponsor feature, located within website_event_exhibitor module. SPECIFICATIONS Create a void module ``website_event_exhibitor`` that will soon host * sponsor model from ``website_event_track``; * all exhibitor feature from ``website_event_track_exhibitor``; * without any dependency on tracks; When installing website_event_exhibitor people will gain access to all features related to sponsoring, from the simple cards to a complete jitsi-based chat capability on frontend. LINKS Task ID-2326433 COM PR #61781 ENT pr odoo/enterprise#14752 UPG PR odoo/upgrade#1931 --- addons/website_event_exhibitor/__init__.py | 2 ++ .../website_event_exhibitor/__manifest__.py | 23 +++++++++++++++++++ 2 files changed, 25 insertions(+) create mode 100644 addons/website_event_exhibitor/__init__.py create mode 100644 addons/website_event_exhibitor/__manifest__.py diff --git a/addons/website_event_exhibitor/__init__.py b/addons/website_event_exhibitor/__init__.py new file mode 100644 index 00000000000..67dee8c60db --- /dev/null +++ b/addons/website_event_exhibitor/__init__.py @@ -0,0 +1,2 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. diff --git a/addons/website_event_exhibitor/__manifest__.py b/addons/website_event_exhibitor/__manifest__.py new file mode 100644 index 00000000000..da32161e2d6 --- /dev/null +++ b/addons/website_event_exhibitor/__manifest__.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + + +{ + 'name': 'Event Exhibitors', + 'category': 'Marketing/Events', + 'sequence': 1004, + 'version': '1.0', + 'summary': 'Event: manage sponsors and exhibitors', + 'website': 'https://www.odoo.com/page/events', + 'description': "", + 'depends': [ + 'website_event', + 'website_jitsi', + ], + 'data': [ + ], + 'demo': [ + ], + 'application': False, + 'installable': True, +} From f3356904b6698d7a305eca7b422f317627a6dad6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Mon, 16 Nov 2020 12:37:08 +0000 Subject: [PATCH 2/9] [MOV] website_event(_track/exhibitor): move sponsor model directly into Online Exhibitors RATIONALE Events often have sponsors displayed on their front page. This should be a real standalone feature of Online Event application. However currently it cannot be used without tracks managements PURPOSE Purpose of this task is to allow to use and display sponsors on an Event front page without using tracks. Moreover online and chat capabilities should be part of a sponsor feature, located within website_event_exhibitor module. SPECIFICATIONS Move everything related to event.sponsor model from website_event_track to website_event_exhibitor. Functionally feature should be the same as before except that we should be able to configure and display sponsors directly with website_event_exhibitor application without using tracks. Website_event_exhibitor should also define the sponsor template used to display sponsors below an event. LINKS Task ID-2326433 COM PR odoo/odoo#61781 ENT pr odoo/enterprise#14752 UPG PR odoo/upgrade#1931 --- addons/test_event_full/__manifest__.py | 1 + .../src/scss/website_event_templates.scss | 151 ++++++++++++++++++ addons/website_event/tests/common.py | 1 + .../views/event_templates_page.xml | 2 +- addons/website_event_exhibitor/__init__.py | 2 + .../website_event_exhibitor/__manifest__.py | 7 + .../data/event_sponsor_data.xml | 20 +++ .../data/event_sponsor_demo.xml | 0 .../models/__init__.py | 6 + .../models/event_event.py | 18 +++ .../models/event_sponsor.py | 2 +- .../models/event_sponsor_type.py | 0 .../security/ir.model.access.csv | 5 + .../src/img/event_sponsor_default_0.jpeg | Bin .../website_event_exhibitor/tests/__init__.py | 128 +++++++++++++++ .../tests/common.py | 5 +- .../views/event_event_views.xml | 32 ++++ .../views/event_menus.xml | 11 ++ .../views/event_sponsor_views.xml | 5 +- .../views/event_templates_sponsor.xml} | 18 --- addons/website_event_track/__manifest__.py | 4 +- .../data/event_track_data.xml | 16 -- addons/website_event_track/models/__init__.py | 2 - .../website_event_track/models/event_event.py | 8 - .../security/ir.model.access.csv | 4 - .../static/src/css/website_event_track.css | 82 ---------- .../src/scss/event_track_templates.scss | 59 ------- addons/website_event_track/tests/__init__.py | 1 - .../tests/test_track_internals.py | 4 +- addons/website_event_track/views/assets.xml | 1 - .../views/event_event_views.xml | 7 - .../website_event_track/views/event_menus.xml | 7 - .../views/mail_templates.xml | 16 ++ .../data/event_sponsor_demo.xml | 20 +-- .../security/security.xml | 2 +- .../tests/test_sponsor_internals.py | 4 +- .../views/event_sponsor_views.xml | 19 +-- 37 files changed, 427 insertions(+), 243 deletions(-) create mode 100644 addons/website_event_exhibitor/data/event_sponsor_data.xml rename addons/{website_event_track => website_event_exhibitor}/data/event_sponsor_demo.xml (100%) create mode 100644 addons/website_event_exhibitor/models/__init__.py create mode 100644 addons/website_event_exhibitor/models/event_event.py rename addons/{website_event_track => website_event_exhibitor}/models/event_sponsor.py (97%) rename addons/{website_event_track => website_event_exhibitor}/models/event_sponsor_type.py (100%) create mode 100644 addons/website_event_exhibitor/security/ir.model.access.csv rename addons/{website_event_track => website_event_exhibitor}/static/src/img/event_sponsor_default_0.jpeg (100%) create mode 100644 addons/website_event_exhibitor/tests/__init__.py rename addons/{website_event_track => website_event_exhibitor}/tests/common.py (85%) create mode 100644 addons/website_event_exhibitor/views/event_event_views.xml create mode 100644 addons/website_event_exhibitor/views/event_menus.xml rename addons/{website_event_track => website_event_exhibitor}/views/event_sponsor_views.xml (97%) rename addons/{website_event_track/views/event_track_templates_misc.xml => website_event_exhibitor/views/event_templates_sponsor.xml} (69%) delete mode 100644 addons/website_event_track/static/src/css/website_event_track.css create mode 100644 addons/website_event_track/views/mail_templates.xml diff --git a/addons/test_event_full/__manifest__.py b/addons/test_event_full/__manifest__.py index 8423fc06d7f..9f799f3ca30 100644 --- a/addons/test_event_full/__manifest__.py +++ b/addons/test_event_full/__manifest__.py @@ -15,6 +15,7 @@ automatic lead generation, full Online support, ... 'event_crm', 'event_sale', 'website_event_crm_questions', + 'website_event_exhibitor', 'website_event_questions', 'website_event_questions', 'website_event_meet', diff --git a/addons/website_event/static/src/scss/website_event_templates.scss b/addons/website_event/static/src/scss/website_event_templates.scss index 49a9f8aeab9..e33572a9fb0 100644 --- a/addons/website_event/static/src/scss/website_event_templates.scss +++ b/addons/website_event/static/src/scss/website_event_templates.scss @@ -158,4 +158,155 @@ } } } + + /* + * EVENT PAGE VIEW + */ + + .o_wevent_event .event_color_0 { + background-color: white; + color: #5a5a5a; + } + .o_wevent_event .event_color_1 { + background-color: #cccccc; + color: #424242; + } + .o_wevent_event .event_color_2 { + background-color: #ffc7c7; + color: #7a3737; + } + .o_wevent_event .event_color_3 { + background-color: #fff1c7; + color: #756832; + } + .o_wevent_event .event_color_4 { + background-color: #e3ffc7; + color: #5d6937; + } + .o_wevent_event .event_color_5 { + background-color: #c7ffd5; + color: #1a7759; + } + .o_wevent_event .event_color_6 { + background-color: #c7ffff; + color: #1a5d83; + } + .o_wevent_event .event_color_7 { + background-color: #c7d5ff; + color: #3b3e75; + } + .o_wevent_event .event_color_8 { + background-color: #e3c7ff; + color: #4c3668; + } + .o_wevent_event .event_color_9 { + background-color: #ffc7f1; + color: #6d2c70; + } + + /* + * SPONSORS + */ + + // small hack to hide sponsors on specific views + .o_wevent_hide_sponsors .container.mt32.mb16.d-none.d-md-block.d-print-none { + // Not a very accurate way to target the 'sponsors' block -> improve in master + display: none !important; + } + + .o_wevent_event .o_wevent_sponsor { + position: relative; + display: inline-block; + overflow: hidden; + } + + .o_wevent_event .o_ribbon { + font: 12px Sans-Serif; + color: #404040; + padding-top: 2px; + padding-bottom: 2px; + -webkit-box-shadow: 0px 0px 3px rgba(0, 0, 0, 0.3); + -moz-box-shadow: 0px 0px 3px rgba(0, 0, 0, 0.3); + box-shadow: 0px 0px 3px rgba(0, 0, 0, 0.3); + } + + .o_wevent_event .ribbon_Gold { + background-color: #FDE21B; + background-image: -webkit-gradient(linear, left top, left bottom, from(#E9CE0C), to(#FDE21B)); + background-image: -webkit-linear-gradient(top, #E9CE0C, #FDE21B); + background-image: -moz-linear-gradient(top, #E9CE0C, #FDE21B); + background-image: -ms-linear-gradient(top, #E9CE0C, #FDE21B); + background-image: -o-linear-gradient(top, #E9CE0C, #FDE21B); + } + + .o_wevent_event .ribbon_Silver { + background-color: #CCCCCC; + background-image: -webkit-gradient(linear, left top, left bottom, from(#BBBBBB), to(#CCCCCC)); + background-image: -webkit-linear-gradient(top, #BBBBBB, #CCCCCC); + background-image: -moz-linear-gradient(top, #BBBBBB, #CCCCCC); + background-image: -ms-linear-gradient(top, #BBBBBB, #CCCCCC); + background-image: -o-linear-gradient(top, #BBBBBB, #CCCCCC); + } + + .o_wevent_event .ribbon_Bronze { + background-color: #DB9141; + background-image: -webkit-gradient(linear, left top, left bottom, from(#C2792A), to(#DB9141)); + background-image: -webkit-linear-gradient(top, #C2792A, #DB9141); + background-image: -moz-linear-gradient(top, #C2792A, #DB9141); + background-image: -ms-linear-gradient(top, #C2792A, #DB9141); + background-image: -o-linear-gradient(top, #C2792A, #DB9141); + } + + /* + * EVENT TOOL: SPONSOR WIDGET + */ + .o_wevent_event .o_wevent_sponsor_card { + position: relative; + width: 100px; + height: 100px; + border: 1px solid $gray-200; + background-color: $white; + margin: 0 -1px -1px 0; + + .ribbon-wrapper { + width: 50px; + height: 50px; + } + + .ribbon { + font: bold 10px Sans-Serif; + padding: 2px 0; + top: 10px; + width: 70px; + background-image: none; // not needed if colors for ribbons (Gold,Silver,Bronze) is removed in website_event_track.css + + &.ribbon_Gold { + background-color: #e3aa24; + color:$white; + } + + &.ribbon_Silver { + background-color: #adb5bd; + color: $white; + } + + &.ribbon_Bronze { + background-color: #c7632a; + color: $white; + } + } + + &:before { + content: ""; + display: block; + @include o-position-absolute(0,0,0,0); + background-color: $black; + opacity: 0; + transition: opacity .3s; + } + + &:hover:before { + opacity:.1; + } + } } diff --git a/addons/website_event/tests/common.py b/addons/website_event/tests/common.py index a3bf2e87a30..fc20210549e 100644 --- a/addons/website_event/tests/common.py +++ b/addons/website_event/tests/common.py @@ -16,6 +16,7 @@ class EventDtPatcher(TransactionCase): def setUpClass(cls): super(EventDtPatcher, cls).setUpClass() + # Mock dates to have reproducible computed fields based on time cls.reference_now = datetime(2020, 7, 6, 10, 0, 0) cls.reference_today = datetime(2020, 7, 6) diff --git a/addons/website_event/views/event_templates_page.xml b/addons/website_event/views/event_templates_page.xml index 9e44f171fad..b3bf1937482 100644 --- a/addons/website_event/views/event_templates_page.xml +++ b/addons/website_event/views/event_templates_page.xml @@ -6,7 +6,7 @@ -
+