Commit Graph
817 Commits
Author SHA1 Message Date
Hiral Bhavsar 56972f8b05 [IMP] website_quote: improve some labelling of quote template 2017-08-16 17:44:52 +02:00
Hiral Bhavsar c72da1369c [IMP] website_quote: simplify labelling of require_payment
As using tokens or not is not a template option it is simplified to know
wether only a signature is required or a payment.
2017-08-16 17:44:24 +02:00
Jérome Maes 3cfd64f63f [MOV] portal,website_mail: move chatter frontend to portal
This split responsiblilies :
- portal provides basic chatter for portal document, and
website documents (slides, blog, ...).
- website_mail provides comments moderation (unpublished mail
message)
- website_rating integrate rating when posting comments
2017-08-16 14:56:40 +02:00
qsm-odoo 2972976962 [REF] web_editor, website, *: complete refactoring
* mass_mailing, payment, point_of_sale, portal, survey, web, web_tour,
  website_blog, website_crm_partner_assign, website_event,
  website_event_questions, website_form, website_forum, website_gengo,
  website_hr_recruitment, website_links, website_mail,
  website_mail_channel, website_mass_mailing, website_quote,
  website_sale, website_sale_options, website_slides, website_twitter

This commit reviews the whole "JS side" of the web_editor and website
apps. This is a first step to be able to improve them with new and
better functionnalities; this commit is not supposed to change any
visual behavior.

The main goal was to achieve a structure similar to the backend one.
Now, the frontend side also has a root widget (like the WebClient)
and all other widgets are attached to it one way or another. This allows
the benefits of using the 'trigger_up' functionnality for example.

As RPC are now mainly done with the `this._rpc` functionnality (being
possible thanks to the parent hierarchy), the frontend will also be
possible to test thanks to QUnit in a future update (besides the "text"
editor side which still requires a refactoring to be able to do that).

---

Here are some of the changes:

(-) conventions and documentation

The code has been updated to follow JS conventions and a lot of code has
been commented (around +2000 lines of comment). This also means that
lots of functions have been renamed to use camelCase or simply to make
their name understandable.
See https://github.com/odoo/odoo/wiki/Javascript-coding-guidelines.

(-) deprecated: web_editor.base

The "web_editor.base" module has been split and does not force the
modules which require it to wait for DOM ready anymore. This was indeed
slowing loading times, but also prevented to use some modules in some
contexts (see the LESS editor use in web_studio which is the subject of
another task).
Now the "editor context" can be got thanks to the "web_editor.context"
JS module with its "get" function.
The "web_editor.base" module should probably not be used anymore (see
its code and recent updates).

(-) new: web.dom_ready

If a JS module should wait for the DOM to be ready to be executed, a
new JS module has been created: "web.dom_ready". This should always
be used in a module which only want to instantiate stuff. Do not
extend (or worst, include) classes after DOM ready.

(-) website.website

The "website.website" module has been split. "website.website" does not
return anything useful anymore, it just initialize some miscellaneous
stuff, without waiting for the DOM to be ready. You might want to check
"website.utils", "website.content.compatibility" or `WebsiteRoot`. Also
`website.form` has been deleted (use `this._rpc`), so has been
`website.error`. `website.prompt` will be removed in a future update to
be replaced by `Dialog.prompt`.

(-) widgets are great

Many classes which were not widgets are now widgets. This allows them to
use the 'events', the 'xmlDependencies' and the 'this._rpc' features for
example. Here are some of the main ones:

- Snippet options: these were classes with a `$el` for the menu element
    and `$target` for the customized element. This is still the case
    but following standard `Widget` structure (one exception: using
    `this.$(...)` searches in the `$target` as before this update).

- Snippet animations: instead of class instances with a `$target`
    element which can be `start` and `stop`, these are now standard
    widgets which can be `start` and `destroy`. `this.$target` is
    an alias to `this.$el` for ease of compatibility.

- Snippet editors: instead of class instances in charge of an editor
    overlay, these are now widgets. Each "child" snippet editor is
    properly attached as a "child", which allows editors to communicate
    and to be properly destroyed.

(-) root widgets and website navbar

The frontend is different of the backend. In the backend, the page has
an empty <body/> element and all the components are instantiated from
parent to children (i.e. the `WebClient` is instantiated and is in
charge of instantiating the `ControlPanel`, etc). The frontend cannot
work like that on page loadings as they are way more frequent than in
the backend and we do not want them to flicker. A frontend page is
loaded as a <body/> element which already contains the website navbar
and its menus and the whole content page. JS code has to be "attached"
to these existing elements. This is possible thanks to the `RootWidget`
instances and the specialized `WebsiteRoot`, `IframeRoot` and
`WebsiteNavbar` (see code for details).

(-) lazy loading

