Commit Graph
52 Commits
Author SHA1 Message Date
mreficent 2924b77b6f [REF] website: rename website.redirect,type to redirect_type
Part of odoo/odoo#27599 to rename fields named 'type' which may conflict

closes odoo/odoo#28112
2018-10-24 14:32:49 +00:00
Romain Derie 6f1c6f2895 [FIX] website: add website_id in ir.ui.view list in multi-website 2018-09-25 15:47:56 +02:00
RomainLibert 44fd3bc808 [IMP] *: implement new version of dashboards
In order to implement the next version of the dashboards in enterprise
we need to make some changes in community namely :
   * Modify some search views (used in the dashboards)
   * Remove the date/datetime filters from the search views as they are
     duplicated with the time ranges
   * Rename the menu items from Dashboard to Overview
2018-09-18 12:31:27 +02:00
Jeremy Kersten 4a57d2619b [FIX] website[_theme_install]: fix website form view
Before this commit, you had 'choose a theme' into the form view.
It should be only visible in modal

task-1878245
2018-09-13 13:58:23 +02:00
Romain Derie 47b00c5d53 [FIX] base,website,web_editor: handle key field on ir.ui.view for multi website
With multi-websites, we expect qweb views to have a key set as it is the key
that is used to find duplicates (two views with same keys are duplicate, the
one with a website_id set is more specific than the one without a website_id)

Thus, 5ff87e8039 sort on key in order to find the most suitable one.

It would crash if a qweb view is created without a key (False) as it can't sort
`bool` and `str`.

This commit:
  - Adds a generated key to scss views
  - Adds an SQL constraint to avoid QWeb views without a `key`
  - Generates a random key when creating a QWeb view without a `key`
  - Handle False key in `filter_duplicate()` by extracting views with False key
    before sorting, and then adding these views to the recordset

Note: We also want the key to be editable as it is now an important field with
      multiwebsite. Thus, we removed the readonly on this field.

+ fix python tests as we now force key on qweb views with sql constraint
+ pep8
2018-08-31 16:37:45 +02:00
Jeremy Kersten 2a9a514551 [FIX] website, website_theme_install: improve flow for new website creation 2018-08-29 15:18:19 +02:00
Jeremy Kersten d8064099da [FIX] website: move action action_website_add_features
Since we use it in website_form which one is included before res_config_setting,
we need to declare it before.
2018-08-24 22:58:55 +02:00
Romain Derierde-odoojke-odoo
65d8177b55 [REF] website*: revamp res_config_settings for website
Reorder res.config.settings for website
Make website_id in no create in most view
Revamp res.configsetting and view Form simplified

Transform old 'useless' stored field for presentation by computed field.
We can consider that if there are not key, feature is disable.

Co-authored-by: rde-odoo
Co-authored-by: jke-odoo
2018-08-24 20:01:02 +02:00
Jeremy KerstenandDerie Romain c0968e68ed [ADD] website_theme_install: try to make theme multi website compliant
From now, when you install a theme, it load the data from xml to template
table theme [ir.ui.view|ir.attachment|website.page|website.menu].

Data are only copied from this template table into the real table when you
choose a theme on a website; Making them website_specific and with a link
to the original to allow futur update.

A special case is done to create theme.ir.ui.view when you are installing
a theme, even if you continue to use template tag to create quick view.

Co-authored-by: Derie Romain <rde@odoo.com>
Co-authored-by: Kersten Jérémy <jke@odoo.com>
2018-08-13 20:16:34 +02:00
Jeremy KerstenandDerie Romain 066cfc9598 [IMP] website_[blog|event|forum|sale|slide]: make website specific
Set up env & tools for module website multiwebsite (blog, event, sale..)
website_id in modelConverter and ir_rule

add _compute_domain_keys to have a different cache per website
  or rules would not be correctly website_dependant
  eg: blog 1 on website 1, blog 2 on website 2
      access blog 1 from website 1 => can access -> normal
      access blog 1 from website 2 => can access -> should crash because (ir rule)

split mixing website.published.mixin and website.published.multi.mixin to have
website_id only on last one.
 multi mixing will:
     - override website_published compute to take current_website into account (not in backend)
     - force website when clicking on published in backend

- website blog, website_sale, website_event, website_forum, website_slides are now multi website

Co-authored-by: Derie Romain <rde@odoo.com>
Co-authored-by: Kersten Jérémy <jke@odoo.com>
2018-08-13 20:16:34 +02:00
Jeremy KerstenandDerie Romain 602807acdf [FIX] website: improve/fix menu, copy on unlink, clone page, unique_path, sale_report, ...
Fix bug from the initial poc of JOV

