Commit Graph
100 Commits
Author SHA1 Message Date
Thibault Delavallée a7ac71ed44 [FIX][IMP] various: perform small cleanup of mail templates
Notably
 * remove cdata and fix html code when necessary;
 * re-order fields declaration to have globally the same order in various
   template definition;
 * remove unnecessary reply-to, make user signature and auto delete fields
   explicit when necessary;
 * improve some name to ease template ordering and understanding in the
   template list view;

Related to task 1972615
Linked to PR #32872

Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2019-04-23 14:26:50 +00:00
Thibault Delavallée 678e04c19d [FIX][IMP] various: improve lang computation in mail templates
Purpose: add lang definition on templates where it is missing

Related to task 1972615
Linked to PR #32872
2019-04-23 14:26:50 +00:00
Thibault Delavallée 0b74c9ab6e [FIX][IMP] various: improve recipients computation in mail templates
Purpose: use more email_formatted when possible, clean and simplify
email_from, email_to and partner_to computation.

Next step is to try to extract some common patterns in tools or methods in
order to simplify template creation and customization.

Related to task 1972615
Linked to PR #32872
2019-04-23 14:26:50 +00:00
Thibault Delavallée 30871950d2 [IMP] hr: improve plan views
Some fields are missing to ease configuration and daily use of plan and plan
activity types.

While we are at it some xml ids are updated according to guidelines.

Commit linked to task ID 1923387 and PR #30235.
2019-04-23 10:53:33 +00:00
Thibault Delavallée 5ce8f1e375 [REF] hr: clean some bits of models in plan
Containing

 * add missing rec name;
 * improve responsible computation;

Commit linked to task ID 1923387 and PR #30235.
2019-04-23 10:53:33 +00:00
Thibault Delavallée bea9662632 [REF] hr: allow to customize activity types in plan
Purpose of this merge is to avoid having to define custom activity types for
each step of HR onboarding plan. This is done by adding a summary field
on hr activities, allowing to use default Todo activity type and customize
directly the summary itself.

Using custom activity types is still possible. Here we allow to avoid noise
and having too much activity types defined as most of those activities can
be simulated using the default Todo.

People can still define and use their own activity types if necessary and
required in their daily workflow.

Commit linked to task ID 1923387 and PR #30235.
2019-04-23 10:53:33 +00:00
Thibault Delavallée 924a6d2a8a [MOV] hr: move files according to guidelines
Recent merge d5fd84b89a added onboarding plans to employees with some
new models. However conventions for naming files and views are not done.
This commit fixes that to ensure code readability.

Commit linked to task ID 1923387 and PR #30235.
2019-04-23 10:53:33 +00:00
Thibault Delavallée 732ec79767 [IMP] link_tracker, mass_mailing: improve link tracker, click and mail statistic views
Purpose is to have more information available in list and form views. As
trying to access those models is a technical move let us give users all
necessary information to understand / debug a bit what happens.

Concerning links we add necessary view type and fields to ease understanding
of tracking data. Notably in mass mailing mailing related information is added
for clicks.

This commit is linked to task ID 1924711 and PR #30059.

Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2019-04-15 09:26:23 +00:00
Thibault Delavallée 32c2af2376 [FIX] mass_mailing: correctly find partner email in mass mailing
In mass mailing access to partners when performing a mass mailing has been
done in batch to speedup computation [1]. Emails are put into a dictionary
allowing to find back the email based on partner_id.

However the matching between the partner and its emails is done using a
shortcut using the current document ID as partner ID. It works when performing
a mass mailing on partners but fails when performing a mass mailing on models
having message_get_default_recipients not returning only emails. Currently
in saas-14 main models return only emails (crm, event, mailing contacts) but
other models may encounter issues (applicants, tickets).

This commit fixes it by correctly matching partner id and its found email.

[1] See 65ed4553a5
2019-04-08 15:18:18 +02:00
Thibault Delavallée ebba721130 [FIX] mass_mailing: fix statistic state computation
Replied / Bounced / Opened states should be computed prior to Sent state.
Indeed Sent is the default state once the email is sent. Then replied,
bounced and opened are states that happen after sending the email. It
is therefore necessary to re-order the state computation to correctly compute
the statistic state.

Related to task ID 1924711
Linked to PR #32496

Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2019-04-08 12:39:41 +00:00
Thibault Delavallée b0491c4445 [FIX] mass_mailing: correctly find partner email in mass mailing
In mass mailing access to partners when performing a mass mailing has been
done in batch to speedup computation [1]. Emails are put into a dictionary
allowing to find back the email based on partner_id.

However the matching between the partner and its emails is done using a
shortcut using the current document ID as partner ID. It works when performing
a mass mailing on partners but fails when performing a mass mailing on models
having message_get_default_recipients not returning only emails. Currently
in saas-14 main models return only emails (crm, event, mailing contacts) but
other models may encounter issues (applicants, tickets).

This commit fixes it by correctly matching partner id and its found email.

Related to task ID 1924711
Linked to PR #32496

[1] See 65ed4553a5
2019-04-08 12:39:18 +00:00
Thibault Delavallée 02f5b654c3 [FIX] website_slides: fix vote karma
Currently doing a like then dislike does not give a void karma total. Indeed
karma is removed / added only when the vote hits 1 or -1 but does not correctly
take into account the third (void) state. We also avoid adding karma when
upvoting / downvoting an already upvoted / downvoted slide. Interface does
not allow it but avoiding to add karma at model level is always a good idea.

Karma-related tests are improved a bit.

Commit linked to task ID 1958810 and PR #32057

Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2019-03-25 12:39:32 +00:00
Thibault Delavallée 534822e54c [REF] website_slides: better completion computation
Purpose is to avoid having to recompute too much stuff. Indeed currently
slide.channel.partner completion field depends on its channel number of
slides. It means adding a slide on a channel having a lot of members will
trigger the recompute of all its slide channel information.