No more (or at least a lot less) XML/JS has to be loaded on page
loading, thanks to the use of the `Widget.xmlDependencies` feature.
XML which have to be lazy loaded is loaded only on related Widget
instantiation if necessary, which allows to execute a lot of JS code
before the DOM is ready and to start many widgets on DOM ready (not
later). A visual benefit of this is clicking on the 'edit' button as
soon as it is possible: before this commit, this was sometimes not
doing anything as event handlers were not binded yet.

Still a possible exception: loading the session and locales. This may
be asynchronous stuff which is still required before widget
instantiations but this will be the subject of another task.

(-) deprecated code and code location

More than reviewing code and organizing it, many apparent dead code was
removed. More importantly, mislocated code was put in the right app.
This is the case for snippet animations which is a concept for website
apps but was defined in the web_editor app, or some translation concepts
which were part of website but should have been part of web_editor.

---

There are probably more things to say about this commit but I will let
the comments speak for those.
2017-08-16 11:04:14 +02:00
Xavier Morel cbffd99341 [IMP] use hasclass() xpath function 2017-08-11 10:44:40 +02:00
Haresh Shyara ea66192276 [REF] crm,sale: Split the applications into 2 separate apps
Purpose
=======

You install CRM but you don't see CRM icon (except in English, as long as sales is not installed) -> confusing
The dashboard with salesteam is not obvious & not useful for simple users: what are those channel boxes about? why don't I see all my activities?, etc.

Specifications
==============

Split CRM & Sales + land in business views straight away

Default Entry Views
~~~~~~~~~~~~~~~~~~~

- New default view for CRM: Pipeline kanban
- New default view for Sales: Quotation list

Dashboards
~~~~~~~~~~

- Move sales teams dashboard to Reporting: Sales Channels.
- Remove the upper part of the sales team dashboard

Menuitems Structure
~~~~~~~~~~~~~~~~~~~

- CRM menu

Pipeline:
	- Leads (optional)
	- Pipeline (default menu, default filter "My Pipeline")
	- Next Activities -> to remove (now there is an icon in top bar for next activities)
	- Quotations (If sale_management installed)
Customers
Phone Calls (if voip, if not yet removed because there is a BE task to use next activities instead)
Leads Management:
	- Scoring Rules
	- Leads Assignation
	- Team Assignation
Reporting:
	- Leads
	- Scoring page views
	- Opp. Assignement
	- Patnerships
	- Pipeline
	- Activities
	- Phonecalls
	- Sales Channels
Configuration:
	- Settings
	- Sales Channels
	- Activity Types
	- Leads & Opportunities:
		- Lead Tags
		- Lost Reasons
	- Resellers
		- Partner Level
		- Partner Activations
- Sales menu:

Orders:
	- Quotations
	- Orders
	- Customers
Invoicing:
	- Orders to Invoice
	- Orders to Upsell
Catalog:
	- Products
	- Promotion Programs
	- Coupon Programs
Reporting:
	- Sales
	- Sales Channels
	- All channels sales orders
Configuration:
	- Settings
	- Sales Channels
	- Sales Orders:
		- Quotation templates
		- Payment acquirers
		- Delivery Methods

Settings
~~~~~~~~

- Split settings form
- Remove recommended apps section
- Remove Timesheets section
- Remove Inventory Management and move shipping connectors to Shipping section
- Remove Integrations section
	- Move Docsaway option to "Quotations & Orders", right after proforma
	- Autocomplete and asterix: move to CRM section
- Restructure and rename sections this way:
	- Product Catalog
	- Pricing
	- Quotations & Orders
	- Shipping
	- Invoicing
	- eBay (if installed)
- Remove all the "Save this page and come back here" when checking a box that installs a new module

- restructure a bit the CRM settings, with 3 sections:

Pipeline
	- Leads
Contacts
	- Phone Validation
	- Customer Autocomplete