Fix menu creation
   - creating a menu would create a 'container' menu in the DB (.create is call without website_id)
   then writing on it would copy (if condition to cow) the menu with a website_id leaving the first
   one as a menu container unused.
   - website_menu should always have a website_id
     we dont want to support the multiwebsite system that allow to have generic/specific menu
     unlink/write is useless now since we always have a website_id

Make unique_path website dependent, 2 distinct website can have a page with same name

Make Sale report multiwebsite compliant

Make website_id on sale_order / account.invoice as a related stored from partner_id.

Co-authored-by: Derie Romain <rde@odoo.com>
Co-authored-by: Kersten Jérémy <jke@odoo.com>
2018-08-13 20:16:34 +02:00
Jeremy KerstenandDerie Romain a45bb90fac [IMP] website: improve pagemanager to be multi website compliant
Now we can see which specific page override wich page when page are sorted by url.

Co-authored-by: Derie Romain <rde@odoo.com>
Co-authored-by: Kersten Jérémy <jke@odoo.com>
2018-08-13 19:51:32 +02:00
Joren Van Onder 4f6ec1cd2a [IMP] website,*: support multiple websites
This implements support to administer multiple websites. Although the
core functionality already existed, managing multiple websites was
fairly technical.

In the interest of database updates and migration this attempts to
keep duplicated data to a minimum. To do this the usual generic
records are rendered unless some website-specific record exists that
replaces it. Copy-on-write (COW) is used to create these
website-specific records. Through this mechanism creating a
website-specific record is delayed until necessary. A COW mechanism
has been implemented on 4 models: ir.ui.view, website.page,
website.menu and ir.attachment. These COW mechanisms are activated
when editing data through the website (aka frontend). These frontend
edits (e.g. with web_editor) will be website-specific, possibly
creating a website-specific record when necessary. When editing data
in the backend nothing special will happen, even when editing a
generic record. Note that because of this mechanism also facilitates
the ability to create new, uncustomized websites because the generic
data is kept.

Support is provided for a website to have any theme. Themes are fairly
complex to handle. Standalone themes can depend on other standalone
themes (e.g. theme_beauty depends on theme_loftspace) and themes
usually modify some data of the themes they depend on. Because a theme
can be installed on multiple websites, using website_id m2o fields
does not work well. It would require duplicate data, making updates
and migration harder. Because of this, data for themes (ir.ui.view and
ir.attachment specifically) have a theme_id m2o. website has a
theme_ids m2m that identifies all theme modules currently installed on
it. Through these fields we figure out what to render. A theme is only
fully uninstalled when it's no longer active on any website. The
advantage of this approach is that upgrading or migrating theme data
is no different from the single-website case.

The website.published.mixin class was modified to handle multiple
websites. A wizard was added in the backend to easily manage this for
multiple website.

Although not used anywhere in this commit, a 'website_id' variable has
been added in the evaluation context of ir.rule. It allows to easily
make any model multi-website aware, all that's needed is a custom
website_id m2o field on a model and a custom record rule.
2018-08-13 19:51:10 +02:00
sed-odoo d81e1b7341 [IMP] website_*: Improve menus and configuration
Purpose
=======

Clean menus structure in website frontend and backend, for an easier navigation.

Specification
=============

Website
-------

- Restructure menu
- Enterprise: Keep google analytics view in a dedicated menu item when ecommerce is
  installed:
    - Sales Dashboard(ecommerce dashboard)
    - Analytics (google analytics)
- Community: Keep both sales orders and google analytic dashboard on the same
  dashboard view
- Restore google analytics api option in website settings when ecommerce
  is installed

E-Commerce
----------

- Website > orders > orders: add default filter "from website" and remove it in
  the action. That way if you create an order manually there is still a way
  to find it from the menu (the salesteam is different)
- Default filter for abandoned cart menu
- Improve setting text and tooltip. It's not obvious that recovery emails must
  be sent manually. Replace with:
    - Title: Abandoned Carts
    - Subtitle: Send a recovery email when a cart is abandoned
    - Tooltip: Abandoned carts are all carts for which no transaction has
               been confirmed while the customer has filled in their address.
               You can find them in *Website > Orders > Abandoned Carts*.
               From there you can send a recovery email to stimulate the
               customers to resume their order.
    - Tooltip email template: This email template is suggested by default
                              when you send a recovery email.
    - Tooltip hours: Carts are flagged as abandoned after this delay.
    - Hour label: Cart is abandoned after .... hour(s).