Instead completion on slide.channel.partner is now simply the number of
completed slides. Computed (not stored) field on channel that indicates
current user status is now based on total slide (completion / total slides).

Commit linked to task ID 1958810 and PR #32057
2019-03-25 12:18:28 +00:00
Thibault Delavallée eb045af676 [FIX] website_slides: remove unnecessary sudo in computed field
As we always update slide / partner relationship using sudo let us remove
unnecessary sudo in the computed field.

Tests are added to ensure it is effectively working. At least probably.

Commit linked to task ID 1958810 and PR #32057
2019-03-25 12:18:28 +00:00
Thibault Delavallée ae636d0739 [FIX] website_slides: remove reference to google+ in lesson statistics update
Let us consider this great social network is not necessary anymore.

Commit linked to task ID 1941250 and PR #31977
2019-03-21 11:45:40 +00:00
Thibault Delavallée de139a8508 [REF] website_slides: cleanup scss ordering, remove unused classes, add placeholder images
Commit linked to task ID 1941250 and PR #31977
2019-03-21 11:39:20 +00:00
Thibault Delavallée 0b47b2f22c [REF] l10n_it_edi, website_forum: give email_from / author when creating messages and mails
Purpose: clean mail.mail creation code and use standard mail creation or
template send_mail method. In those addons we ensure author and email_from
are set to maching values, leading to more consistent emails.

Related task ID 1965040
PR #32459

Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2019-04-05 14:05:31 +00:00
Thibault Delavallée ea3f4690aa [REF] crm_iap_lead: correctly use template to send emails
Purpose: clean mail.mail creation code and use standard mail creation or
template send_mail method.

In crm iap lead we can avoid custom mail creation by correctly using
send_mail method of mail template and its arguments.

Related task ID 1965040
PR #32459
2019-04-05 14:05:31 +00:00
Thibault Delavallée e7905b820d [REF] calendar: clean strange email send code
Purpose: clean mail.mail creation code and use standard mail creation or
template send_mail method.

In calendar there was strange code creating an email based on a template
then updating some values on its mail.message record created through
inherits. It seems simpler to correctly set some specific email arguments
to MailTemplate.send_mail() method and avoid this kind of code construction.

Related task ID 1965040
PR #32459
2019-04-05 14:05:31 +00:00
Thibault Delavallée 742effec8d [FIX] mail_template: correctly compute / update attachment_ids in send mail
Attachments when generating an email based on a template are done in two
steps, see notably [1]. However mail generation replaces attachments using
a 6 command. This means existing attachments given through email_values
are not correctly managed and this leads to invalid command given to the
m2m field.

This commit fixes that by correctly generating a list of commands, using
4 (add) for new attachments coming notably from reports linked to the template.

Related task ID 1965040
PR #32459

[1] https://github.com/odoo/odoo/commit/f789005c9a6c26322565a1af7cc4e57a60eab9f0
2019-04-05 14:01:13 +00:00
Thibault Delavallée 8160c62a5b [IMP] mail: remove inheritance of composer on message
Base issue: unnecessary inherit of composer on mail.message. Indeed there are
a lot of unused fields coming from mail.message as well as message specific
behavior (notify, check access, various business methods) not relevant for
composer.

Specifications
 * remove inherit from mail.message;
 * re-define used fields;
 * ensure everything still works;

Commit linked to task ID 1907153 and PR #28464

Signed-off-by: Xavier Dollé (xdo) <xdo@odoo.com>
2019-04-03 13:01:27 +00:00
Thibault Delavallée 1fc047a2a2 [FIX] website_forum: remove not working channel_ids given to composer
Mail composer does not support channels. Indeed as it can be used to post
a message or send an email it only supports partners. Previously field
channel_ids given to the composer was used only in website_forum. However
it is not used and therefore simplest way of solving it is to remove it.

Anyway allowing to have channels followers of forum tags and being notified
of new publications is probably more spammy than really necessary. Especially
that it never worked.

Commit linked to task ID 1907153 and PR #28464
2019-04-03 13:01:27 +00:00
Thibault Delavallée 79c082c45a [IMP] test_mail: update counters
Some counters are not up to date notably taking in to account community-only
and test-mail with enterprise only counters. Those are used notably when
developing to ease quick check of counters.

closes odoo/odoo#32370

Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2019-04-03 09:40:52 +00:00
Thibault Delavallée 57004e22b0 [FIX] website_slides_survey: avoid issue when fetching certification information
Information was already present, let us use it instead of having access issues
on membership.

Commit linked to task ID 1941250 and PR #31708.

Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2019-03-08 14:51:25 +00:00
Thibault Delavallée bccfe8a418 [IMP] website_slides: display a flag for unpublished lessons in course list view
It helps course maintainers understanding the state of their lessons.

Commit linked to task ID 1941250 and PR #31708.
2019-03-08 14:51:25 +00:00
Thibault Delavallée 6b7eeac56d [FIX] website_slides: fix domain computation of a channel slide list
When displaying a channel content all its slides are displayed in a
list view or cards view. Even slides current user cannot read because
he is not member of the channel are displayed, even if there is no link
(and access rights prevent them for effectively accessing the slide).
Purpose is to display a channel content without giving access through
ACLS at its slides.

However this domain computation was not correctly matching real use case
 * publishers should see everything;
 * public users should not see unpublished slides;
 * members not publishers should not see unpublished slides unless they
   uploaded it;

Commit linked to task ID 1941250 and PR #31708.
2019-03-08 14:51:05 +00:00
Thibault Delavallée edf68bde6c [REF] website_slides: extract code to have slides per category
Purpose of this commit is to have a method allowing to fetch slides
and have them ordered by category with some info on the category. It
fully supports uncategorized slides.

