Now having
* sanitize: run the sanitizer to clean the html (removing javascripts,
unwanted tags, ...)
* sanitize_tags: only a subset of tags is allowed in html content.
Unwelcomed tags are remove dand their content stripped.
* sanitize_attributes: only a subset of attributes is allowed.
* sanitize_style: only a subset of style attributes is allowed. Style
attributes are parsed to keep only a white list.
* strip_style: all style is removed. It bypasses sanitize_style as there
is no need to sanitize something that is removed.
* strip_classes: remove class attributes
Fields parameters have also been updated to match the sanitize options. Html
fields by default are sanitized with sanitize_tags activated but without any
further options. All addons have been updated to match the new options
according to their previous behavior.
* Isolate website_blog style
* Simplify/Correct the cover option JS
* Allow to modify the cover from the blog list page
* Change cover layout (use a more conventionnal odoo design with a
div which is full width, which contains a container(-fluid) then its
content) -> easier to customize.
* Refactore code to be understandable
* Change behavior of opacity filter: before this commit the cover
filter was not intuitive and did not work on IE or Edge, it mixed
the color of the bg-image and the bg-color in a complex way and the
opacity was just controlling if the image was visible clearly or not
(which led in general to ugly style if the opacity was used). Now, the
color in applied *on top* of the image so that its color changes the
hue of the underlying image. The opacity value controls only the
opacity value of the color to mix.
[MIGRATION] Note: as the opacity behavior has changed, the exact same
behavior is not reproductible at all. But for the change to make a bit
of sense in old databases, this should be applied for the field
"cover_properties" of blog posts (with changes in layout):
if cover_properties.background-color != "oe_none":
cover_properties.opacity = 0.6
else:
cover_properties.opacity = 1.0 - cover_properties.opacity
Now, you can set the published date in the future.
There will be not visible by visitor until this date.
When a user publish a post, if the published date is in the
past, we update the publish date to now, else we keep the old
published date which one is in the future.
[IMP] website_blog: display author avatar option
[IMP] website_blog: refactore cover option for blog
[IMP] website_blog: tags are now always displayed and as a label
[IMP] website_blog: side bar cleaning
[IMP] website_blog: new teaser
[IMP] website_blog: replace inline comments by quotes comment
[IMP] website_blog: new grid layout
[WIP] website_blog: read next options
[IMP] website_blog: refactoring sharing links
[IMP] website_blog: Delete cover narrow option
[IMP] website_blog: improvement for sharing links
[IMP] website_blog: blog post list cover is an option
[IMP] website_blog: archives group by year
[IMP] website_blog: if only one blog, no index blog post
Courtesy of @movanoncem
In odoo at many places the filter items are having repeated strings eventhough the
fiter works differently , so find all the places where this happens and give
proper string to each filter..
=======
Purpose
=======
For now all the views of blog posts sort them based on creation date. This creation date cannot be
changed (even with server actions). This leads to issues in several cases:
- import of old blog posts from a former system -> all the blog posts have the same date, on the website as well
- website visitors see when the blog post has been created, not published...
=============
Functional Spec
=============
Display blog post sorted by publish date in descending order. If the post has not been published yet,
the published date = creation date. When a post is unpublished and then published again, the publish
date should be updated to the last time it is published.
Add a status filter for published/not published blog posts, by default both are active (only visible
for website admin)
Using message_post_with_view, raw html contained in python is now moved into
a template data and called from the code. This allows to avoid having raw html
directly embedded in python code.
As this method is overided in several modules, the mix of new and
old API makes it difficult to handle. Indeed in some cases we
receive the expected dictionary, sometimes in a list, sometimes
in a list of list, due to api.one decorator.
This is a change in the method API, however it is currently completely
buggy. Moreover this method is used internally and should not be
used as an external API. Lastly, this method is new from v9.
Main addons updated :
- crm: Conversion and Won / Lost actions
- hr_holidays: Approve / Refuse for hr users / officers
- project: Assign / New (task and issues)
- forum, website_project_issue, website_portal_sale: go to the
website view
- remove tags translatability
- add unique constraints
- res.partner.category is kept until we remove the parent_store test.
- hr remove tag parenthood
- hr remove unsed views and menu
Clear cache after delete view
Move menu to keep all 'New page', 'New blog', 'New forum', ... together
Disable continue button from popup while user don't confirm with checkbox
English typo
website_hr_recruitment, website_sale: add published mixin on blog / event /
track / job / product objects and update their website url and form view
according to the publish mixin/button refactoring.
a blog will receive notifications only for published posts. They
will not receive all comments of all posts anymore.
When commenting a post users will receive the answers.
Added tests to try to test this behavior.
A squashed merge is required as the conversion of the apiculture branch from
bzr to git was not correctly done. The git history contains irrelevant blobs
and commits. This branch brings a lot of changes and fixes, too many to list
exhaustively.
- New orm api, objects are now used instead of ids
- Environements to encapsulates cr uid context while maintaining backward compatibility
- Field compute attribute is a new object oriented way to define function fields
- Shared browse record cache
- New onchange protocol
- Optional copy flag on fields
- Documentation update
- Dead code cleanup
- Lots of fixes