Task ID: 1859170
2018-08-09 11:58:35 +02:00
RomainLibert 42aa0b16e3 [IMP] website_sale_link_tracker: add utm fields to sale.report
We need to be able to filter and group by campaign_id, source_id and
medium_id in the sale_report those fields are defined in utm mixin which
is installed with website_sale_link_tracker.
2018-07-31 14:56:40 +02:00
kujiu 9de1bc0eef [IMP] Improve compatibility with screen readers (accessibility) (#24574)
Today, Odoo is really tricky to use without seeing the screen, it must be improved to be usable.

This PR forbid to use labels without a "for" attribute, add some title, rule and aria attributes in HTML. With that, Odoo will be fully usable with a screen reader.


* [IMP] Labels must have a for attribute. Improve accessibility.
* [IMP] Better error message when trying to read a missing cached value
* [FIX] Add some aria-label and title attributes for screen readers.
* [FIX] Template name is not included in the error message in case of SyntaxError in QWeb
* [FIX] Improve the Tour failed at step error message to be more explicit.
* [IMP] Add aria-labels
* [FIX] Add missing aria-label on failing test
* [IMP] aria-hidden means hidden. Fix all bad aria-hidden and hide aria-hidden for all.
* [IMP] Color names on kanban views and many2many tags
* [IMP] Add some checks on views for accessibility.
* [IMP] Add `alt` attribute on `img` tags.
* [IMP] Add aria-label and title on non-described icons
* [IMP] Add button role to widgets with btn class
* [IMP] Translate aria and formatted attributes.
* [IMP] Remove wrong aria-labelledby
* [IMP] Add menu role on dropdowns
* [IMP] Buttons must be focusable
* [IMP] Add aria attributes on progress bars
* [IMP] Improve accessibility of basic widgets
* [IMP] Change main layout to more semantic tags
* [IMP] Add menuitem role when missing
* [IMP] Remove wrong role='presentation'
* [IMP] Improve accessibility of tab panels
* [IMP] Add aria-invalid on invalid fields
* [IMP] Add aria-sort on ordered columns
* [IMP] Add role on alerts
* [IMP] Use dialog role, header, main and footer tags for modals
* [IMP] Add labels on o_status
* [IMP] Improve accessibility of kanban view with feeds and articles
* [IMP] Add alerts in case of new messages
* [IMP] Add widget, navigation or img role to aria-labelled items
2018-06-22 21:22:21 +02:00
Jeremy Kersten 68e9d5504c [IMP] website: make website.redirect fields required
Before this commit, it was possible to create redirect with empty values.
Now, for new db, that will be required.

Fix usability according to first feedback
   - Redirect / menu should be visible without debug mode
     because user need it when they start their website and
     dont know at the beginning how to enable it (fgi)
   - fa icon in page manager was for blind people
   - missing widget on sequence field
2018-03-02 18:03:01 +01:00
Romain Derie 56ae134bb2 [FIX] website: allow user to create/remove website.menu
Before this commit, an user could not create or remove a website.menu since
there was no list/form view for it. Changing sequence also impossible.
Therefore, it was impossible to create or delete a menu from an event. (you
could just edit the existing one)

Now, user can access in debug mode to the list and form view of website.menu to
manage the menus.

This commit also add a link on the ir.ui.view form view to access it's related
website.page

This closes #21302
2017-12-12 15:27:51 +01:00
Martin Geubelle 8d49a38f03 [FIX] *: replace incorrect view_mode
Some actions were using `list` as value for the attribute `view_mode`.
This value is not valid, the list view is named `tree` server-side.

This was causing issues when setting `view_ids` (`ir.actions.act_window.view`)
on the action because `tree` and `list` were not matching correctly.

Closes #21056
2017-11-29 14:46:12 +01:00
Mitali Patel 8f88c0336f [IMP] base: Make 'name' attribute required for 'filter' tag
Purpose
=======

The attribute name isn't required on the <filter> tag. If not set, it can't be selected with a xpath and it can't be overwritten.

A lot of PR are coming from the community just to add a name on a filter because:
- It can't be selected with a xpath.
- It can't be used with `default_search_foo` on an action context.

Specification
=============

Make the atttribute name required
2017-10-19 10:59:26 +02:00
rde 553e24ccd1 [IMP] website: button to easily back to page manager from form view
Before this commit:
When you were on the page manager and you were editing a website.page's
content, it would redirect you to the website.page's ir.ui.view's form view in
the backend.
From there, you would'nt have an easy way to get back to the page manager:
your only option was to go to the website module and click on 'go to website'
and then click on menu/manage pages.
It was not convenient when you were editing multiple page quickly or just
taking a look into some pages.

Now, you have a button on the ir.ui.view's form view to get directly on the page
manager.

Note: this back button is obviously invisible for ir.ui.view not related to a
website.page
2017-10-12 16:20:42 +02:00
rde 741e003b94 [REF] website: rename ir_ui_view_id by view_id to fit odoo coding style 2017-09-26 16:10:39 +02:00
rde acd0b6da14 [IMP] website: pageManagement - improvements according to first feedbacks
- labelling and screen redesign (update labels, hide labels, hide fields, ...)
 - make UI more mobile friendly (icon biggest, color using less variables,...)
 - Page & Redirection menu are for visible only in debug mode
 - Add meta noindex for website.page not shown in sitemap
 - Add mechanism to be able to edit in backend a broken view
	(Needed for - Internal Error 500, css, js file, ...)
 - website pagemanager dedicated to website_publisher only
2017-09-25 10:53:28 +02:00
rde 4ecbacaf59 [ADD] website: add new page management
website.page = old ir.ui.view with page=True
website.redirect is a new mechanism to replace in the futur the ir.attachment
mechanism of redirect.

From now, we don't have a specific /page controller to serve 'page'.

We use a new model website.page which is rendered if none route matches the url
 and that the field 'url' on website.page matches the request.httprequest.path.

The order to serve a path is:
    - Routes defines in controllers (/shop, /blog, ...)
    - ir.attachment with name matching the path
    - website.page with url matching the path
    - website.redirect with url_from matching the path
    - 404

To improve:
    - allow regexp in website.redirect model
    - allow to edit the view_arch from the page.management via redirect backend
      (needed when traceback in the page, or when modifying a js/css/less/...)
2017-09-15 15:29:37 +02:00
Yannick Tivisse 7e008469e4 [IMP] base: Always load menuitem xmlids on templates
PURPOSE
=======

Currently we can choose to load the xmlid of a menuitem if web_tour is installed by setting the attribute `load_xmlid=True` on the view.

This is strange for 2 reasons:
- Searching all the ir.model.data on menuitems with load_xmlid=True to compute its xmlid, searching the related subtree on the returned structure of the method load_menus is quite complicated for the perfomance gain (if there is any perfomance gain to do it)
- This is not working in community in frontend, as only the root menuitems are loaded, thus it is the `load_menus_root` instead of the `load_menus` that is called. This issue prevent a tour step to be displayed correctly on community and enterprise on a menuitem.

SPECIFICATION
=============

Remove all the `load_xmlid` attributes and the related mechanism and move it into base to always load the xmlids for all the menuitems. It won't bee to heavy as the result is cached.

It's better the keep the current mechanism (Load the xmlids from ir.model.data and insert them into the tree) as we only make 1 search to the ir.model.data
2017-05-26 13:13:12 +02:00
Siddharth Gajjar 6110eb969d [IMP] website_sale: update create product tour
Purpose
=======

People who want to start an ecommerce expect to directly deal with products.
for now they are suggested to design a homepage first.

-> specific onboarding for ecommerce in order to start from shop page

Specs
=====

new tour for website_sale (start in /shop page):
Let's create your first product. https://drive.google.com/a/odoo.com/file/d/0B1uIL9E_zXrrT3VOZDk1V3Z0d0k/view?usp=drivesdk
same steps than now to create the first product
once product save, take to the backend:
https://drive.google.com/a/odoo.com/file/d/0B1uIL9E_zXrrMjI4TlRZdDBLWVk/view?usp=drivesdk
https://drive.google.com/a/odoo.com/file/d/0B1uIL9E_zXrrckNLZWthekFRSXM/view?usp=drivesdk

remove the 2 tips in pictures modal (because people don't follow them)  https://drive.google.com/a/odoo.com/file/d/0B1uIL9E_zXrrOEQxUlJDZk1vd3M/view?usp=drivesdk
suggest instead to upload a picture
2017-05-26 13:13:12 +02:00
Rohan Patel 79597a2b84 [REF] website: merge Website and Website Admin menu items
This commit merge the two website menu items in order to ease user flow
inside Odoo. When clicking on the Website item a server action is called
that decides to redirect the user either to the dashboard if the user is
an admin or a website publisher, either to the website for other people.
Overriding this method allows to define a specific behavior. Future commit
will also redirect sales people to the website dashboard.

Dashboard itself is customized to add a header used to display a website
button. It will be used in future commits to add other new stuff to the
dashboard.
2017-03-03 16:57:06 +01:00
Rohan Patel 47b532638e [IMP] website_*: improve groups on website menu items
This commit adds required groups on website application menu items
like blog and slides. It also move Website Admin menu definition from
res config views to website views, because it is where it should
always have been defined.

This commit also update some sequences to reorder Apps.
2017-03-03 16:57:06 +01:00
Martin Geubelle 742cadaea8 [IMP] *: clean technical views (usability)
This closes the task #30074.
2017-01-04 10:22:48 +01:00
Thibault Delavallée efd55ab8a5 [REF] various: rename openerp node to odoo in xml files 2016-08-10 15:48:10 +02:00
Jérome Maes 73749499f0 [MOV] website: split files, reoganize file per models 2016-08-04 12:02:13 +02:00
Olivier Dony 9376dd6142 [FIX] website: select default language according to database defaults
- Deduplicate default website definition
- Remove hardcoded english values
- All active languages enabled in the website by default
- Default website language = default database language
2015-11-20 11:14:44 +01:00
Ronak Baxi 393f136509 [IMP] *: Uniformize all modal footers
The main button has classnames btn btn-primary.
Other buttons have classnames btn btn-default.
No more 'or' between the buttons.
2015-08-19 08:10:45 +02:00
Raphael Collet cd925255b7 [FIX] addons: view extensions are no longer based on attribute string
In view inheritance, selecting an element based on the attribute `string` is
broken, since this attribute may be translated before the inheritance is
applied.  This fixes existing views to avoid such selections.
2015-07-06 16:58:04 +02:00
Christophe Simonis e13923c0db [IMP] website: better website.menu view 2015-02-20 17:45:16 +01:00
Goffin Simon 9850080eb0 [ADD] Versioning Module.
This module allow to make versioning and A/B testing of the website.
2015-01-16 23:13:58 +01:00
Christophe Simonis d248ae0669 Revert "[ADD] website_version: website versioning and ab testing"
With more than 100 comments on github[1], this commit is clearly not
production-ready.

This reverts commit c255b5bc34, reversing
changes made to e5ac65de59.

[1] https://github.com/odoo/odoo/commit/c255b5bc3461c803e38057c72c45530235de84dd
2015-01-08 14:49:18 +01:00
Goffin Simon 421a76dabb [ADD] Versioning Module. 2015-01-07 18:17:13 +01:00
Richard Mathot 657371a061 [FIX] website: Odoo's social URLs 2014-12-11 11:19:26 +01:00
Fabien Pinckaers d51157154e [IMP] Website name instead of company name in title and logo 2014-09-22 09:21:14 +02:00
Goffin Simon 257187537b [ADD] Added custom search view for website.menu 2014-09-16 14:12:00 +02:00
Goffin Simon 5f258c831e [WIP] Multi website 2014-09-16 14:11:08 +02:00
Olivier Dony 999876f8bc [IMP] website: update sample social media accounts 2014-07-30 13:24:39 +02:00
Fabien Meghazi faa09da325 Removed version="7.0" from form views 2014-06-12 09:09:59 +02:00
Fabien Meghazi 05c598f0b3 [ADD] website.menu editable list in website config
bzr revid: fme@openerp.com-20140512113820-oidhod8ovqp3nh9a
2014-05-12 13:38:20 +02:00
Christophe Matthieu b1462a9d30 [IMP] website: res_config with wizard
bzr revid: chm@openerp.com-20140127173816-uldoee71h7ntpyhl
2014-01-27 18:38:16 +01:00
ddm@openerp.com 0813603be5 [IMP] Rename menu item
bzr revid: ddm@openerp.com-20140123151300-xxgsz3h7lmt516m1
2014-01-23 16:13:00 +01:00
ddm@openerp.com 8ee6f53005 [IMP] Move website settings to 'Configration' wizard
bzr revid: ddm@openerp.com-20140123150317-9vxccax7vn2xls9x
2014-01-23 16:03:17 +01:00
ddm@openerp.com d5afe7e5b9 [FIX] move Google Analytics key to correct group
bzr revid: ddm@openerp.com-20140121165942-yen9xlfgme5u00o6
2014-01-21 17:59:42 +01:00
ddm@openerp.com 1c3a7a8fd3 [IMP] Add support for Google Analytics
bzr revid: ddm@openerp.com-20140121163456-i3v3a7oh8qejc9oo
2014-01-21 17:34:56 +01:00