diff --git a/addons/crm/__init__.py b/addons/crm/__init__.py index 23dc489f427..d4866d9a9ba 100644 --- a/addons/crm/__init__.py +++ b/addons/crm/__init__.py @@ -29,3 +29,4 @@ import wizard import res_partner import res_config import base_partner_merge +import web_planner diff --git a/addons/crm/__openerp__.py b/addons/crm/__openerp__.py index c6013764022..b737d316cf7 100644 --- a/addons/crm/__openerp__.py +++ b/addons/crm/__openerp__.py @@ -96,6 +96,7 @@ Dashboard for CRM will include: 'sales_team_view.xml', 'views/crm.xml', + 'web_planner_data.xml', ], 'demo': [ 'crm_demo.xml', diff --git a/addons/planner_crm/static/src/js/planner_crm.js b/addons/crm/static/src/js/web_planner_crm.js similarity index 98% rename from addons/planner_crm/static/src/js/planner_crm.js rename to addons/crm/static/src/js/web_planner_crm.js index e03f726ce3c..0af294e89fa 100644 --- a/addons/planner_crm/static/src/js/planner_crm.js +++ b/addons/crm/static/src/js/web_planner_crm.js @@ -1,7 +1,7 @@ odoo.define('planner_crm.planner', function (require) { "use strict"; -var planner = require('planner.planner'); +var planner = require('web.planner'); planner.PlannerDialog.include({ prepare_planner_event: function() { diff --git a/addons/crm/static/src/less/web_planner_crm.less b/addons/crm/static/src/less/web_planner_crm.less new file mode 100644 index 00000000000..746ff4db5fd --- /dev/null +++ b/addons/crm/static/src/less/web_planner_crm.less @@ -0,0 +1,91 @@ + +#PlannerModal { + + #planner_page2, #planner_page3 { + textarea{ + width: 100%; + max-width: 100%; + } + } + #planner_page4 { + textarea { + width: 58%; + max-width: 58%; + } + } + #planner_page5, #planner_page7, #planner_page8, #planner_page10, #planner_page11 { + .container-fluid { + .col-xs-12 { + padding: 5px; + &:first-child { + padding-left: 0; + } + &:last-child { + padding-right: 0; + } + } + } + } + #planner_page11 { + .container-fluid { + .col-xs-12 .panel-heading { + min-height: 200px; + padding: 0; + font-size: 1.1em; + color: #407241; + a { + display: block; + padding: 20px; + height: 100%; + width: 100%; + position: absolute; + padding-top: 40px; + padding-left: 10px; + } + } + } + } +} + +// XS size +@media screen and (max-width: 768px) { + #PlannerModal .pages { + margin-top: 0px; + } + #PlannerModal .counter { + padding: 6px 0 0 5px; + } +} + +// SM size +@media screen and (min-width: 769px) { + #PlannerModal .paragraphs { + div.col-md-10 { + margin-top:1em; + } + .icon { + text-align: center; + font-size: 2em; + margin: 1em auto .5em; + } + span { + transform: translateX(-8px); + position: relative; + display: block; + } + } +} + +// MD size +@media screen and (min-width: 992px) { + #PlannerModal .paragraphs .icon { + text-align: center; + font-size: 4em; + margin: 0.3em auto .5em; + span{ + transform: translateX(0px); + position: relative; + display: block; + } + } +} diff --git a/addons/crm/views/crm.xml b/addons/crm/views/crm.xml index bdff3333846..ab9f7b301bf 100644 --- a/addons/crm/views/crm.xml +++ b/addons/crm/views/crm.xml @@ -6,5 +6,11 @@ + diff --git a/addons/planner_crm/models/planner_crm.py b/addons/crm/web_planner.py similarity index 73% rename from addons/planner_crm/models/planner_crm.py rename to addons/crm/web_planner.py index c6aa575a292..a01c7c7c5bc 100644 --- a/addons/planner_crm/models/planner_crm.py +++ b/addons/crm/web_planner.py @@ -4,7 +4,7 @@ from openerp import api, models class PlannerCrm(models.Model): - _inherit = 'planner.planner' + _inherit = 'web.planner' @api.model def _get_planner_application(self): @@ -15,11 +15,8 @@ class PlannerCrm(models.Model): @api.model def _prepare_planner_crm_data(self): sales_team = self.env.ref('sales_team.team_sales_department') - company_data = self.env['res.users'].browse(self._uid).company_id values = { - 'prepare_backend_url': self.prepare_backend_url, 'alias_domain': sales_team.alias_domain, 'alias_name': sales_team.alias_name, - 'company_data': company_data, } return values diff --git a/addons/planner_crm/data/planner_data.xml b/addons/crm/web_planner_data.xml similarity index 95% rename from addons/planner_crm/data/planner_data.xml rename to addons/crm/web_planner_data.xml index d96e7f4c49b..186a066c667 100644 --- a/addons/planner_crm/data/planner_data.xml +++ b/addons/crm/web_planner_data.xml @@ -95,7 +95,7 @@ Welcome -

Goals

+

Goals

  • Your Expectations @@ -106,7 +106,7 @@ Your KPIs
  • -

    Sale Flow

    +

    Sale Flow

  • Your Pipeline @@ -127,13 +127,13 @@ Import Products
  • -

    Lead acquisition

    +

    Lead acquisition

  • Incoming Emails
  • -

    Deployment

    +

    Deployment

  • Reporting @@ -144,7 +144,7 @@ Your Users
  • -

    Grow Revenues

    +

    Grow Revenues

  • Weekly Meeting @@ -166,38 +166,38 @@
    -
    -

    Welcome.

    -

    - Congratulations on taking the leap to boost your sales - activities! -

    - Odoo CRM will help you handle your sales funnel, bringing - your sales vision to life in a simple and seamless way. -

    - Configuring Odoo CRM is easy. But you'll have bigger - challenges like; structuring your sales process, building - sales tools and training your teams. That's why we developed - this tool. We want you to succeed boosting your sales - performance. -

    - If you get stuck, get in touch with our CRM experts, using - the "Help" button on the top menu. Every Odoo Enterprise - customer benefit from an unlimited support, don't hesitate - to abuse it. We are here to help you. -

    -

    - We wish you a fun time, -

    - -
    - -
    - For the Odoo Team,
    - Fabien Pinckaers, Founder -
    +
    +

    Welcome.

    +

    + Congratulations on taking the leap to boost your sales + activities! +

    + Odoo CRM will help you handle your sales funnel, bringing + your sales vision to life in a simple and seamless way. +

    + Configuring Odoo CRM is easy. But you'll have bigger + challenges like; structuring your sales process, building + sales tools and training your teams. That's why we developed + this tool. We want you to succeed boosting your sales + performance. +

    + If you get stuck, get in touch with our CRM experts, using + the "Help" button on the top menu. Every Odoo Enterprise + customer benefit from an unlimited support, don't hesitate + to abuse it. We are here to help you. +

    +

    + We wish you a fun time, +

    + +
    + +
    + For the Odoo Team,
    + Fabien Pinckaers, Founder +
    +
    -

    Your expectations

    @@ -207,14 +207,11 @@ of a successful implementation.

    -
    • -
      Sales objectives by priority:
      -
      @@ -255,7 +252,7 @@

      -
      +
      • @@ -296,7 +293,7 @@ performance.

        -
        +
        • @@ -376,7 +373,6 @@ -
          -
          +

          You don't need to review lost opportunities at every sales meeting, but it's good practice to do it at least once a month. Ask your team to set tags on opportunities to @@ -957,9 +953,6 @@ class="btn odoo_purple btn_install"> Install Live Chat

          - -
          -

          Survey

          @@ -968,9 +961,7 @@ class="btn odoo_purple btn_install"> Install Surveys
          - -

          Website Builder

          @@ -979,9 +970,6 @@ class="btn odoo_purple btn_install"> Install Website Builder
          - -
          -

          Events

          @@ -990,7 +978,7 @@ class="btn odoo_purple btn_install"> Install Events
          -
          +

          e-Commerce

          Boost your online sales with sleek product pages.

          @@ -998,6 +986,7 @@ class="btn odoo_purple btn_install"> Install e-Commerce
          +
          @@ -1005,12 +994,12 @@

          -

          Congratulations, you're done !

          -

          We hope this process helped you improve your sales strategy.

          -

          Don't hesitate to send us an email to describe
          your experience or to suggest improvements !

          +

          Congratulations, you're done !

          +

          We hope this process helped you improve your sales strategy.

          +

          Don't hesitate to send us an email to describe
          your experience or to suggest improvements !

          -

          Happy Selling!
          - The Odoo Team

          - +

          Happy Selling!
          - The Odoo Team

          +

          @@ -1018,11 +1007,10 @@ - + Sales strategy planner - 5 planner_crm ). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# -############################################################################## - -import models diff --git a/addons/planner_crm/__openerp__.py b/addons/planner_crm/__openerp__.py deleted file mode 100644 index b2da88c2702..00000000000 --- a/addons/planner_crm/__openerp__.py +++ /dev/null @@ -1,16 +0,0 @@ -# -*- coding: utf-8 -*- -{ - 'name': 'CRM Planner', - 'summary': 'Help to configure application', - 'version': '1.0', - 'category': 'Planner', - 'description': """Plan your sales strategy: objectives, leads, KPIs, and much more!""", - 'author': 'Odoo SA', - 'depends': ['planner', 'crm'], - 'data': [ - 'data/planner_data.xml', - 'views/planner_crm.xml' - ], - 'installable': True, - 'auto_install': True, -} diff --git a/addons/planner_crm/models/__init__.py b/addons/planner_crm/models/__init__.py deleted file mode 100644 index 681bf7b19e5..00000000000 --- a/addons/planner_crm/models/__init__.py +++ /dev/null @@ -1,3 +0,0 @@ -# -*- coding: utf-8 -*- - -import planner_crm diff --git a/addons/planner_crm/static/description/icon.png b/addons/planner_crm/static/description/icon.png deleted file mode 100644 index 7553379d45d..00000000000 Binary files a/addons/planner_crm/static/description/icon.png and /dev/null differ diff --git a/addons/planner_crm/static/src/img/linkedin.png b/addons/planner_crm/static/src/img/linkedin.png deleted file mode 100644 index a4f7f8c67c7..00000000000 Binary files a/addons/planner_crm/static/src/img/linkedin.png and /dev/null differ diff --git a/addons/planner_crm/static/src/less/planner_crm.less b/addons/planner_crm/static/src/less/planner_crm.less deleted file mode 100644 index 3584778cecf..00000000000 --- a/addons/planner_crm/static/src/less/planner_crm.less +++ /dev/null @@ -1,301 +0,0 @@ - -#PlannerModal { - - font-family: "Lato", serif; - - .flip { - -moz-transform: scaleX(-1); - -o-transform: scaleX(-1); - -webkit-transform: scaleX(-1); - transform: scaleX(-1); - filter: FlipH; - -ms-filter: "FlipH"; - } - .relative { - position: relative; - } - - // PARAGRAPHS - .paragraphs .icon { - text-align: center; - font-size: 2em; - margin: 1em auto .5em; - color: #21b799; - } - - //NOTEBOOK - .notebook-container { - margin: 20px 0; - } - .notebook { - color: #555; - font-size: 22px; - padding: 0 !important; - width: 100%; - font-family: courier, monospace; - border: 1px solid #faebcc; - margin: 0; - color: #8a6d3b; - position: relative; - z-index: 1; - background-color: #fcf8e3; - - textarea,input { - background: #fcf8e3; - border: none; - /* min-width: 90%; - max-width: 90%; */ - font-size: 15px; - line-height: 17px; - } - > li { - list-style: none; - border-bottom: 1px dashed #C1D6DA; - height: auto; - padding: 10px 10px 5px 55px; - text-transform: capitalize; - margin: 0; - span { - position: absolute; - left: 9px; - color: rgb(199, 180, 146); - font-size: 20px; - font-weight: bold; - } - } - > li:last-child { border-bottom: 0;} - - li.header { - h5{padding-left: 0px} - div.dropdown { display: inline;float:right; } - span {position: relative; left: 0;} - a { - color: #C4A87A; - position: absolute; - top: 13px; - right: 13px; - &:hover { - text-decoration: none; - color: #9C855D; - } - } - select { - margin-top: 10px; - margin-bottom: 10px; - width: 100%; - max-width: 80%; - font-family: sans-serif; - font-size: 17px; - color: #8A6D3B; - border: none; - background: #F5E7CF; - } - - .help{ - font-size: 14px; - color: rgb(126, 95, 41); - background: #fcf8e3; - background: -moz-linear-gradient(top, #fcf8e3 0%, #FFF8D7 100%); - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#fcf8e3), color-stop(100%,#FFF8D7)); - background: -webkit-linear-gradient(top, #fcf8e3 0%,#FFF8D7 100%); - background: -o-linear-gradient(top, #fcf8e3 0%,#FFF8D7 100%); - background: -ms-linear-gradient(top, #fcf8e3 0%,#FFF8D7 100%); - background: linear-gradient(to bottom, #fcf8e3 0%,#FFF8D7 100%); - filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#fcf8e3', endColorstr='#FFF8D7',GradientType=0 ); - padding: 0 1em; - margin: 0; - border: none; - z-index: 10; - position: relative; - box-shadow: inset 0 10px 10px -9px #A89E64; - margin: 0px -10px 0px -55px; - - h5 {padding: 14px 0 0; text-indent:0; display: inline-block;} - ul { padding: 0 20px 20px 50px;} - li {text-indent: 0; font-style: italic;} - } - } - > li:not(.header):hover { - background-color: #F5EFD0; - -webkit-transition: all 0.2s; - -moz-transition: all 0.2s; - -ms-transition: all 0.2s; - -o-transition: all 0.2s; - } - .lines { - border-left: 1px solid #ffaa9f; - border-right: 1px solid #ffaa9f; - background: transparent; - position: absolute; - width: 3px; - height: 100%; - top: 0; - left: 42px; - border-bottom: 0; - border-top: 0; - } - } - - .notebook.columns { - li.header{ - padding: 10px 10px 5px 55px; - h5{padding: 0} - } - textarea,input { - vertical-align: top; - margin-bottom: 1em; - } - } - - .notebook-container:after { - content: ""; - display: block; - width: 94%; - left: 20px; - background: transparent; - height: 100%; - position: absolute; - bottom: -5px; - z-index: 0; - background-color: #fcf8e3; - border: 1px solid #faebcc; - } - - .info_icon{ - position: relative; - padding-left: 5em; - overflow: hidden; - min-height: 6em; - span.fa{ - position: absolute; - font-size: 5em; - top: 0.2em; - left: 0.2em; - opacity: 0.6; - color: white; - } - } - - .alert-info.info_icon span.fa { color: #8ABCD4; } - - .arrow-down { - width: 0; - height: 0; - border-left: 30px solid transparent; - border-right: 30px solid transparent; - border-top: 15px solid #D6D6D6; - position: absolute; - margin-left: -30px; - bottom: -15px; - } - - #planner_page1 { - h1 {margin-bottom: 20px;} - mb32 { - margin-bottom: 32px; - } - mb8 { - margin-bottom: 8px; - } - } - #planner_page2,#planner_page3 { - textarea{ - width: 100%; - max-width: 100%; - } - } - #planner_page4 { - textarea { - width: 58%; - max-width: 58%; - } - } - #planner_page5, #planner_page7, #planner_page8, #planner_page10, #planner_page11 { - .container-fluid { - .col-xs-12 { - padding: 5px; - &:first-child { - padding-left: 0; - } - &:last-child { - padding-right: 0; - } - } - } - } - #planner_page11 { - .container-fluid { - .col-xs-12 .panel-heading { - min-height: 200px; - padding: 0; - font-size: 1.1em; - color: #407241; - a { - display: block; - padding: 20px; - height: 100%; - width: 100%; - position: absolute; - padding-top: 40px; - padding-left: 10px; - } - } - } - } - #planner_page16 { - .trophy{ - font-size: 11em; - color: #A24689; - margin-top: .5em; - -webkit-animation-name: bounceIn; - animation-name: bounceIn; - -webkit-animation-duration: 1.75s; - animation-duration: 1.75s; - -webkit-animation-fill-mode: both; - animation-fill-mode: both; - } - } -} - -// XS size -@media screen and (max-width: 768px) { - #PlannerModal .pages { - margin-top: 0px; - } - #PlannerModal .counter { - padding: 6px 0 0 5px; - } -} - -// SM size -@media screen and (min-width: 769px) { - #PlannerModal .paragraphs { - div.col-md-10 { - margin-top:1em; - } - .icon { - text-align: center; - font-size: 2em; - margin: 1em auto .5em; - } - span { - transform: translateX(-8px); - position: relative; - display: block; - } - } -} - -// MD size -@media screen and (min-width: 992px) { - #PlannerModal .paragraphs .icon { - text-align: center; - font-size: 4em; - margin: 0.3em auto .5em; - span{ - transform: translateX(0px); - position: relative; - display: block; - } - } -} diff --git a/addons/planner_crm/views/planner_crm.xml b/addons/planner_crm/views/planner_crm.xml deleted file mode 100644 index 56c6beb89ac..00000000000 --- a/addons/planner_crm/views/planner_crm.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - diff --git a/addons/planner/__init__.py b/addons/web_planner/__init__.py similarity index 100% rename from addons/planner/__init__.py rename to addons/web_planner/__init__.py diff --git a/addons/planner/__openerp__.py b/addons/web_planner/__openerp__.py similarity index 66% rename from addons/planner/__openerp__.py rename to addons/web_planner/__openerp__.py index 2237c199ddf..76b3c08ef50 100644 --- a/addons/planner/__openerp__.py +++ b/addons/web_planner/__openerp__.py @@ -1,5 +1,4 @@ # -*- coding: utf-8 -*- - { 'name': 'Planner', 'category': 'Planner', @@ -10,10 +9,11 @@ 'depends': ['web'], 'data': [ 'security/ir.model.access.csv', - 'views/planner.xml', - 'security/planner_security.xml', + 'security/web_planner_security.xml', + 'views/web_planner_templates.xml', + 'views/web_planner_views.xml', ], - 'qweb': ['static/src/xml/planner.xml'], + 'qweb': ['static/src/xml/web_planner.xml'], 'installable': True, 'auto_install': True, } diff --git a/addons/planner/models/__init__.py b/addons/web_planner/models/__init__.py similarity index 55% rename from addons/planner/models/__init__.py rename to addons/web_planner/models/__init__.py index 6c6667d2bcf..c00c0203d52 100644 --- a/addons/planner/models/__init__.py +++ b/addons/web_planner/models/__init__.py @@ -1,2 +1,2 @@ # -*- coding: utf-8 -*- -import planner +import web_planner diff --git a/addons/planner/models/planner.py b/addons/web_planner/models/web_planner.py similarity index 84% rename from addons/planner/models/planner.py rename to addons/web_planner/models/web_planner.py index e81704550ef..8bab43b4382 100644 --- a/addons/planner/models/planner.py +++ b/addons/web_planner/models/web_planner.py @@ -13,7 +13,7 @@ class Planner(models.Model): generate the values used to display in specific planner pages """ - _name = 'planner.planner' + _name = 'web.planner' _description = 'Planner' @api.model @@ -24,10 +24,11 @@ class Planner(models.Model): menu_id = fields.Many2one('ir.ui.menu', string='Menu', required=True) view_id = fields.Many2one('ir.ui.view', string='Template', required=True) progress = fields.Integer(string="Progress Percentage", default=5) - # used to store the data filled by user in planner(JSON Data) + # data field is used to store the data filled by user in planner(JSON Data) data = fields.Text(string='Data') tooltip_planner = fields.Html(string='Planner Tooltips', translate=True) planner_application = fields.Selection('_get_planner_application', string='Planner Application', required=True) + active = fields.Boolean(string="Active", default=True, help="If the active field is set to False, it will allow you to hide the planner. This change requires a refreshing a your page.") @api.model def render(self, template_id, planner_app): @@ -42,7 +43,9 @@ class Planner(models.Model): @api.model def prepare_backend_url(self, action_xml_id, view_type='list', module_name=None): - """ prepare the backend url to the given action, or to the given module view. """ + """ prepare the backend url to the given action, or to the given module view. + :returns dict : the value used to render the planer template + """ action = self.env.ref(action_xml_id, False) url = "/web#view_type=%s&action=%s" % (view_type, action and action.id or '') if module_name: diff --git a/addons/web_planner/security/ir.model.access.csv b/addons/web_planner/security/ir.model.access.csv new file mode 100644 index 00000000000..a1d2254458e --- /dev/null +++ b/addons/web_planner/security/ir.model.access.csv @@ -0,0 +1,4 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_planner_emp,planner.planner.emp,model_web_planner,base.group_user,1,1,0,0 +access_planner_manager,planner.planner.manager,model_web_planner,base.group_erp_manager,1,1,1,1 +access_planner_portal,planner.planner.portal,model_web_planner,base.group_portal,1,0,0,0 \ No newline at end of file diff --git a/addons/planner/security/planner_security.xml b/addons/web_planner/security/web_planner_security.xml similarity index 77% rename from addons/planner/security/planner_security.xml rename to addons/web_planner/security/web_planner_security.xml index 7fb8a355b6e..e4bea53fde6 100644 --- a/addons/planner/security/planner_security.xml +++ b/addons/web_planner/security/web_planner_security.xml @@ -1,9 +1,9 @@ - + Portal Planner - + [('planner_application', '=', 'portal')] diff --git a/addons/planner/static/description/icon.png b/addons/web_planner/static/description/icon.png similarity index 100% rename from addons/planner/static/description/icon.png rename to addons/web_planner/static/description/icon.png diff --git a/addons/planner/static/src/fonts/Simple-Line-Icons.dev.svg b/addons/web_planner/static/src/fonts/Simple-Line-Icons.dev.svg similarity index 100% rename from addons/planner/static/src/fonts/Simple-Line-Icons.dev.svg rename to addons/web_planner/static/src/fonts/Simple-Line-Icons.dev.svg diff --git a/addons/planner/static/src/fonts/Simple-Line-Icons.eot b/addons/web_planner/static/src/fonts/Simple-Line-Icons.eot similarity index 100% rename from addons/planner/static/src/fonts/Simple-Line-Icons.eot rename to addons/web_planner/static/src/fonts/Simple-Line-Icons.eot diff --git a/addons/planner/static/src/fonts/Simple-Line-Icons.svg b/addons/web_planner/static/src/fonts/Simple-Line-Icons.svg similarity index 100% rename from addons/planner/static/src/fonts/Simple-Line-Icons.svg rename to addons/web_planner/static/src/fonts/Simple-Line-Icons.svg diff --git a/addons/planner/static/src/fonts/Simple-Line-Icons.ttf b/addons/web_planner/static/src/fonts/Simple-Line-Icons.ttf similarity index 100% rename from addons/planner/static/src/fonts/Simple-Line-Icons.ttf rename to addons/web_planner/static/src/fonts/Simple-Line-Icons.ttf diff --git a/addons/planner/static/src/fonts/Simple-Line-Icons.woff b/addons/web_planner/static/src/fonts/Simple-Line-Icons.woff similarity index 100% rename from addons/planner/static/src/fonts/Simple-Line-Icons.woff rename to addons/web_planner/static/src/fonts/Simple-Line-Icons.woff diff --git a/addons/planner/static/src/img/fabien_pinckaers.jpg b/addons/web_planner/static/src/img/fabien_pinckaers.jpg similarity index 100% rename from addons/planner/static/src/img/fabien_pinckaers.jpg rename to addons/web_planner/static/src/img/fabien_pinckaers.jpg diff --git a/addons/planner/static/src/img/fabien_signature.png b/addons/web_planner/static/src/img/fabien_signature.png similarity index 100% rename from addons/planner/static/src/img/fabien_signature.png rename to addons/web_planner/static/src/img/fabien_signature.png diff --git a/addons/planner/static/src/img/odoo_logo.png b/addons/web_planner/static/src/img/odoo_logo.png similarity index 100% rename from addons/planner/static/src/img/odoo_logo.png rename to addons/web_planner/static/src/img/odoo_logo.png diff --git a/addons/planner/static/src/img/shadow.png b/addons/web_planner/static/src/img/shadow.png similarity index 100% rename from addons/planner/static/src/img/shadow.png rename to addons/web_planner/static/src/img/shadow.png diff --git a/addons/planner/static/src/js/planner.js b/addons/web_planner/static/src/js/web_planner.js similarity index 96% rename from addons/planner/static/src/js/planner.js rename to addons/web_planner/static/src/js/web_planner.js index 8d6b30ba85a..505d42f7680 100644 --- a/addons/planner/static/src/js/planner.js +++ b/addons/web_planner/static/src/js/web_planner.js @@ -1,4 +1,4 @@ -odoo.define('planner.planner', function (require) { +odoo.define('web.planner', function (require) { "use strict"; var core = require('web.core'); @@ -39,7 +39,7 @@ var PlannerLauncher = Widget.extend({ if (!_.isEmpty(this.planner_by_menu)) { def.resolve(self.planner_by_menu); }else{ - (new Model('planner.planner')).query().all().then(function(res) { + (new Model('web.planner')).query().all().then(function(res) { _.each(res, function(planner){ self.planner_by_menu[planner.menu_id[0]] = planner; self.planner_by_menu[planner.menu_id[0]].data = $.parseJSON(self.planner_by_menu[planner.menu_id[0]].data) || {}; @@ -135,7 +135,7 @@ var PlannerDialog = Widget.extend({ // ui _setup_view: function(){ var self = this; - return (new Model('planner.planner')).call('render', [self.planner.view_id[0], self.planner.planner_application]).then(function(res) { + return (new Model('web.planner')).call('render', [self.planner.view_id[0], self.planner.planner_application]).then(function(res) { self.$('.content_page').html(res); // add footer to each page self.add_pages_footer(); @@ -268,7 +268,7 @@ var PlannerDialog = Widget.extend({ this._save_planner_data(); }, _save_planner_data: function() { - return (new Model('planner.planner')).call('write', [this.planner.id, {'data': JSON.stringify(this.planner.data), 'progress': this.planner.progress}]); + return (new Model('web.planner')).call('write', [this.planner.id, {'data': JSON.stringify(this.planner.data), 'progress': this.planner.progress}]); }, // user actions mark_as_done: function(ev) { diff --git a/addons/planner/static/src/less/planner.less b/addons/web_planner/static/src/less/web_planner.less similarity index 70% rename from addons/planner/static/src/less/planner.less rename to addons/web_planner/static/src/less/web_planner.less index 19b9125f7bc..b1e257cf67d 100644 --- a/addons/planner/static/src/less/planner.less +++ b/addons/web_planner/static/src/less/web_planner.less @@ -2,11 +2,11 @@ @font-face { font-family: 'Simple-Line-Icons'; - src:url('/planner/static/src/fonts/Simple-Line-Icons.eot'); - src:url('/planner/static/src/fonts/Simple-Line-Icons.eot?#iefix') format('embedded-opentype'), - url('/planner/static/src/fonts/Simple-Line-Icons.woff') format('woff'), - url('/planner/static/src/fonts/Simple-Line-Icons.ttf') format('truetype'), - url('/planner/static/src/fonts/Simple-Line-Icons.svg#Simple-Line-Icons') format('svg'); + src:url('/web_planner/static/src/fonts/Simple-Line-Icons.eot'); + src:url('/web_planner/static/src/fonts/Simple-Line-Icons.eot?#iefix') format('embedded-opentype'), + url('/web_planner/static/src/fonts/Simple-Line-Icons.woff') format('woff'), + url('/web_planner/static/src/fonts/Simple-Line-Icons.ttf') format('truetype'), + url('/web_planner/static/src/fonts/Simple-Line-Icons.svg#Simple-Line-Icons') format('svg'); font-weight: normal; font-style: normal; } @@ -173,7 +173,6 @@ } } - #oe_main_menu_navbar.navbar { .oe_planner_systray { width: 100px; @@ -192,10 +191,11 @@ #PlannerModal { + font-family: "Lato", serif; + .planner-page{ display : none; } - .planner-dialog { width: 85%; font-family: "Lato", serif; @@ -206,8 +206,6 @@ //button close button.close { - width: 13px; - height: 30px; opacity: 1; line-height: 30px; font-size: 16px; @@ -241,11 +239,8 @@ } .odoo_purple, a.btn.odoo_purple { background-color: #A24689; - border:none; - text-shadow:none; color: white; } - .odoo_purple.btn:hover{ background: #a24689; color: #fff; @@ -262,7 +257,7 @@ right: 0; bottom: 0; .shadow { - background: url("/planner/static/src/img/shadow.png") center center repeat-x; + background: url("/web_planner/static/src/img/shadow.png") center center repeat-x; height: 12px; width: 100%; display: block; @@ -276,8 +271,6 @@ min-height: 60px; } button.fa-check-square-o { - background-color: transparent; - line-height: 0.8em; font-size: 2em; border: none; @@ -316,8 +309,6 @@ } .btn-next i { transform: translateY(1px); - position: relative; - display: inline-block; font-size: 1.3em; margin-left: 10px; } @@ -352,9 +343,6 @@ font-size: 20em; font-family: "FontAwesome"; content: "\f00c"; - width: 100%; - height: 100%; - z-index: 999; color: #21b799; vertical-align: middle; padding: 0.3em 0.7em; @@ -387,7 +375,6 @@ border-right: 1px solid #E5E5E5; background: #f7f7f7; padding: 10px 12px 0 12px; - i.fa{ font-size: 1.7em; padding-left: 0; @@ -395,22 +382,19 @@ margin-top: 0.1em; color: #929292; } - .counter { padding: 6px 0 0 8px; font-weight: bold; color: #727272; font-size: 13px; } - .progress { background-color: #C4C4C4; height: 30px; padding: 3px; - border-radius: 4px; } .progress-bar { - background: #A24689; + background: #A24689; background: -moz-linear-gradient(top, #cc59ab 0%, #a24689 8%); background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#cc59ab), color-stop(8%,#a24689)); background: -webkit-linear-gradient(top, #cc59ab 0%,#a24689 8%); @@ -419,9 +403,6 @@ background: linear-gradient(to bottom, #cc59ab 0%,#a24689 8%); filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#cc59ab', endColorstr='#a24689',GradientType=0 ); border-radius: 4px; - font-weight: bold; - text-shadow: 0 1px 0 #4E2443; - line-height: 25px; height: 95%; box-shadow: 0 1px 0 #7A3067; } @@ -430,25 +411,19 @@ .dropdown.mobile { padding: 10px 12px 0 0px; .dropdown-menu{ - width: 100%; height: 250px; overflow: auto; } .btn { - height: 30px; - line-height: 15px; text-align: justify; } - .dropdown-menu a { color: #333; padding: 3px; } - .dropdown-menu > .active > a, .dropdown-menu > .active > a:hover, .dropdown-menu > .active > a:focus { background-color: #F3F3F3; } - .dropdown-menu h4 { padding: 10px 15px 0; border-top: 1px solid #EAEAEA; @@ -480,7 +455,6 @@ margin: auto -10px; color: #444; font-size: 13px; - border-radius: 0; } .nav-stacked li a:hover, .nav-stacked li a:focus { text-decoration: none; @@ -497,6 +471,131 @@ margin-right: 5px; } } + //NOTEBOOK + .notebook-container { + margin: 20px 0; + } + .notebook { + color: #555; + font-size: 22px; + padding: 0 !important; + font-family: courier, monospace; + border: 1px solid #faebcc; + color: #8a6d3b; + position: relative; + background-color: #fcf8e3; + + textarea,input { + background: #fcf8e3; + border: none; + font-size: 15px; + line-height: 17px; + } + > li { + list-style: none; + border-bottom: 1px dashed #C1D6DA; + padding: 10px 10px 5px 55px; + text-transform: capitalize; + margin: 0; + span { + position: absolute; + left: 9px; + color: rgb(199, 180, 146); + font-size: 20px; + font-weight: bold; + } + } + > li:last-child { border-bottom: 0;} + + li.header { + h5{padding-left: 0px} + div.dropdown { display: inline;float:right; } + span {position: relative; left: 0;} + a { + color: #C4A87A; + position: absolute; + top: 13px; + right: 13px; + &:hover { + text-decoration: none; + color: #9C855D; + } + } + select { + margin-bottom: 10px; + font-family: sans-serif; + font-size: 17px; + color: #8A6D3B; + border: none; + background: #F5E7CF; + } + .help{ + font-size: 14px; + color: rgb(126, 95, 41); + background: #fcf8e3; + background: -moz-linear-gradient(top, #fcf8e3 0%, #FFF8D7 100%); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#fcf8e3), color-stop(100%,#FFF8D7)); + background: -webkit-linear-gradient(top, #fcf8e3 0%,#FFF8D7 100%); + background: -o-linear-gradient(top, #fcf8e3 0%,#FFF8D7 100%); + background: -ms-linear-gradient(top, #fcf8e3 0%,#FFF8D7 100%); + background: linear-gradient(to bottom, #fcf8e3 0%,#FFF8D7 100%); + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#fcf8e3', endColorstr='#FFF8D7',GradientType=0 ); + padding: 0 1em; + position: relative; + box-shadow: inset 0 10px 10px -9px #A89E64; + margin: 0px -10px 0px -55px; + + h5 {padding: 14px 0 0; display: inline-block;} + ul { padding: 0 20px 20px 50px;} + li {font-style: italic;} + } + } + > li:not(.header):hover { + background-color: #F5EFD0; + -webkit-transition: all 0.2s; + -moz-transition: all 0.2s; + -ms-transition: all 0.2s; + -o-transition: all 0.2s; + } + .lines { + border-left: 1px solid #ffaa9f; + border-right: 1px solid #ffaa9f; + background: transparent; + position: absolute; + width: 3px; + height: 100%; + top: 0; + left: 42px; + border-bottom: 0; + border-top: 0; + } + } + .notebook.columns { + textarea,input {margin-bottom: 1em;} + } + .trophy { + font-size: 11em; + color: #A24689; + margin-top: .5em; + -webkit-animation-name: bounceIn; + animation-name: bounceIn; + -webkit-animation-duration: 1.75s; + animation-duration: 1.75s; + -webkit-animation-fill-mode: both; + animation-fill-mode: both; + } + .alert-info.info_icon span.fa { color: #8ABCD4; } + .info_icon { + position: relative; + padding-left: 5em; + min-height: 6em; + span.fa { + position: absolute; + font-size: 5em; + left: 0.2em; + opacity: 0.6; + } + } } .pages { color: #444; @@ -510,7 +609,6 @@ > h1, > h2, > h3, > h4, > h5, > h6, > p, > strong, > i { text-shadow:none; } - h1 { margin-top: 0; font-size: 3.5em; @@ -535,7 +633,6 @@ background: #21b799; border-color: #26A38A; text-shadow: 0 1px 0 #2E917D; - font-weight: normal; line-height: 19px; color: white; } @@ -544,4 +641,46 @@ color: white; } } + // PARAGRAPHS + .paragraphs .icon { + text-align: center; + font-size: 2em; + margin: 1em auto .5em; + color: #21b799; + } +} + +// XS size +@media screen and (max-width: 768px) { + #PlannerModal .pages { + margin-top: 0px; + } + #PlannerModal .counter { + padding: 6px 0 0 5px; + } +} +// SM size +@media screen and (min-width: 769px) { + #PlannerModal .paragraphs { + div.col-md-10 { + margin-top:1em; + } + span { + transform: translateX(-8px); + position: relative; + display: block; + } + } +} +// MD size +@media screen and (min-width: 992px) { + #PlannerModal .paragraphs .icon { + font-size: 4em; + margin: 0.3em auto .5em; + span{ + transform: translateX(0px); + position: relative; + display: block; + } + } } diff --git a/addons/planner/static/src/xml/planner.xml b/addons/web_planner/static/src/xml/web_planner.xml similarity index 100% rename from addons/planner/static/src/xml/planner.xml rename to addons/web_planner/static/src/xml/web_planner.xml diff --git a/addons/planner/views/planner.xml b/addons/web_planner/views/web_planner_templates.xml similarity index 53% rename from addons/planner/views/planner.xml rename to addons/web_planner/views/web_planner_templates.xml index a4e111aa0c0..cceaff72bbc 100644 --- a/addons/planner/views/planner.xml +++ b/addons/web_planner/views/web_planner_templates.xml @@ -3,8 +3,8 @@ diff --git a/addons/web_planner/views/web_planner_views.xml b/addons/web_planner/views/web_planner_views.xml new file mode 100644 index 00000000000..c1f3f796dae --- /dev/null +++ b/addons/web_planner/views/web_planner_views.xml @@ -0,0 +1,46 @@ + + + + + web.planner.view.tree + web.planner + + + + + + + + + + + + + web.planner.view.search + web.planner + + + + + + + + + + Planners + web.planner + form + tree + + {'search_default_active': True} + + + + + + \ No newline at end of file