Integrations
	- Google Calendar / Synchronize your calendar with Google Calendar (copy from general settings but don't show message "Save this page and come back here...".
	- Asterisk (VOIP)
2017-08-09 10:03:08 +02:00
Thibault Delavallée 71587f8284 [REM] website_portal_sale: remove the now void module 2017-08-08 15:36:31 +02:00
Thibault Delavallée 9381334f6e [MOV] sale_*: move sale customer portal to sale
Customer portal is now a feature coming directly with sale module. As
it uses a simple website renderer customization and advanced website
features are not available and depends on having website module
installed.
2017-08-08 15:36:25 +02:00
Thibault Delavallée ea27c1b7a3 [MOV] website_portal, portal: move customer portal to portal module
This commit moves the whole customer portal to the portal module.
It now completely uses portal and http_routing features and is not
dependent on website anymore.

An override of web controller is added in portal in order to redirect
portal users to /my instead of /web. That way once having the customer
portal installed all share users are correctly redirected to their
account.

All modules defining customer portal templates and controllers are
updated accordingly.
2017-08-08 14:58:49 +02:00
dip-odoo 9dafd7f47e [IMP] website_quote: quote templates are now archivable
We also:
- reorder a bit the form view for quote templates
- change the way default templates are selected for sales order
  (inactive quote templates are not selected) while keeping
  customizability through ir.values
2017-08-04 14:58:03 +02:00
Christophe Simonis 8a1311bca1 [MERGE] forward port branch saas-17 up to 3d4238f71e 2017-07-26 23:35:06 +02:00
Christophe Simonis 4f501348c4 [MERGE] forward port branch saas-16 up to 46e1104ce1 2017-07-26 19:55:44 +02:00
Martin Trigaux 044b8b1240 [I18N] export saas-16 source terms 2017-07-25 12:26:50 +02:00
Christophe Simonis 9185eb4b79 [MERGE] forward port branch saas-17 up to f830f14d98 2017-07-20 13:26:09 +02:00
Christophe Simonis fa3e89064a [MERGE] forward port branch saas-16 up to 104dfe3c07 2017-07-20 11:48:49 +02:00
Yenthe V.G 5e9df18b15 [IMP] remove duplicated module description
The module is described in either static/description/index.html, either in
README.md file.

It is ok to have both README.md and index.html as index.html is for a formated
description and README.md is displayed in github
e.g. https://github.com/odoo/odoo/tree/10.0/addons/stock

Closes #18036
2017-07-20 10:05:53 +02:00
Christophe Simonis 6fa9ea14fa [MERGE] forward port branch saas-15 up to b31cd558e5 2017-07-19 18:48:42 +02:00
Christophe Simonis b31cd558e5 [MERGE] forward port branch saas-14 up to b857fd4c90 2017-07-19 17:04:28 +02:00
Christophe Simonis b857fd4c90 [MERGE] forward port branch 10.0 up to 11270336fa 2017-07-19 16:21:12 +02:00
Christophe Simonis 11270336fa [MERGE] forward port branch saas-11 up to f07ca36b9b 2017-07-19 16:18:40 +02:00
Christophe Simonis f07ca36b9b [MERGE] forward port branch 9.0 up to 41433debdb 2017-07-19 16:16:57 +02:00
qsm-odoo 9494161e23 [FIX] website_quote: increase robustess of menu generation
On online quotations, a left menu is automatically generated on page
load by searching for the <h1/> and <h2/> elements in the page. This
also considered the empty ones which do not make sense and were
breaking the menu's layout. Ideally, there should not be any empty
title in the page.

opw-752764
2017-07-19 09:25:11 +02:00
Martin Trigaux f0a03da2b2 [I18N] Update translation terms from Transifex
Not sure why it did not fetched
2017-07-17 13:33:29 +02:00
Martin Trigaux 6a61921ddd [I18N] Update translation terms from Transifex 2017-07-17 11:52:51 +02:00
Christophe Simonis 1924495244 [FIX] website_quote: correct template domain
The mail is actually rendered on an order on order validation.

Oversight of commit 29c5165361

pw-752264
2017-07-14 16:03:14 +02:00
Christophe Simonis 4ca3d9cadf [MERGE] forward port branch saas-15 up to aa19cb61f4 2017-07-14 14:27:38 +02:00
Christophe Simonis aa19cb61f4 [MERGE] forward port branch saas-14 up to f1a5e8214e 2017-07-14 13:54:01 +02:00
Richard Mathot 29c5165361 [FIX] website_quote: missing domain
Before this commit, users could select mail.template designed for other
models and lead to nasty crashes when validating a SO

opw-752264
2017-07-13 15:17:07 +02:00
Thibault Delavallée 1b12e6bbd6 [FIX] website_quote: fix template variable name
JS waits for callUrl, not url. Fix related to 6e3392b341 .
2017-07-12 09:54:00 +02:00
Denis Vermylen 505686ea4f [IMP] website_portal,*: clean breadcrumbs
We make the breadcrumbs of the portal uniform and remove them when we
access the document with an access token without being logged in
(for sales orders).
2017-07-06 12:53:39 +02:00
Denis Vermylen 7dd6225f0b [IMP] mail, account, sale: improve sales order mail link
Mail now can handles a generic access_token in /mail/view route. Mail does
not do anything with it. Addons can override the controller and add their
specific management of this token according to some specific business
logic.

Sale order emails now contains the access token to grant access from the
notification email url without logging in. Sale portal now allow customers
to log in using an access token without having to use Online Quote. If
the user doesn't have an account yet and signup is allowed (B2C) an extra
parameter is added to the url to link the correct partner to the user upon
signup. If the user already has an account an extra parameter is added to
auto-fill the user's login if he wants to login from that session.

Account is also updated to prepare accepting access tokens. However the
complete implementation of accounting customer portal will be done in
another task coming soon.
2017-07-06 12:53:39 +02:00
Denis Vermylen e0a1549307 [IMP] models: add access_user to get_access_action
In order to be able to identify what action to return based on the
access_user.

Typically portal users will need to be redirected to the front-end,
while internal users will need to be redirected to the back-end.
2017-07-06 12:53:39 +02:00
Martin Trigaux 8810cee440 [I18N] all: synchronise saas-14 terms
based on v10 terms and saas-15
add the new languages

Much noise due to the different softwares that do not indent the terms the same
way. Merged the po files with --no-wrap option which makes long lines.

opw-751014
2017-07-05 11:48:45 +02:00
Jérome Maes 0339264d11 [IMP] website_*: adapt website modules using frontend chatter 2017-06-30 11:07:00 +02:00
Jérome Maes 890e665b88 [IMP] website_quote: clean page style 2017-06-30 11:06:32 +02:00
Christophe Simonis 3bac72ba74 [MERGE] forward port branch 10.0 up to aaadb232b2 2017-06-26 13:00:18 +02:00
Martin Trigaux 790ff6d655 [I18N] pull web* translations
Some were skipped due to API limit
2017-06-26 11:25:54 +02:00
David Arnold 1930e8dffb [I18N] remove es_CO translations
Based on analysis https://gitlab.com/snippets/1665976

Closes #17815
2017-06-26 10:13:25 +02:00
Odoo Translation Bot ed46386436 [I18N] Update translation terms from Transifex 2017-06-25 00:27:33 +02:00
Martin Trigaux 4755fce915 [I18N] update source terms
Was done poncutally but no global one since the release
2017-06-23 16:34:23 +02:00
Nicolas Martinelli f8a4b4a571 [FIX] website_quote: monetary format
When a discount is applied on a quote, the price is not displayed with
the appropriate format.

opw-746087
2017-06-19 12:27:58 +02:00
Odoo Translation Bot 8c53fa5bc9 [I18N] Update translation terms from Transifex 2017-06-18 00:26:56 +02:00
Mehul Patel 151ec5c0fb [IMP] website_quote : set default value for require_payment on SO and quote template
PURPOSE
=======

In the payment options there are 3 radio buttons given , but as per the normal behavior of radio,  there must be one selected by default.
2017-06-13 15:10:15 +02:00
Odoo Translation Bot 264c2c64f2 [I18N] Update translation terms from Transifex 2017-06-11 07:07:07 +02:00
Odoo Translation Bot 4dbc9b5472 [I18N] Update translation terms from Transifex 2017-06-11 00:27:53 +02:00
Thibault Delavallée ef2d828463 [REF] website_quote: use new sale_payment module
Online quote now uses JS code from payment module in order to make online
payments. Front-end template is updated to use o_payment_acquirer_button
generic class for payments and data is added to be managed by payment.js.
This allows to remove some strange code parsing the url to find the order
ID and token instead of using rendered values.

A payment controller is removed because it was only a shortcut to another
one. In transaction controller token parameter is renamed to access_token
to avoid confusion with payment token and match the payment and website
sale naming.

Online Quote controller now uses tools method from sale_payment module
like website_sale. This way it is now standardized and moved out of
controllers that should not perform so much model-level computation.
2017-06-06 11:05:25 +02:00
Thibault Delavallée b5146643b5 [REF] website_(quote/sale), sale: move access_token in sale
Access token field is moved directly in sale module. Indeed future commits
will improve customer portal and access tokens will be used in other module
than website_quote. This commit already moves the field.

Moreover some strange code in website_sale already uses access_token even
if it does not exist in that module. Moving the field solves that issue.
Finally so_token defined in stripe is renamed to access_token to have the
same naming through all addons.
2017-06-06 11:04:29 +02:00
Odoo Translation Bot c3e282852d [I18N] Update translation terms from Transifex 2017-06-04 00:28:17 +02:00
Thibault Delavallée 8911be11d1 [MOV][ADD] sale_payment: bridge module between sales and payment
Move sale and payment bridge code into its own module. This commit mainly
moves (and reorganizes without changes) code from website_sale related
to payment and SO confirmation.

Only change is that payment_acquirer_id field on sale order is now a
related on transaction.acquirer_id . Indeed in website_sale and
website_quote both values were written but only managing transactions
and getting its acquirer is more efficient and ensure values are coherent.

JS part controlling payment form management is moved directly into
payment to reuse later on in future commits. Probably.
2017-06-02 17:30:28 +02:00
Yannick Tivisse b9980eda5c [IMP] payment,*: Relabel 'Payment Method' into 'Payment Acquirer' 2017-06-02 15:31:47 +02:00