This commit also fixes the lessons list view of a training course. When
having rights to edit the channel the category name was not editable.
We now use a real browse record allowing to edit the category names
directly in this reorderable list view.

Commit linked to task ID 1941250 and PR #31708 .
2019-03-08 14:46:32 +00:00
Thibault Delavallée 7afd23e56c [FIX] website_slides: various fixes
Display
 * improve color of trophy displayed on top of course main page (success if
   course done, warning while working on it);
 * correctly fetch and display karma/xp points on course lesson list. It is
   either gain of next try, either awarded points depending on slide
   completion;
 * fix control buttons in course main page (prev, next, set done,
   set completed, fullscren), notably correctly set them disabled;

Linting / Code
 * put demo in no update;
 * rename some parameter in website_slides_survey to avoid conflict between
   quiz (on a slide) and certification (a survey);

 Commit linked to task ID 1941250 and PR #31697.

Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2019-03-08 11:15:07 +00:00
Thibault Delavallée 20e68b3297 [REF] website_slides: rework standard lesson page view
Purpose of this commit is to perform a cleaning and upgrade of the lesson
view in front-end when not using the fullscreen mode. This page had not
been updated since eLearning addition.

A method is added on slide model to have a protected method computing quiz
related information on a given set of slides, notably potential karma gain,
gained karma and number of attempts. It is mainly a code move from controllers
now working in batch.

Some linting is also done, notably a badly-named file.

See original eLearning task for main specifications [1].

Commit linked to task ID 1941250 and PR #31657.

[1] See task ID 1902304

Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2019-03-07 19:51:33 +00:00
Thibault Delavallée 273fc4af6e [IMP] guidelines: remove actually wanted PEP8 options
Task-1817988

