*: portal
Adding a choice of several header behaviors (fixed, fade out with
scroll, etc.). Review the way those animations works in mobile/desktop
and now perform them without duplicating the header DOM element.
Also allow to hide of adapt the size of the logo when the page is
scrolled.
Part of https://github.com/odoo/odoo/pull/38950
task-2087641
Co-authored-by: qsm-odoo <qsm@odoo.com>
Also remove all t-fields from footers to have only static contents in
footers. For social links, a controller is added so that a "static url"
/website/social/xxx always redirect to the correct set URL for the given
xxx social network.
Part of https://github.com/odoo/odoo/pull/38950
task-2087641
Co-authored-by: qsm-odoo <qsm@odoo.com>
The name of the site displayed on the website is now dissociated from
the technical name of the website.
Part of https://github.com/odoo/odoo/pull/38950
task-2087641
* theme_bootswatch, web_editor
Split the customizeWebsite method into 3 different methods so we can
use customizeWebsite for variable, views or color on the same widget.
Part of https://github.com/odoo/odoo/pull/38950
task-2087641
In case a controller with a relative url return an absolute link
the current crawler follow the redirect and all external link of this
external url too.
Now we don't follow redirection if it is on an other netloc that the
current one.
Part of https://github.com/odoo/odoo/pull/38950
task-2087641
This merge updates the FullCalendar library from v3 to v4.
The purpose of this update for us is to add proper support of the
drag-and-drop of events on mobile.
But also to fix scrolling issues present mainly on smaller screens. In
those configurations multi/inner-scrolls were present resulting in
either the inability to properly scroll the desired content or even
blocking altogether the scroll.
As a nice-to-have feature, version 4 removes its dependency on the
jQuery library, allowing faster loading of a bigger set of events.
Last but not least, this version also reduces its dependency on the
Moment.js library (but still keeps a binding to it for compatibility
purpose).
In addition to the update of the library itself, this merge adapts the codebase
to the library's API changes and extracts some methods and templates to allow
further customization of the calendar view.
Finally, a couple of fixes are also applied :
* time-based instead of ID-based order of events in month view
* unwanted transformation of time-based events into all-day events in month view
Task ID: 2092550
closesodoo/odoo#48630
Related: odoo/enterprise#9554
Signed-off-by: Pierre Paridans <pparidans@users.noreply.github.com>
Task 2198388
When testing and demoing localization, it can but cumbersome to create a
Company with the right credentials and install the chart of account on
it.
This commit aims to shorten the process. The first version only contains
a valid vat (or similar) number, but we should add fields specific to
localization in the future so that we have a working environment as soon
as we install the localization.
change manifest
closesodoo/odoo#48102
Signed-off-by: Josse Colpaert <jco@openerp.com>
PURPOSE
Improve the various sessions flow to make it easier for attendees to reach the
session and to allow better interactions between the host and his audience.
This comes with small usability improvements as well as increased
"beautifulness" by using custom layouts & animations.
SPECS
General specifications, see sub-commits for details.
- Currently, the "short link" feature is good but it still needs to be improved
with the following points:
- Make the default "code" shorter (4) and digit only.
- Allow to customize the "code"
- Check for potential collisions
- When attendees reach the survey through the code, they need to land on the
"waiting screen" even if the session is not started yet. This will allow the
host to show the survey link even if he forgets to click on "start session"
first.
- Reduce the fade out / fade in delay when moving from one question to another.
It's currently 2 seconds, change it to 1 second.
Right now the delay gives a "slowness" impression.
- Display matrix choices on the host screen.
It will allow attendees that are not participating to have more context.
- Add python test/tours to test the survey session flow from the host point of view
- Improve survey form navigation (moved buttons, added keyboard navigation)
- Auto submit questions and matrix with simple choice
DESIGN TWEAKS
Slightly improve the survey form by adding a few cosmetic changes,
notably:
- Add/reduce some margins/paddings
- Adjust colors/font-weight
- Adjust heights
- Change some icons by more fitting replacements
- Center matrix choices
- Move survey progression to bottom-right
- Remove ugly jumbotrons
- Hide survey title in page_per_question layout
- When there are 5 or less option for simple_choice or multiple_choice
questions, display the options vertically.
- Only show the textarea for the "comment answer" if the user clicks on the
related option.
LINKS
Upgrade PR odoo/upgrade#897
Task 2208574
closesodoo/odoo#46768
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
Purpose
=======
Speed up survey completion.
Specifications
==============
This commit apply an auto commit when user select a choice on a simple choice
question or on a matrix question with simple choice.
The auto commit happens following those conditions:
- Only on simple choice and matrix with simple choice questions
- For matrix, only when last subquestion is answered
- Only when Back mode is active
- If this is not the last question
Link
====
PR #46768
Task 2208574
This commit slightly changes the way users navigate through the survey form:
- The back button was moved to the bottom-right of the screen.
- The "Continue" button stays at the center but there is also a "next" button
at the bottom-right of the screen (same behavior -> submits the form)
- Arrow keys (left + right) navigation is now supported
Technical note: As the survey navigation is now outside of the survey content,
that was re-rendered on every submit, we have to manually refresh the
navigation with a second template render on the controller side.
LINKS
PR #46768
Task 2208574
This commit slightly improves the survey form by adding a few cosmetic changes,
notably:
- Add/reduce some margins/paddings
- Adjust colors/font-weight
- Adjust heights
- Change some icons by more fitting replacements
- Center matrix choices
- Move survey progression to bottom-right
- Remove ugly jumbotrons
- Hide survey title in page_per_question layout
- When there are 5 or less option for simple_choice or multiple_choice
questions, display the options vertically.
- Only show the textarea for the "comment answer" if the user clicks on the
related option.
One of the biggest design change is the introduction of a "minimized layout"
that reduces the width of some question types on bigger screen.
This gives a cleaner look to the survey form.
Impacted question types:
- Numeric
- Date
- Datetime
- Simple / Multiple choices
Technical note: As the survey progression is now outside of the survey content,
that was re-rendered on every submit, we have to manually refresh the
progression with a second template render on the controller side.
Small fix addition:
We also fix the matrix key selection feature in case the matrix had a total of
more than 25 options, which would raise an error.
Indeed, they "use key selection" condition only checked the number of rows,
and not the rows * columns (total number of options count).
LINKS
PR #46768
Task 2208574
Before this commit, when the duration of an event is "24H * n". The event
is set as allDay. This is strange to have a event that start a 8H and end
at 8H of next days and the event is in the allDay slot.
After this commit, we don't change the allDay flag anymore.
Steps to reproduce:
* Open calendar in week view
* Create a event from 8 -> 16
* Then resize the end of this event from 16 -> 8 of the next day (BUG)
Task ID: 2183249
PURPOSE
This commit adds a big flow test/tours to the survey sessions, for the host
point of view.
This will avoid breaking the feature with future changes, as it contains some
tricky and complex mechanics (especially the screens chaining).
SPECS
The tour tests the whole host point of view.
Break down of the testing/tour main points:
- Create the survey session
- Check our attendees are accounted for
- Open the 'session manager'
- Display the nickname question, and move to the next one (as answers are not
displayed for nickname questions)
- Check answers are correctly displayed for the 3 'simple' question types
(text, date, datetime)
- Move to the choice question and check that answers are displayed
- If everything is correctly displayed, move to the next question
- On the scored choice question, check that the screens are correctly chained:
no results displayed -> results displayed -> correct/incorrect answers ->
leaderboard
- On the scored + timed multiple choice question, check the same than previous
question, except that the results are supposed to be displayed automatically
when the question timer runs out
- Test the 'back' behavior and check that screens are reversed correctly
- Check that our final leaderboard is correct based on attendees answers
- Close the survey session
LINKS
PR #46768
Task 2208574
This commit improves the session host view by showing matrix choices for matrix
questions.
This is done to help people in the audience that are not participating to the
session to have some context about possibles question answers.
LINKS
PR #46768
Task 2208574
PURPOSE
Improve the various sessions flow to make it easier for attendees to reach the
session and to allow better interactions between the host and his audience.
This comes with small usability improvements as well as increased
"beautifulness" by using custom layouts & animations.
SPECS
This commit changes the survey sessions fade in/out delay for both the host
and the attendees.
When going from one question to another, the total delay is now 1 second
(instead of 2 previously), with 500 ms for fade out and 500 ms for fade in.
The previous delay gave an impression of "slowness".
The delays and "server lag reduction" on the attendees side were adapted
accordingly.
LINKS
PR #46768
Task 2208574
PURPOSE
Improve the various sessions flow to make it easier for attendees to reach the
session and to allow better interactions between the host and his audience.
This comes with small usability improvements as well as increased
"beautifulness" by using custom layouts & animations.
SPECS
- For live session only:
Currently, the "short link" feature is good but it still needs to be improved
with the following points:
- Make the default "code" shorter (4) and digit only.
- Allow to customize the "code"
- Check for potential collisions
Added at the same time:
- input element is focused when you land on the '/s' page.
LINKS
PR #46768
Task 2208574
Before this commit, it was possible to create/move an event in the "all
day" slot of FullCalendar even when the mapping field wasn't set.
With this commit, when the "all day" mapping is not present, the "all
day" slot of FullCalendar becomes hidden.
Ref:
https://fullcalendar.io/docs/allDaySlot
Task ID: 2183249
Due to previous commit, in month view, the flag marking events as "all
day" is no more present and so some logic is not applied anymore. This
results into the wrong end-date.
With this commit we avoid to change the end date of an event in
FullCalendar.
Note that it changes the behavior on drag-and-dropped event in month
view:
* Before both the last and this commit, an event if 1H will become an
"all day" event when it's dropped into another cell.
* After them, the time will be the same as the original event and only
the date will change.
Also, one test was already added in commit odoo/odoo@7af13089df
to check that, in month view, when we move a non-"all day" event to
another day, it can't change into a all day event.
This commit adds a second test to cover the case when the "all day"
mapping is present.
Task ID: 2183249
Before this commit, events were sorted by ID in month view.
Event A occurring after event B would be placed on top of B instead
of below.
Steps to reproduce:
* Go in the calendar app
* Insert a event at 12:00
* Insert a event at 8:00
* Insert a event at 14:00
* Go in view month the events are not sorted (BUG)
In month view, events are forced to be "allday", so the sequence used
can't be based on its time but only on its ID.
To fix this, this commit doesn't force the "allday" flag anymore.
Task ID: 2183249
In `calendar_tests.js`, the tests about creating an event with timezone in
week mode only triggers 7 asserts but they were design to trigger 8 of
them.
After analysis, it looks like in the commit odoo/odoo@369c20a99b
the FullCalendar's UI was redesigned and some CSS rules might have add
some margin preventing a MouseEvent from being triggered correctly,
resulting in misadapted tests.
This commit restores the original behavior by adding some pixels to
these offsets, allowing the events to be correctly dispatched and
adapting again the tests.
Task ID: 2092550
This commit updates the FullCalendar library from v3 to v4.
The purpose of this update for us is to add a proper support of the
drag-and-drop of events on mobile.
But also to fix scrolling issues present mainly on smaller screens. In
those configurations multi/inner-scrolls were present resulting into
either the inability to properly scroll the desired content or even
blocking alltogether the scroll.
As a nice-to-have feature, the version 4 removes its dependency on the
jQuery library, allowing a faster loading of a bigger set of events.
Last but not least, this version also reduces its dependency on the
Moment.js library (but still keeps a binding to it for compatibility
purpose).
This commit focus only on the update of the library itself and the
adaptation of the related code to keep it working. Further
enhancements/fixes will be done later on.
To do so it modifies the following points:
* Update the library in itself (js, css...).
* Convert all FullCalendar's method calls to the new syntax (e.g.
`$calendar.fullCalendar('destroy')` becomes `calendar.destroy()`).
* Add a utility method to convert v4 events into the old v3 event
structure to ease the transition from one version to the other.
* Wrap all event's custom fields into a new event's
`extendedProps` object (as its the new way of storing them instead of
directly as a prop. of the event).
* Adapt `slotLabelFormat` and `weekNumberCalculation`.
* Use the view's new names:
** `agendaDay` -> `timeGridDay`
** `agendaWeek` -> `timeGridWeek`
** `month` -> `dayGridMonth`
* Use the option's new names:
** `viewRender` -> `datesRender`
** `eventMouseover` -> `eventMouseEnter`
** `eventMouseout` -> `eventMouseLeave`
** `isRTL` -> `dir`
** `selectHelper` -> `selectMirror`
** `weekNumberTitle` -> `weekLabel`
Ref:
https://fullcalendar.io/docs/upgrading-from-v3
Task ID: 2092550
Clarify the kanban view to clearly display how many attendees
could show up as well as other places where attendees are mentionned.
Task ID 2205701
closesodoo/odoo#48584
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
Purpose of the task is, Warn the user that we do not recommend editing
the architecture of standard views because During migration if the
client does standard views modification then during migration all views
will be updated according to the new odoo version and all customization
will be lost.
So during upgraded database testing issues will come about that views
or client will post issues and ask about where our customization
is gone.
So in this commit, we added alert message on edit of view like:
'Be aware that editing the architecture of a standard view is not
advised, since the changes will be overwritten during future module
updates. We recommend applying modifications to standard views through
inherited views or customization with Odoo Studio.'
closes odoo/odoo#48492
Taskid: 2219956
Closes: #48492
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
Add a related field `accounting_date` in the expense to the expense
report.
- Should represent the accounting_date field from the expense report
linked to this expense
- Only visible if the status of the report is approve, post or done
- Only visible if the user has at least the Accounting > Auditor access
right level
- Should be in read-only
- Should be stored
closesodoo/odoo#48238
Taskid: 2221668
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
* = event, website_event_track, website_sale, website_hr_recruitment,
website_livechat, website_sale, website_slides
The option to sanitize or not the forms was not available, this will
allow better flexibility on whether forms should be sanitized or not on
an HTML field.
Also we use this new param to allow forms to be added on some already
existing html fields where forms where sanitized out.
task-2209554
closesodoo/odoo#47318
Signed-off-by: Jérémy Kersten (jke) <jke@openerp.com>
Add new Kanban examples and improve the usability of the dialog.
closesodoo/odoo#48620
Taskid: 2210279
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
This reverts commit f7d7c53cd5.
Need to investiguate debug=assets mode.
Revert to unlock others devs
closesodoo/odoo#48675
Signed-off-by: Jérémy Kersten (jke) <jke@openerp.com>
Currently the code for default name is inside the timesheet_grid
so on community the name(description) of the analytic line is
required.
so move the default name code from timesheet_grid to hr_timesheet.
TaskID: 2176065
Related Enteprise PR: https://github.com/odoo/enterprise/pull/9561
closes odoo/odoo#48657
Closes: #48657
Related: odoo/enterprise#9561
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
- open accounts in a full view instead of a modal
- ability to reverse entries at their own accounting date
- don't create draft closing entries and reminder if no configuration for tax groups
- reordered account menus
- improved invoice form view
Task ID : 2209497
closesodoo/odoo#48355
Related: odoo/upgrade#1001
Related: odoo/enterprise#9485
Signed-off-by: oco-odoo <oco-odoo@users.noreply.github.com>
Because.
Mighty PO said: "We'll need this in internal"
Don't ask me, it's changing every two days.
Task 2204084
closesodoo/odoo#48097
Related: odoo/enterprise#9394
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
Purpose
=======
It might look weird if the play button is displayed on some lines and not others.
It might seem even weirder if we have the Timer functionalities (such as the
timer bar we'll introduce with task 2217930) available even though the timer
is disabled on all projects. In this case, if we wanted something clean, we
would need to introduce a setting to disable the feature in Timesheets as well,
but that seems overkill. At last, you may not want the timer on the task form
view but find it still useful in the Timesheets app.
Specification
=============
Always display the start button, even if allow_timsheet_timer is False on the
selected project.
Task 2204084
PURPOSE
Allow "free text" questions in the event questions asked to attendees, in
addition to the existing "selection" type.
e.g: "What are your allergies?"
Rework existing reporting on Questions to ease implementation and give more
meaningful answers analysis.
SPECS
**Free Text Questions**
The implementation is heavily based on the modelisation we chose for the survey
module since the features become similar in terms of question types and inputs.
- Introduce a 'question_type' that is either 'simple_choice'
(= previous behavior) or 'text_box' that will contain the attendee text
answer.
- Rename the event.answer model to event.question.answer to make it more
obvious that it contains answer "suggestions" to a question of type
'simple_choice'.
- Introduce a 'event.user_input.line' that is an answer to a specific question
for a specific registration.
It works very similarly to 'survey.user_input.line' but it's not contained in
a 'user_input' model, it's directly linked to the registration using a
'user_input_line_ids' o2m field.
The frontend view has been adapted accordingly to display either a selection
input or a textarea based on the question type.
The frontend orm processing now takes in both answer types (id of suggested
answer or text input).
On the backend side, views have been adapted to display event questions and
attendee answers in a more convenient and logical manner.
**Questions Reporting**
Based on latest testing, the reporting on event questions was completely
unusable if you have more than a hundred questions (all events combined) and
needs to be refactored based on new specifications.
We dropped the current reporting and re-introduced a new one after the commits
that let us handled free text questions.
The new reporting allow users to conveniently analyze attendees answers on a
per-question basis. It shows:
- A graph view showing counts of each suggestions for simple_choice questions
- A pivot view showing registrations vs answers for simple_choice questions
- A tree view showing textual answers values for text_box questions
FIXIMP
When changing the event.type, configured event questions that have answers
(type 'simple_choice') new have their answers properly copied onto the event.
LINKS
Upgrade PR odoo/upgrade#799
Task ID 2189529
closesodoo/odoo#45497
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
This commit adds necessary views and actions for users to be able to
conveniently analyze attendees answers.
- A graph view showing counts of each suggestions for simple_choice questions
- A pivot view showing registrations vs answers for simple_choice questions
- A tree view showing textual answers values for text_box questions
(Tree view is also available for simple_choice)
LINKS
PR #45497
Task 2189529
This commit does not change anything functionally, we just move views around to
appropriate xml files so that everything is organized better.
At the same time, a few views were renamed to match guidelines and we removed
a useless view on event.question.answer, that will only ever be edited inline
or inside many2many_tags.
LINKS
PR #45497
Task 2189529
When applying an event.category on an event.event, we copy the event.questions
from the event.type, but we don't immediately copy the answers associated to
these questions.
This was not done for technical reasons, we were limited by the JS framework.
Since #46807
We now correctly handle nested o2m when triggering compute/onchange.
This commit cleans the code by correctly copying the answers along with the
questions when changing the event.type of an event.event.
LINKS
PR #45497
Task 2189529
This commit adds the display_name to the list of fields so that the view will
correctly compute it and store it in the record state to be displayed by the
associated m2m_tags widget.
Without that small trick the display_name is never computed and the m2m_tags
widget shows empty strings.
LINKS
PR #45497
Task ID 2189529
This commit adds a test tour that will fill up two tickets with a few questions
answers and then assert that the answers are correctly saved for each attendee.
This will help ensuring that the new "free text question" feature works
correctly, along with existing "suggestion question".
LINKS
PR #45497
Task ID 2189529
This commit improves the demo data of the event application by adding a few
questions to better showcase the new 'free text question' feature.
LINKS
PR #45497
Task ID 2189529
PURPOSE
Allow "free text" questions in the event questions asked to attendees, in
addition to the existing "selection" type.
e.g: "What are your allergies?"
SPECS
The implementation is heavily based on the modelisation we chose for the survey
module since the features become similar in terms of question types and inputs.
- Introduce a 'question_type' that is either 'simple_choice'
(= previous behavior) or 'text_box' that will contain the attendee text
answer.
- Rename the event.answer model to event.question.answer to make it more
obvious that it contains answer "suggestions" to a question of type
'simple_choice'.
- Introduce a 'event.user_input.line' that is an answer to a specific question
for a specific registration.
It works very similarly to 'survey.user_input.line' but it's not contained in
a 'user_input' model, it's directly linked to the registration using a
'user_input_line_ids' o2m field.
The frontend view has been adapted accordingly to display either a selection
input or a textarea based on the question type.
The frontend orm processing now takes in both answer types (id of suggested
answer or text input).
On the backend side, views have been adapted to display event questions and
attendee answers in a more convenient and logical manner.
LINKS
PR #45497
Upgrade PR odoo/upgrade#799
Task ID 2189529
PURPOSE
The commit removes the reporting on the event.question model along with its
created SQL view 'event.question.report' because they're simply not usable.
SPECS
Based on latest testing, the reporting was completely unusable if you have more
than a hundred questions (all events combined) and needs to be refactored based
on new specifications.
As we need to re-work event questions to be able to add "free text" questions,
we prefer to temporarily drop the reporting instead of having to adapt it.
LINKS
PR #45497
Upgrade PR odoo/upgrade#799
Task 2189529
Prior to this commit, the list_editable_renderer was grabbing the first
table in the DOM. This made it so extending list views with another table
could cause the new table to resize unexpectedly when changing the column
width of the list view generated table (i.e. o_list_table).
While this double table situation may not arise very often, it directly
hindered task: 2198420 and may hinder other customized view tasks.
Related to task: 2198420
("Requests for Quotations KPI's" subsection)
closesodoo/odoo#46654
Related: odoo/upgrade#877
Related: odoo/enterprise#8945
Signed-off-by: Simon Lejeune (sle) <sle@openerp.com>
Adds a customized table to top of list and kanban views of requests for
quotation (RFQs). This table includes the following values:
- RFQs to Send (PO.state = 'draft')
- RFQs Waiting (PO.state = 'sent' and PO.date_order >= now)
- RFQs Late (PO.state = 'sent' and PO.date_order < now)
- Avg Order Value (specifically only for POs)
- Avg Days to Purchase (PO.date_approved - PO.date_created and PO.state
in ('purchase', 'done'))
- Purchased Last 7 Days (specifically only for POs)
- RFQs Sent Last 7 Days (hacky calculation looking at chatter for state
change 'RFQ' => 'RFQ Sent')
This change corresponds to "Requests for Quotations KPI's" subsection of Purchase
KPIs task.
Task: #2198420
"Edition" is a French-English false friend word. "Edition" in English
means "version" whereas "edition" in French means "editing". This commit
updates user facing strings/documents that incorrectly use "edition" instead
of "edit" or "editing". Attempts were made to clean up English around
"edition" usage so please excuse any errors from lack of context
knowledge. Code comments and names incorrectly using "edition" were NOT
updated.