New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[IMP] social_push_notification : Allow to send push notifications to visitors #35324
Closed
dbeguin
wants to merge
12
commits into
odoo:master
from
odoo-dev:master-social-visitor-push-notif-dbe
Closed
[IMP] social_push_notification : Allow to send push notifications to visitors #35324
dbeguin
wants to merge
12
commits into
odoo:master
from
odoo-dev:master-social-visitor-push-notif-dbe
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This commit adds the website_visitor model that will be used to track website visitor activity (page viewed, number of visits and more general info about the visitor (country, lang, etc..) This model will, in later commit, be used to send chat requests and push notification from the operators (or backend users) directly to the visitor. - A website_visitor is created once the visitor is requesting a website.page that is tracked. - A website_visitor is considered as connected if his last tracked website_page request is within the last 5 minutes. - The number of visits for a website_visitor is incremented if his last tracked website_page request was at least 8 hours ago. - A website_visitor is only handled by the system. Users cannot create, edit or delete a website_visitor. - A unique website_visitor is created per website. That means that the same real person can triggers multiple visitor creation if visits multiple websites. This is because, for livechat purpose on later commit, for example, the chat request can be created on the correct livecaht channel (linked to the correct website) - The visitor is recognized via his cookie (visitor_id). So if the visitor flush his cookies, a new visitor will be created the next time he will request a tracked website_page. To keep a detailed history of the visitor page views, we add a website.visitor.page model that makes the link between visitor and website.page but that keeps the visit date. So that we can see if a visitor went mulitple times on the same page and when. It's usefull to see his last page views. Task ID : 2028059 PR odoo#34624
If a website_visitor log in (a visitor that has visitor_id in his cookie), the website_visitor is linked to the res.partner. the website visitor name is than adapted to match the name of the first res.partner linked to the visitor. A visitor can have multiple partners as the same session can be used by multiple person (one PC for a team for example). Task ID: 34624 PR #2028059
If a website_visitor submit a contact form (and becomes a lead), the website_visitor is linked to the crm.lead. the website visitor name is than adapted to match the name of the first crm.lead linked to the visitor, ONLY if the visitor doesn't already have a res.partner. A visitor can have multiple crm.lead as he can send multiple contact form and create multiple leads. Task ID: 34624 PR #2028059
This commit allows a livechat operator to send a chat request to a connected and available website_visitor. A visitor is considered as connected if his last tracked website.page request was within the last 5 minutes. A visitor is available if he doesn't have an active livechat conversation (mail_channel with type = livechat). - If another operator sent him a chat request - Or if the visitor asked himself to speak with an operator (via the normal and existing flow) A livechat conversation is active while the visitor haven't left the conversation. An operator cannot leave a livechat conversation, only the visitor can. The flow to send a chat request: - On the visitor view (tree or form), operator click on 'send chat request' (button or livechat icon) - A empty conversation with the visitor pops up at operator side. - While the operator didn't send a message, the visitor won't see the conversation. - The operator can type a message to the user - If the operator close the chat without sending any messages, the chat request AND the mail_channel are both deleted. In this case, the visitor is then available to send him a new chat request. - If the operator send a message, at the visitor's next action (page navigation on pages that allows livechat, based on livechat rules), the conversation will pop up at visitor side, using the livechat button widget. The visitor won't be able to request a livechat conversation with an operator until he leaves the chat requested by the operator. - Once the visitor leaves (with or without rating) the conversation : - the operator is notified that the visitor has left the conversation - the chat request is deleted to keep the chat request table clean and minimal - the livechat conversation if set to inactive. - The visitor is now available again to send him a chat request. This feature uses the already existing livechat_session cookie mechanism, so no further code modification was needed to make this work. It's directly integrated is existing livechat flow. The chat_request model is only useful to quickly check if a visitor has a chat request and to send the livechat conversation info to the visitor via the livechat_session cookie. Task ID: 34624 PR #2028059
Since introduction of website_visitor, we don't need to identifiy the lead with a lead_id cookie. The visitor is identified and if a lead is created with the contact form, the lead is created and linked to the visitor. To avoid losing data, each time a visitor send a contact form, it creates a new lead. All those leads are linked between them via the website_visitor. As the website_visitor already has the lang set on itself, there is no reason to keep the lang_id of crm_lead at enterprise side. So that lang_id on crm.lead has been moved to community. This commit is directly linked to another one in enterprise See https://github.com/odoo/enterprise/pull/4834 to get more details. Task ID : 2028059 PR odoo#34624
The URL given to load the translations had an extra '/'. (/website//translations/xxx) This caused a http redirection that failed for "Mixed Content" on https environments.
is_connected = fields.Boolean('Is connected ?', compute='_compute_is_connected', help='A visitor is considered as connected if his last page view was within the last 5 minutes.') | ||
# Maybe not necessary, only used for visitor - lead - customer views (filtered on type) | ||
# but could check directly on domain. | ||
type = fields.Selection([ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Suggested change
type = fields.Selection([ | |
visitor_type = fields.Selection([ |
please, see guidelines cfaf1f5
Done with #34624 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
No description provided.