closes odoo/odoo#28714

Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2019-03-05 08:43:31 +00:00
Thibault Delavallée d256350f34 [IMP] guidelines: improve xml ids naming section
* rewording of XML naming section
* remove the convention of suffixing inherited XML ids
  with `_inherit_my_module, as the information is in the
  complete XML id name (prefixed by module name). This will
  avoid too long XML ids.
* extend convention for the name of groups, views, ...

Task-1817988
2019-03-05 08:41:23 +00:00
Thibault Delavallée 64662cc2a9 [IMP] doc: add guidelines for window actions naming
Rewording of "action" naming section.

Task-1817988
2019-03-05 08:40:37 +00:00
Thibault Delavallée 62d0eee644 [FIX] website_slides_forum: put demo in demo
Otherwise zizisse error traceback prone.

closes odoo/odoo#31672

Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2019-03-07 15:33:37 +00:00
Thibault Delavallée 47b308d8ae [FIX] website_slides: correctly return deferred when calling slide routes in fullscreen
I promise to fix all deferred. Huk huk huk.

Commit linked to task ID 1941250 and PR #31584.
2019-03-07 09:41:43 +00:00
Thibault Delavallée 31d9bbd904 [FIX] website_slides: add gray background to lesson not fullscreen display
Simple fix to already have the standard gray background. Future commits will
improve display of not fullscreen lessons but this fix was necessary for
incoming work.

Commit linked to task ID 1941250 and PR #31512.
2019-03-06 14:03:17 +00:00
Thibault Delavallée 9e7c5537d2 [FIX] website_slides: fix set viewed slide
Currently a slide that can be previewed is never set as completed. Correct
condition to not update the hard slide-partner relationship is:

 * either current user is public;
 * either current slide is not published (happens when a publisher sees still
   unpublished lessons);
 * either current user is not member of slide channel (happens when seeing a
  free preview slide without being channel member);

Commit linked to task ID 1941250 and PR #31512.
2019-03-06 14:03:17 +00:00
Thibault Delavallée 3bdccc0867 [FIX] website_slides: latest courses should display all my courses
Correctly fetch courses the current user is a member of, not those he already
finished at least a lesson.

Commit linked to task ID 1941250 and PR #31512.
2019-03-06 14:03:17 +00:00
Thibault Delavallée 711a48aaa8 [REF] website_slides: clean slide fetch details method and controller
Currently there is a tool method on controller allowing to prepare some
slide related data. However controllers still add values in the slide
dictionary outside of this method, making it non consistent.

Let us prepare all side related data in this tool method to simplify code
understanding.

Commit linked to task ID 1941250 and PR #31512.
2019-03-06 14:03:17 +00:00
Thibault Delavallée 181e6487ef [IMP] website_slides: reorder controller code to ease understanding
Purpose is to order methods and routes according to the main related model.
Main routes are above, then tools (sub routes, json routes).

Commit linked to task ID 1941250 and PR #31512.
2019-03-06 14:03:17 +00:00
Thibault Delavallée 813943c8bc [IMP] website_slides: improve demo related to quizzes
Purpose is to have a bit more demo data allowing to test quizzes and see
how they behave. Notably

 * have more than one question in existing quizzes to check answer validation
   more in-depth;
 * have more than 2 answers to check answer highlighting more in-depth;
 * clean a bit user related demo for channels and slides;

Commit linked to task ID 1941250 and PR #31512.
2019-03-06 14:03:16 +00:00
Thibault Delavallée 7836b99690 [REV] base: revert "Hide Save/Discard on Settings until there are modifications"
Why reverting ?

The fact that the control panel changes width on first edit is confusing to the
user. The whole form shifts down. We want to avoid having elements appearing
and disappearing. The issue that the user does not know if he has to save is
still up to date, and will be addressed in the next saas. We will most likely
use what has been done in this task to only display 'There are unsaved
changes'. Thank you all for your work here!

Original task and revert discussion can be found on task ID 1917637 .

This reverts commit 514d6fb90d.

closes odoo/odoo#31622

Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2019-03-06 09:53:55 +00:00
Thibault Delavallée dc76c99a1e [FIX] website_slides: fix display of lessons in training course
Currently slides are displayed in a reorderable list, using current user
access rights. This means external customers see only published and free
lessons.

However purpose of course page is to display all lessons, and display
only available ones as clickable. Other one should be displayed as muted
to tease people.

Note that a specific lesson page does check for access rights. Here we
just display all lessons names. A label for free preview is also added.

Fetch of data when displaying a channel is therefore a bit modified as
there are less differences between training and documentation channels.
User progress is also updated to be easier to use in templates.

Commit linked to task ID 1941250 and PR #31453
2019-03-04 16:28:27 +00:00
Thibault Delavallée 2ab2de24f2 [FIX] website_slides: add missing presentation icon used in some templates
A specific template to display an icon depending on slide type has been
added recently. However presentation icon was missing. This commit fixes
that.

We also added an option to tune the classes added on the icon. It gives more
flexibility when using it.

Commit linked to task ID 1941250 and PR #31453
2019-03-04 16:13:21 +00:00
Thibault Delavallée adcdb4e0f0 [FIX] website_slides: various models improvements
Purpose of this commit is to fix and improve some model related bits of
code:

 * add an ondelete cascade on some required fields;
 * make a public method private because it should be accessed only through
   controllers;
 * do not add odoobot as channel member; notably for demo data it can create
   unnecessary of noise in members and notifications;

Commit linked to task ID 1941250 and PR #31453
2019-03-04 16:13:04 +00:00
Thibault Delavallée 2f8ea621a8 [IMP] website_slides(_*): improve demo data
Purpose of this commit is to improve eLearning demo data. Notably links
(links to external resources on a given slide) and quizzes (allowing to
gain karma) are added. Some slides are added. Demo user interaction with
eLearning is also added, such as membership and votes. Finally a channel
is specifically kept specific to 1 single slide of type certification as
its flow has to bypass some screens when selling pure certifications.

Commit linked to task ID 1941250 and PR #31453
2019-03-04 16:12:57 +00:00
Thibault Delavallée 8993e9cfd2 [REF] website_slides: split course sidebar and move fullscreen templates
Moves

 * sidebar of course main template in its own template;
 * fullscreen templates in their own file;

It will ease future modification of this page layout.

Commit linked to task ID 1942852 and PR #31394.
2019-02-26 16:13:19 +00:00
Thibault Delavallée ede6a90728 [REF] website_slides: lint slide like / dislike widget
Just apply some linting and naming convention.

Commit linked to task ID 1942852 and PR #31394.
2019-02-26 16:13:19 +00:00
Thibault Delavallée a0f923c3a8 [REF] website_slides: lint course join widget
Just apply some linting and naming convention.

Commit linked to task ID 1942852 and PR #31394.
2019-02-26 16:13:19 +00:00
Thibault Delavallée 76bfcef0b9 [FIX] website_slides: fix call to set_completed
Currently fullscreen widget calls a user-specific route as public user if
user is not logged. Purpose of this commit is to avoid JS crash. Some
code cleaning is also done. This small feature will have to be cleaned more
in-depth in a near future.

Commit linked to task ID 1942852 and PR #31394.
2019-02-26 16:07:48 +00:00
Thibault Delavallée fdc36c5c37 [IMP] website_slides: improve main course page in documentation mode
Purpose is to clean a bit the card layout in documentation courses, notably

 * better layout for cards:
 * fetch (in controller as slides in course display are sudo-ed to display
   a card even if current user has no access) completion data and display it;

Commit linked to task ID 1941250 and PR #31317.
2019-02-21 16:38:20 +00:00
Thibault Delavallée e85c99c145 [FIX] gamification: improve next rank icons
Background of icons should be transparent.

Commit linked to task ID 1941250 and PR #31317.
2019-02-21 16:37:52 +00:00
Thibault Delavallée 026663fb2b [IMP] website_slides: slightly improve demo data
Some addition to demo data, notably some members and a few more slides.
I bet there will be other commits improving demo data, one slide at a time.

Commit linked to task ID 1941250 and PR #31317.
2019-02-21 16:37:47 +00:00
Thibault Delavallée 59f439a3f9 [IMP] website_slides: do not display channel information and featured slide if search
Commit linked to task ID 1941250 and PR #31279.
2019-02-21 06:57:04 +00:00
Thibault DelavalléeandStefano Rigano cb483d2aa6 [IMP] website_slides: fix and improve homepage
Various fixes linked to homepage of courses

 * move channel navigation in its right container, clean its display and
   related templating;
 * display a Completed badge for completed courses;
 * display a cropped image for channel image card in order to avoid blank lines
   around image not having the right aspect ratio;
 * use standard qweb widgets, notably float_time;
 * make header and footer of /slides and /slides/all editable and improve
   their styling;
 * remove old and unused css linked to previous versions of homepage;
 * various small code cleaning;

Commit linked to task ID 1941250 and PR #31279.

Co-Authored-By: Thibault Delavallée <tde@odoo.com>
Co-Authored-By: Stefano Rigano <sri@odoo.com>
2019-02-21 06:57:04 +00:00
Thibault Delavallée 86226b52d3 [IMP] website_slides_*: update manifests
Commit linked to task ID 1941250 and PR #31279.
2019-02-21 06:57:03 +00:00
Thibault Delavallée 72438ee5dc [FIX] website_slides: fix typo
closes odoo/odoo#31282
2019-02-20 15:10:30 +00:00
Thibault Delavallée 3ecacb31a9 [REF] website_slide: split short from long description in channel model
Purpose of this commit is to provide a better way to display channel information.
Description is split into two fields. A text one, holding the short description
and used in channel header. A long html one, holding more details course
description.

Commit linked to task ID 1941250 and PR #31272.
2019-02-20 12:55:36 +00:00
Thibault Delavallée f43faad5a3 [REF] website_slide: rename statistics fields on channel and category models
Purpose is to reduce model naming complexity. Currently you have: slide_type
<type>, and related statistics on channel and category nbr_<type>s with a
trailing and error-prone s. Let us remove the trailing s to reduce complexity
of code reading. Some code cleaning in statistics computation is also done.

Commit linked to task ID 1941250 and PR #31272.
2019-02-20 12:24:30 +00:00
Thibault Delavallée 4e116ef055 [REF] website_slides: use mixin.image on channel and slide models
This recently introduced mixin allows to hide complexity of defining, using
and resizing images. Let us use it in channel and image model.

Commit linked to task ID 1941250 and PR #31272.
2019-02-20 12:24:30 +00:00
Thibault Delavallée 0e56426252 [FIX] website_slides: clean some model-related parameters
Quiz questions and answers should be translatable as they are intended
for end users and are displayed in courses frontend. Some required fields
are also missing. Some docstrings are cleaned.

Commit linked to task ID 1941250 and PR #31272.
2019-02-20 12:24:30 +00:00
Thibault Delavallée c6f473a914 [MOV] website_slides: split channel-type specific display in course into sub templates
It will ease maintenance and polish of those templates.

Commit linked to task ID 1941250 and PR #31272.
2019-02-20 12:24:30 +00:00
Thibault Delavallée 9ae7f5a261 [IMP] website_slides: perform some code linting and re-order frontend templates
Purpose is to perform some linting in code. No functional change should
occur with this commit, only some code move. Diff may appear huge but
it is just because some files are split.

This cleaning allow to better understand code and templates architecture
now that eLearning feature has landed in Odoo Community. It will ease future
additions, modifications and fixes.

Containing :
 * [REF] make some internal slide-related methods private as they are not
   intended to be called by outside world;
 * [MOV] new channel invite wizard in wizard folder;
 * [MOV] split frontend templates in some files to better locate code. There is
   now files for homepage, course, lesson, embed and utils in addition to
   slide-related profile template;
 * [REM] dead (unused) templates;

Commit linked to task ID 1941250 and PR #31272.
2019-02-20 12:09:01 +00:00
Thibault DelavalléeandAurélien Warnon 49a005bbd1 [FIX] website_slides: set slide as completed only for valid members
Indeed some slides are available for external people if is_preview is set
to True. It indicates slide is available for teasing. It should not be
marked as completed for non members.

This commit is linked to task ID 1942836 and PR #31239.

Co-Authored-By: Aurélien Warnon <awa@odoo.com>
Co-Authored-By: Thibault Delavallée <tde@odoo.com>
2019-02-19 16:54:23 +00:00
Thibault DelavalléeandAurélien Warnon 4f380f4aeb [FIX] website_slides: (temporarily) fix infinite loop
Do not fall into an infinite loop when fetching content of an empty webpage
slide in the newly-introduced fullscreen mode.

This commit is linked to task ID 1942836 and PR #31239.

Co-Authored-By: Aurélien Warnon <awa@odoo.com>
Co-Authored-By: Thibault Delavallée <tde@odoo.com>
2019-02-19 16:54:18 +00:00
Thibault DelavalléeandAurélien Warnon 18f917fe3b [REF] website_slides: improve and make access options clearer
Purpose is to ensure more advanced use cases are still supported in new
elearning platform in addition to more public use cases. Fields controlling
access are now

 * enroll: who can enroll on course: public (everyone, simply click on join
   button), invite (added by already members) and payment (in bridge with
   website_sale, if SO with product is confirmed);
 * enroll_group_ids: automatically add members of those groups to the channel
   to ease having groups for a given subset of users;
 * visibility: who can see a channel and its slides: public (everyone, it means
   channel is visible on website for example), members (hidden for non members)
 * website_published on channels and slides; non publishers cannot see what
   is not published, whatever other parameters;
 * upload_group_ids: who can upload on a channel;
 * download_security on a slide is completely removed as it makes no sense
   for most slide types;

To ensure a better user experience responsible of a channel is added in its
members. People uploading a slide are now also allowed to read it to avoid
having inconsistency behavior between upload_group_ids and access rules.

Some tests are added.

This commit is linked to task ID 1942836 and PR #31239.

Co-Authored-By: Aurélien Warnon <awa@odoo.com>
Co-Authored-By: Thibault Delavallée <tde@odoo.com>
2019-02-19 16:52:07 +00:00
Thibault Delavallée 76c25f1c3c [FIX][ADD] website_sale_stock(_product_configurator): move option to its bridge module
Since recent changes product configurator is now located in its own module.
Some code remaining in website_sale_stock should be located in its own
bridge module.

closes odoo/odoo#32336

Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2019-04-02 11:45:44 +00:00
Thibault Delavallée 02f548ce9e [FIX] stock_account: fix reference to undefined variable
post_inventory method does not return anything (in stock), and True (in
mrp). Anyway the returned result is not used anywhere and does not have
any meaning.

In stock_account call to super is done on some sub record sets and result
of super is returned. However due to code architecture it is unsure whether
super is actually called. Let us avoid any issue with res being undefined if
there is no call to super done.
2019-04-02 11:42:55 +00:00
Thibault Delavallée 0fe26b382c [FIX] website_slides: fix computation of completed courses 2019-02-18 14:53:10 +00:00
Thibault Delavallée 5822e3098c [FIX] website_slides: fix text / html mismatch in demo data
Slide description is actually a text field, no need to put html tags that
are displayed raw.

Commit linked to task ID 1941250 and PR #31133.
2019-02-15 17:46:03 +00:00
Thibault Delavallée bd2dae4f6d [IMP] website_profile, website_slides: add user ranking and karma on elearning main pages
Purpose of this commit is to improve karma and gamification inclusion in
elearning [1].

 * remove a border, replaced by a standard hr, in rank template. It allows to
   reuse it easier as we don't necessarily want that border in other templates
   using it;

Commit linked to task ID 1941250 and PR #31133.

[1] task ID 1922159 (landed at 5fa651cb01)
2019-02-15 17:45:55 +00:00
Thibault Delavallée 1bb7b242c0 [FIX] website_profile, website_slides: clean user avatar controller and add one for slides
Purpose of this commit is to

 * clean user avatar controller and its calls;
 * extract default image computation;
 * add a controller to get slide image even when not having access to the slide
   as all slide name and images are displayed even if not available to the
   current user;

Commit linked to task ID 1941250 and PR #31133.
2019-02-15 17:45:41 +00:00
Thibault Delavallée e7b3535884 [REF] gamification: clean next rank motivational implementation
Purpose of this commit is to clean motivational capabilities of gamification
ranks[1]. It makes more sense to store a motivational to achieve on next rank
itself. We therefore rename the field and provide nice demo data that will be
used in elearning use of gamification ranks.

Commit linked to task ID 1941250 and PR #31133.

[1] task ID 1922159 (landed at 91ee6ba5a7)
2019-02-15 17:45:11 +00:00
Thibault Delavallée 6a9f6876c1 [FIX] website_slides: fix some statistics and publication issues
This commit fixes various issues introduced by recent commits in slides

 * fix slide type computation: using a dict in a fromkeys makes a shared
   object for all keys. It is better to fix that behavior;
 * correctly display number of course steps in elearning homepage. Currently
   number of steps of a course is simply the length of its one2many;
   holding slides. However this one depends on access rights which give funny
   results like a course with 2 steps for public users and 7 for admin;
   Right computation is: number of published lessons, whatever your access
   rights are. This is already computed as total_slides;
 * people that cannot publish should not be able to unpublish;

Commit linked to task ID 1941250 and PR #31133.
2019-02-15 17:44:02 +00:00
Thibault Delavallée e900e9b06e [IMP] website_slides_forum: add forum navigation tab in course display and add demo data
Purpose of this commit is to add the forum tab in course main new page
when the course is linked to a forum. Some demo data are added.
Some more work to better include forums and courses are ongoing [1].

This commit is linked to task ID 1936153 and PR #30770.

[1] forum and comments upgrade: task ID 1940516 - PR #30514 and #31097
2019-02-15 09:58:27 +00:00
Thibault Delavallée 2efb7e09ce [REF] website_sale_slides: improve demo data
Pimp my demo data. Purpose is to have some additional informations on demo
data defined in bridge module sale / slides. This one notably defines
a payment-based channel.

This commit is linked to task ID 1936153 and PR #30770.
2019-02-15 09:58:27 +00:00
Thibault DelavalléeandAurélien Warnon ded92c62d2 [IMP] website_sale_slides: support payment channels in new channel homepage
Purpose of this commit is to effectively support payment channels in the
new channel homepage. Specifications

 * display a 'Buy Course' button on payment based channels;
 * redirect to eCommerce;
 * display price;

We used everything available from eCommerce and product configurator to
find a real price to display. I must say I am quite happy with it.

This commit is linked to task ID 1936153 and PR #30770.

Co-Authored-By: Aurélien Warnon <awa@odoo.com>
Co-Authored-By: Thibault Delavallee <tde@odoo.com>
2019-02-15 09:58:26 +00:00
Thibault DelavalléeandAurélien Warnon 8f295a64f3 [REF] website_slides: propose new shiny (incomplete) demo data
Purpose of this commit is to rewrite slides demo data. More channels, more
slides, more images, less Odoo oriented content.

Everything is still not completely clean but at least it begins to look like
something we could show to people. Thanks to @awa-odoo who gave some demo
data. No thanks to @xmo-odoo who did not give demo data about the emu war.

This commit is linked to task ID 1936153 and PR #30770.

Co-Authored-By: Aurélien Warnon <awa@odoo.com>
Co-Authored-By: Thibault Delavallee <tde@odoo.com>
2019-02-15 09:58:26 +00:00
Thibault Delavalléeandqmo-odoo 2cfacfc632 [IMP] website_slides: new homepage and main channel page
This commit proposes a new homepage for slides module evolving towards
an eLearning platform. It includes

* a new main page displaying top courses / channels. It displays 3 most
  popular and newest channels as well as its ongoing courses (if logged).
  Achievements and karma update done by eLearning community allow to give
  a gamification look and feel;
* an 'All' page displaying all courses / channels. Tag groups and tags
  allow to search / filter displayed courses;
* a new pimped and revamped display for main course / channel page;

For more details about specifications, send an email to aware people that
will be able to send you mockups. Or see the related task. Thanks to
@qmo-odoo who helped developing this homepage based on its work.

This commit is linked to task ID 1936153 and PR #30770.

Co-Authored-By: qmo-odoo <qmo@odoo.com>
Co-Authored-By: Thibault Delavallee <tde@odoo.com>
2019-02-15 09:58:26 +00:00
Thibault DelavalléeandAurélien Warnon c437832e55 [REF] website_slides: perform some model code cleaning
This commit squashes several fixes / light improvements related to the new
slides / elearning homepage [1][2].

Containing notably

 * clean promote strategy field on channel model: less entries as they
   are now used only to display lessons in a given order on channels of
   documentation type;
 * remove promotional fields, not used anymore since partial access on channel
   allowing to have some kind of small preview of slides has been removed;
 * use standard image field (image, image_medium and image_small) and use
   image_resize_image from tools like all other odoo applications;
 * improve image resizing to have medium images better looking on frontend
   and use that nice image_large that broke my build yesterday;
 * add last publication date change on channel;
 * clean dead code;

[1] new homepage task: ID 1936153 and PR #30770
[1] main elearning task: ID 1902304 and PR #29876

Co-Authored-By: Aurélien Warnon <awa@odoo.com>
Co-Authored-By: Thibault Delavallée <tde@odoo.com>
2019-02-15 09:58:25 +00:00
Thibault Delavallée c971b622c0 [IMP] gamification, website_slides: add challenges in slides and improve ranks
Purpose of this commit is to add challenges related to slide / elearning
module. 5 new challenges with their badges are added. Portal user partner
is now also published to have bioutifoul demo data. Commit linked to
eLearning tasks [1][2]

Co-Authored-By: David Beguin <dbe@odoo.com>
Co-Authored-By: Thibault Delavallee <tde@odoo.com>

[1] new homepage task: ID 1936153 and PR #30770
[2] new user profile / gamification task: ID 1922159 and PR #30514 and #30988
2019-02-15 09:57:46 +00:00
Thibault Delavallée 00bf73cd4a [IMP] website_profile: add a specific route to access avatar of users
Purpose of this commit is to give a specific route to access users image
used as avatar in profile and various frontend applications.

Indeed current web/image controller basically checks record access rights
with current user. However in some cases we want to display user avatars
even if current user cannot read user records, which is generally the case.
Indeed res.users is a private and technical model.

To solve that issue we add a controller for avatar. Basically published
and frontend active user avatars are available.

This commit is linked to task ID 1936153 and PR #30770.
2019-02-15 09:57:46 +00:00
Thibault Delavallée cab98785e9 [IMP] website_rating: improve popup / composer rating display
This newly introduced widget for rating [1] is very cool. This commit
simple improves a bit the display and have the stars + review button
displayed as a small one liner to take less place when displayed.

This commit is linked to task ID 1936153 and PR #30770.

[1] See https://github.com/odoo/odoo/commit/4cb228d823e0346e6052091d397249b8e39d576b
2019-02-15 09:57:46 +00:00
Thibault Delavallée 752c8925ea [FIX] website_slides: fix typos
Othrewsie you colud have some isuses.

closes odoo/odoo#31020
2019-02-12 11:24:30 +00:00
Thibault Delavallée 752a3a5169 [FIX] website_slides: improve can upload / publish computation
New rules are

 * on channel type documentation: can upload like before (employee or upload
   groups specified); can publish like before (can upload and publisher)
 * on channel type training: can upload like before (employee or upload
   groups specified); can publish restricted to channel responsible

Tests are added.

This commit is a sub-part of task ID 1902304 (main eLearning task).

closes odoo/odoo#31082
2019-02-13 18:20:05 +00:00
Thibault Delavallée 370c525d77 [FIX] website_slides: fix computation of members
Members is better computed using a sudo to avoid every access rights issues.
Moreover trigger is updated so that cache is correctly invalidated and
recomputed. Having the trigger on the relational model correctly triggers
the recompute when calling main API methods to add a channel member.

This commit is a sub-part of task ID 1902304 (main eLearning task).
2019-02-13 18:20:05 +00:00
Thibault Delavallée 7b81df3747 [REF] website_slides: remove promoted slide feature, add image and channel_type
Purpose of this commit is to clean a bit channel model. Promoted slide
feature is removed as people can already choose an order for a given
channel. Moreover promoted slide will not be used when having a eLearning
display of a channel.

Image field on channels is added as it is not depending on promoted slide
anymore.

To simplify future additions a search-specific template is removed to
have a unique template to display a channel content. It will ease future
merge.

This commit is linked to task ID 1936153 and PR #30985.
2019-02-11 09:55:15 +00:00
Thibault Delavallée 7ee22f1219 [IMP] website_slides: improve and add statistics computation
Purpose of this commit is to add some statistics computation on slide.channel
model. We want notably to have a count of views and votes (likes and dislikes)
on channels. Completion is also computed.

Purpose is to be able to search and order channels based on those statistics.
Having stored computed fields for some statistics help achieving that purpose.

Tests are added.

This commit is linked to task ID 1936153 and PR #30985.
2019-02-11 09:55:12 +00:00
Thibault Delavallée cbc2de0eb6 [IMP] website_slides: add tags and tag groups on channel
Purpose is to be able to filter, search and categorize channels. Notably
with eLearning in mind there will be more channels as a channel will also be
used to hold lessons.

For that purpose we add a model of tag linked to channels. Those tags are
organized by groups in order to be able to display them using a menu or
a small hierarchy of tags. Displaying a tag group as a specific navigation
element is controlled by a specific field.

Those models will be used to display a new and improved home page for
channels / courses.

This commit is linked to task ID 1936153 and PR #30985.
2019-02-11 09:55:05 +00:00
Thibault DelavalléeandAurélien Warnon a20408e995 [FIX] website_slides: reflect ACLs on fields for channel members
Just reflect access rights: publishers should be able to manage channel
members.

Co-Authored-By: Aurélien Warnon <awa@odoo.com>
Co-Authored-By: Thibault Delavallée <tde@odoo.com>

closes odoo/odoo#30960
2019-02-08 16:26:44 +00:00
Thibault DelavalléeandAurélien Warnon 8d310d1a88 [FIX] website_slides: improve methods to add members on channel
To avoid security issues or exploits, public method to add a member on a
channel allows to add only itself, under given restrictions, like being
a channel maintainer to add self on a private channel.

A private method allow to subscribe other people. It will be used notably
to allow publishers to invite other people.

Co-Authored-By: Aurélien Warnon <awa@odoo.com>
Co-Authored-By: Thibault Delavallée <tde@odoo.com>
2019-02-08 16:26:39 +00:00
Thibault Delavallée 6b46422a6b [REF] website_slides: update slide members relationship
This commit changes decorated many2many between slides and participants
recently introduced [1]. It was done between slide and users as people have to
login to have slide information.

Another many2many between channel and partners to store notably completion
and soon add statistics has been added [2]. It has been done between
channels and partners.

In this commit we choose to have the same relationship for slides, aka a link
between slides and partners. It allows to easily compute statistics and find
information based on partner_id.

Co-Authored-By: Quentin Mourrier <qmo@odoo.com>
Co-Authored-By: Thibault Delavallée <tde@odoo.com>

[1] See c273e89d55
[2] See 748b9072d6
2019-02-08 16:26:28 +00:00
Thibault Delavallée cc3ca63544 [FIX] sale: fix wording of link when sending a quotation by email
Since commit 34c47eecd3 wording of link when
sending a quotation by email is broken. Indeed has document in draft is
not correctly considered as having to be signed and/or paid the link is
not labelled correctly.

This commit fixes it. Parameter is also renamed to be more understandable.
This commit is linked to task ID 1910532 and PR #29849 .

closes odoo/odoo#30953
2019-02-08 12:49:03 +00:00
Thibault Delavallée 29219b9c93 [IMP] website_slides: remove duplicated code
Code probably coming form a rebase conflict. Duplicated and therefore removed.

closes odoo/odoo#30921
2019-02-07 13:58:57 +00:00
Thibault Delavallée 797daba163 [IMP] website_slides: add widget to join a channel
Purpose is to add a new widget and its route allowing to join a channel.
As visibility is now mainly based on membership a widget to join channels
is required.

This commit is linked to task ID 1937411 and PR #30847.
2019-02-07 13:44:39 +00:00
Thibault Delavallée ddccd33bae [IMP] website_slides: improve upload slide screen
Slide upload access is a bit cleaned. A can_publish field is added controlling
who can publish slides. Currently website publishers are allowed to publish
content. Not publishers people allowed to upload cannot publish their own
content. It stays in a submitted non published state.

This commit is linked to task ID 1937411 and PR #30847.
2019-02-07 13:44:39 +00:00
Thibault Delavallée b91add891c [IMP] website_slides: add tests
Currently website_slides module lacks tests. This commit adds base for tests
and add some tests related to recently cleaned access rules and rights.

Future commits will gradually add more tests to the module as it evolves
towards a more broad and up-to-date application.

This commit is linked to task ID 1937411 and PR #30847.
2019-02-07 13:45:57 +00:00
Thibault Delavallée 748b9072d6 [IMP] website_slides: clean ACLs and refactor access options
Purpose of this commit is to clean access rights on slide models and give
less access to public / portal / internal users. Website publishers and
editors have rights to edit slides content and manage channels.

Another purpose is to clean and refactor access options on channels and slides.
Access to a given slide depends on the current user being a member of the
slide channel. A channel can be either public (joined easily) or on invitation
only (manual addition of members).

Slide can be flagged as preview, meaning they are accessible without any
concern about channel membership. It is used as teasing or free promotion
of a channel.

Publish flag is orthogonal. Non published slides are not visible to everyone
except website content editor. It allows to work and improve slides without
displaying them to members or public people.

Technically a new model is added to model membership on channels. It is
a decorated m2m between channels and partners; on this m2m the state of
membership is added. In a near future additional information will be stored
on this model, like completion of channel or certification information.

Other technical changes implied by this commit
 * visibility is simplified to either public or invite;
 * can_see and can_see_full are removed, as well as concept of 'partial'
   display of slides;
 * group_ids related to private access is removed;
 * a computed / searchable field is added to be able to efficiently find
   and search active members of a channel;

This commit is linked to task ID 1937411 and PR #30847.
2019-02-07 13:44:39 +00:00
Thibault DelavalléeandDavid Beguin 43740f94ea [IMP] website_slides: add dependency on website profile
Purpose is to prepare the use of gamification tools in slides. In this commit
we add the dependency on website_profile (gamification front-end) in slides
and add the slides category on challenges.

Partial commit linked to eLearning project. Main specifications related
to gamification and user profile can be found on task 1922159 (PR #30514).
Main specifications related to eLearning can be found on task 1902304
(PR #29876).

Co-Authored-By: David Beguin <dbe@odoo.com>
Co-Authored-By: Thibault Delavallee <tde@odoo.com>
2019-02-07 12:13:28 +00:00
Thibault DelavalléeandDavid Beguin b98564479b [ADD] website_profile: new module holding website-related code for gamification
Purpose is to be able to re-use frontend-related model, data and tools
for gamification. Currently only forum uses gamification. Soon slides module
will use them and user profile / biography will be expanded. This commit
prepares those features by already preparing the bridge module and adding
a publish option on badges.

Partial commit linked to eLearning project. Main specifications related
to gamification and user profile can be found on task 1922159 (PR #30514).
Main specifications related to eLearning can be found on task 1902304
(PR #29876).

Co-Authored-By: David Beguin <dbe@odoo.com>
Co-Authored-By: Thibault Delavallee <tde@odoo.com>
2019-02-07 12:13:28 +00:00
Thibault Delavallée 8f3eff13fb [REF] website_slides: light cleaning
Purpose of this commit is to prepare future code addition by making some
noise in a separate commit. In this commit we move compute methods below
fields definition because currently it is a complete mess and finding a
given field gives a headache.

Commit linked to task ID 1933820 and PR #30830.
2019-02-05 11:19:52 +00:00