Repository
odoo/odoo · module folder
Module version
1.2
Category
Website/Website
Folder size
8.96 MB
License
LGPL-3
Application
No
Auto-installable
No
Website
https://www.odoo.com/app/forum
Last tracking update
2026-08-15 22:44:20
Authors
Odoo S.A.
Maintainers
Odoo S.A.
Committers
Xavier ALT, Raphael Collet, Thibault Delavallée, Odoo Translation Bot, Denis Ledoux, Nicolas Martinelli, Aaron Bohy, Géry Debongnie, Jeremy Kersten, qsm-odoo, Julien Castiaux, Sébastien Theys, Julien Mougenot, Rémy Voet (ryv), Tiffany Chang (tic), Gorash, Mathieu Duckerts-Antoine, abd-msyukyu-odoo, William Braeckman, Benjamin Vray, Benoit Socias, Nicolas Bayet, luvi, alsh-odoo, Victor Piryns (pivi), Thomas Becquevort (thbe), Pierre-Yves Dufays, Dylan Kiss (dyki), Mayurrajsinh Rathod, bram1000, divy-odoo, Mahdi Cheikh Rouhou (macr), Walid (wasa), Mehdi Outagant (MOU), Serge Bayet (seba), adsh-odoo, nihp-odoo, adch-odoo, Rodolpho Lima, Adnan Saiyed, Chrysanthe (chgo), Junqi Wu, Antoine (anso), Pierre Pulinckx (PIPU), Sébastien (blse), Pierre Pulinckx, Bastien PIERRE, Krzysztof Magusiak (krma), utma-odoo, defl, Augustin (duau), Serhii Rubanskyi, romo, Alessandro Lupo, h4818, saurabh, sbbh-odoo, vega-odoo, Julien (jdeh), chpa-odoo, panj-odoo
Odoo dependencies
Python dependencies
geoip2
System dependencies
None
Required by
website_forum_subscription, website_slides_forum
Description
Ask questions, get answers, no distractions
        

Code Analysis

Views touched (65)
XML IDNameModelTypeStatus
404 404 ir.ui.view qweb New
author_box author_box ir.ui.view qweb New
close_post Close Post ir.ui.view qweb New
contact Forum Contact Widget ir.ui.view qweb Inherits base.contact
default_faq Faq Accordion qweb New
display_activities Forum Profile Activities ir.ui.view qweb New
display_post display_post ir.ui.view qweb New
display_post_answer display_post_answer ir.ui.view qweb New
display_post_question_block display_post_question_block ir.ui.view qweb New
edit_post Edit Post ir.ui.view qweb New
faq Frequently Asked Questions ir.ui.view qweb New
faq_karma Karma ir.ui.view qweb New
follow follow ir.ui.view qweb New
forum_all Forum Navigation ir.ui.view qweb New
forum_all_all_entries forum_all_all_entries ir.ui.view qweb New
forum_all_oe_structure_forum_all_top Forum Navigation (oe_structure_forum_all_top) ir.ui.view qweb Inherits website_forum.forum_all
forum_filter_tag Filtering Forum Tag ir.ui.view qweb New
forum_forum_view_form forum.forum.view.form forum.forum form New
forum_forum_view_form_add forum.forum.view.form.add forum.forum form New
forum_forum_view_search forum.forum.view.search forum.forum search New
forum_forum_view_tree forum.forum.view.list forum.forum list New
forum_index Forum ir.ui.view qweb New
forum_index_tags Forum Tags ir.ui.view qweb New
forum_model_nav forum_model_nav ir.ui.view qweb New
forum_post_reason_view_list forum.post.reason.list forum.post.reason list New
forum_post_template_new_answer forum_post_template_new_answer ir.ui.view qweb New
forum_post_template_new_question forum_post_template_new_question ir.ui.view qweb New
forum_post_template_validation forum_post_template_validation ir.ui.view qweb New
forum_post_view_form forum.post.view.form forum.post form New
forum_post_view_graph forum.post.view.graph forum.post graph New
forum_post_view_kanban Forum Post Pages Kanban forum.post kanban New
forum_post_view_search forum.post.view.search forum.post search New
forum_post_view_tree forum.post.view.list forum.post list New
forum_related_posts Related Posts ir.ui.view qweb New
forum_sign_up_cta Sign-Up Call to Action ir.ui.view qweb New
forum_tag_view_form forum.tag.view.form forum.tag form New
forum_tag_view_list forum.tag.view.list forum.tag list New
gamification_karma_tracking_view_search gamification.karma.tracking.view.search.inherit.website.forum gamification.karma.tracking search Inherits gamification.gamification_karma_tracking_view_search
header Forum Index ir.ui.view qweb New
header_welcome_message Forum Welcome Message (oe_structure_forum_top) ir.ui.view qweb Inherits website_forum.header
layout Forum Layout ir.ui.view qweb Inherits website.layout
link_button link_button ir.ui.view qweb New
mark_as_offensive mark_as_offensive ir.ui.view qweb New
moderation_display_post_question_block moderation_display_post_question_block ir.ui.view qweb New
moderation_queue Forum Moderation Queue ir.ui.view qweb New
new_question New Post ir.ui.view qweb New
no_results_message no_results_message ir.ui.view qweb New
post_answer post_answer ir.ui.view qweb New
post_comment post_comment ir.ui.view qweb New
post_description_full Question Navigation ir.ui.view qweb New
post_display post_display ir.ui.view qweb New
post_dropdown post_dropdown ir.ui.view qweb New
post_stats post_stats ir.ui.view qweb New
profile_access_denied profile_access_denied ir.ui.view qweb Inherits website_profile.profile_access_denied
show_flag_validator show_flag_validator ir.ui.view qweb New
user_profile_content user_profile_content ir.ui.view qweb Inherits website_profile.user_profile_content
user_sidebar user_sidebar ir.ui.view qweb New
user_sidebar_body user_sidebar_body ir.ui.view qweb New
user_sidebar_header user_sidebar_header ir.ui.view qweb New
user_sidebar_mobile user_sidebar_mobile ir.ui.view qweb New
user_votes Forum User Votes ir.ui.view qweb New
vote vote ir.ui.view qweb New
website_forum.opt_last_post Show Last Post ir.ui.view qweb Inherits website_forum.forum_all
website_forum.opt_list_view List View ir.ui.view qweb Inherits website_forum.forum_all
website_forum.opt_post_count Show Post Count ir.ui.view qweb Inherits website_forum.forum_all
HTTP endpoints (40)
Route(s)HandlerAuthTypeMethodsFlags
/forum/<model("forum.forum"):forum>/closed_posts WebsiteForum.closed_posts user http ALL website
/forum/<model("forum.forum"):forum>/post/<model("forum.post"):post>/convert_to_comment WebsiteForum.convert_answer_to_comment user http POST website
/forum/<model("forum.forum"):forum>/post/<model("forum.post"):post>/comment/<model("mail.message"):comment>/convert_to_answer WebsiteForum.convert_comment_to_answer user http POST website
/forum/<model("forum.forum"):forum>/post/<model("forum.post"):post>/comment/<model("mail.message"):comment>/delete WebsiteForum.delete_comment user jsonrpc ALL website
/forum/<model("forum.forum"):forum>/flagged_queue WebsiteForum.flagged_queue user http ALL sudo website
/forum WebsiteForum.forum public http ALL website
/forum/<model("forum.forum"):forum>/faq WebsiteForum.forum_faq public http ALL website
/forum/<model("forum.forum"):forum>/faq/karma WebsiteForum.forum_faq_karma public http ALL website
/forum/<model("forum.forum"):forum>/ask WebsiteForum.forum_post user http ALL website
/forum/get_url_title WebsiteForum.get_url_title user jsonrpc POST website
/forum/<model("forum.forum"):forum>/offensive_posts WebsiteForum.offensive_posts user http ALL sudo website
/forum/<model("forum.forum"):forum>/question/<model("forum.post", "[('forum_id','=',forum.id),('parent_id','=',False),('can_view', '=', True)]"):question> WebsiteForum.old_question public http ALL website
/forum/<model("forum.forum"):forum>/partner/<int:partner_id> WebsiteForum.open_partner public http ALL sudo website
/forum/<model("forum.forum"):forum>/post/<model("forum.post"):post>/validate WebsiteForum.post_accept user http ALL website
/forum/<model("forum.forum"):forum>/post/<model("forum.post"):post>/comment WebsiteForum.post_comment user http POST website
/forum/<model("forum.forum"):forum>/new, /forum/<model("forum.forum"):forum>/<model("forum.post"):post_parent>/reply WebsiteForum.post_create user http POST website
/forum/<model("forum.forum"):forum>/post/<model("forum.post"):post>/delete WebsiteForum.post_delete user http POST website
/forum/<model("forum.forum"):forum>/post/<model("forum.post"):post>/downvote WebsiteForum.post_downvote user jsonrpc ALL website
/forum/<model("forum.forum"):forum>/post/<model("forum.post"):post>/edit WebsiteForum.post_edit user http ALL website
/forum/<model("forum.forum"):forum>/post/<model("forum.post"):post>/flag WebsiteForum.post_flag user jsonrpc ALL website
/forum/<model("forum.forum"):forum>/post/<model("forum.post"):post>/ask_for_mark_as_offensive WebsiteForum.post_http_ask_for_mark_as_offensive user http GET website
/forum/<model("forum.post"):post>/ask_for_mark_as_offensive WebsiteForum.post_json_ask_for_mark_as_offensive user jsonrpc ALL website
/forum/<model("forum.forum"):forum>/post/<model("forum.post"):post>/mark_as_offensive WebsiteForum.post_mark_as_offensive user http POST website
/forum/<model("forum.forum"):forum>/post/<model("forum.post"):post>/refuse WebsiteForum.post_refuse user http ALL website
/forum/<model("forum.forum"):forum>/post/<model("forum.post"):post>/save WebsiteForum.post_save user http POST website
/forum/<model("forum.forum"):forum>/post/<model("forum.post"):post>/toggle_correct WebsiteForum.post_toggle_correct user jsonrpc ALL website
/forum/<model("forum.forum"):forum>/post/<model("forum.post"):post>/upvote WebsiteForum.post_upvote user jsonrpc ALL website
/forum/<model("forum.forum"):forum>/<model("forum.post"):question> WebsiteForum.question public http ALL sudo website
/forum/<model("forum.forum"):forum>/question/<model("forum.post"):question>/ask_for_close WebsiteForum.question_ask_for_close user http POST website
/forum/<model("forum.forum"):forum>/question/<model("forum.post"):question>/close WebsiteForum.question_close user http POST website
/forum/<model("forum.forum"):forum>/question/<model("forum.post"):question>/delete WebsiteForum.question_delete user http POST website
/forum/<model("forum.forum"):forum>/question/<model("forum.post"):question>/edit_answer WebsiteForum.question_edit_answer user http ALL website
/forum/<model("forum.forum"):forum>/question/<model("forum.post"):question>/reopen WebsiteForum.question_reopen user http POST website
/forum/<model("forum.forum"):forum>/question/<model("forum.post"):question>/toggle_favourite WebsiteForum.question_toggle_favorite user jsonrpc POST sudo website
/forum/<model("forum.forum"):forum>/question/<model("forum.post"):question>/undelete WebsiteForum.question_undelete user http POST website
/forum/all, /forum/all/page/<int:page>, /forum/<model("forum.forum"):forum>, /forum/<model("forum.forum"):forum>/page/<int:page>, /forum/<model("forum.forum"):forum>/tag/<model("forum.tag"):tag>/questions, /forum/<model("forum.forum"):forum>/tag/<model("forum.tag"):tag>/questions/page/<int:page> WebsiteForum.questions public http ALL website
/forum/get_tags WebsiteForum.tag_read public http GET website
/forum/<model("forum.forum"):forum>/tag, /forum/<model("forum.forum"):forum>/tag/<string:tag_char> WebsiteForum.tags public http ALL website
/forum/<model("forum.forum"):forum>/validation_queue WebsiteForum.validation_queue user http ALL sudo website
/forum/user/<int:user_id> WebsiteForumLegacy.view_user_forum_profile public http ALL website
Models touched (10)

New fields (60)
  • active Boolean
    default=True
  • allow_share Boolean
    default=True help='After posting the user will be proposed to share its question or answer on social networks, enabling social network propagation of the forum content.' args: 'Sharing Options'
  • authorized_group_id Many2one → res.groups
    args: 'res.groups', 'Authorized Group'
  • can_moderate Boolean
    compute='_compute_can_moderate' string='Is a moderator'
  • count_flagged_posts Integer
    compute='_compute_count_flagged_posts' string='Number of flagged posts'
  • count_posts_waiting_validation Integer
    compute='_compute_count_posts_waiting_validation' string='Number of posts waiting for validation'
  • default_order Selection
    default='last_activity_date desc' required=True string='Default' args: [('create_date desc', 'Newest'), ('last_activity_date desc', 'Last Updated'), ('vote_count desc', 'Most Voted'), ('relevancy desc', 'Relevance'), ('child_count desc', 'Answered')]
  • description Text
    translate=True args: 'Description'
  • faq Html
    sanitize=True sanitize_overridable=True translate=html_translate args: 'Guidelines'
  • has_pending_post Boolean
    compute='_compute_has_pending_post' string='Has pending post'
  • karma_answer Integer
    default=3 string='Answer questions'
  • karma_answer_accept_all Integer
    default=500 string='Accept an answer to all questions'
  • karma_answer_accept_own Integer
    default=20 string='Accept an answer on own questions'
  • karma_ask Integer
    default=3 string='Ask questions'
  • karma_close_all Integer
    default=500 string='Close all posts'
  • karma_close_own Integer
    default=100 string='Close own posts'
  • karma_comment_all Integer
    default=1 string='Comment all posts'
  • karma_comment_convert_all Integer
    default=500 string='Convert all comments to answers'
  • karma_comment_convert_own Integer
    default=50 string='Convert own comments to answers'
  • karma_comment_own Integer
    default=1 string='Comment own posts'
  • karma_comment_unlink_all Integer
    default=500 string='Delete all comments'
  • karma_comment_unlink_own Integer
    default=50 string='Delete own comments'
  • karma_dofollow Integer
    default=500 help='If the author has not enough karma, a nofollow attribute is added to links' string='Nofollow links'
  • karma_downvote Integer
    default=50 string='Downvote'
  • karma_edit_all Integer
    default=300 string='Edit all posts'
  • karma_edit_own Integer
    default=1 string='Edit own posts'
  • karma_edit_retag Integer
    default=75 string='Change question tags'
  • karma_editor Integer
    default=30 string='Editor Features: image and links'
  • karma_flag Integer
    default=500 string='Flag a post as offensive'
  • karma_gen_answer_accept Integer
    default=2 string='Accepting an answer'
  • karma_gen_answer_accepted Integer
    default=15 string='Answer accepted'
  • karma_gen_answer_downvote Integer
    default=-2 string='Answer downvoted'
  • karma_gen_answer_flagged Integer
    default=-100 string='Answer flagged'
  • karma_gen_answer_upvote Integer
    default=10 string='Answer upvoted'
  • karma_gen_question_downvote Integer
    default=-2 string='Question downvoted'
  • karma_gen_question_new Integer
    default=2 string='Asking a question'
  • karma_gen_question_upvote Integer
    default=5 string='Question upvoted'
  • karma_moderate Integer
    default=1000 string='Moderate posts'
  • karma_post Integer
    default=100 string='Ask questions without validation'
  • karma_tag_create Integer
    default=30 string='Create new tags'
  • karma_unlink_all Integer
    default=1000 string='Delete all posts'
  • karma_unlink_own Integer
    default=500 string='Delete own posts'
  • karma_upvote Integer
    default=5 string='Upvote'
  • karma_user_bio Integer
    default=750 string='Display detailed user biography'
  • last_post_id Many2one → forum.post
    compute='_compute_last_post_id' args: 'forum.post'
  • mode Selection
    default='questions' help='Questions mode: only one answer allowed\n Discussions mode: multiple answers allowed' required=True string='Mode' args: [('questions', 'Questions (1 answer)'), ('discussions', 'Discussions (multiple answers)')]
  • name Char
    required=True translate=True args: 'Forum Name'
  • post_ids One2many → forum.post
    string='Posts' args: 'forum.post', 'forum_id'
  • privacy Selection
    default='public' help='Public: Forum is public\nSigned In: Forum is visible for signed in users\nSome users: Forum and their content are hidden for non members of selected group' args: [('public', 'Public'), ('connected', 'Signed In'), ('private', 'Some users')]
  • relevancy_post_vote Float
    default=0.8 help="This formula is used in order to sort by relevance. The variable 'votes' represents number of votes for a post, and 'days' is number of days since the post creation" args: 'First Relevance Parameter'
  • relevancy_time_decay Float
    default=1.8 args: 'Second Relevance Parameter'
  • sequence Integer
    default=1 args: 'Sequence'
  • tag_ids One2many → forum.tag
    string='Tags' args: 'forum.tag', 'forum_id'
  • tag_most_used_ids One2many → forum.tag
    compute='_compute_tag_ids_usage' string='Most used tags' args: 'forum.tag'
  • tag_unused_ids One2many → forum.tag
    compute='_compute_tag_ids_usage' string='Unused tags' args: 'forum.tag'
  • total_answers Integer
    compute='_compute_forum_statistics' args: '# Answers'
  • total_favorites Integer
    compute='_compute_forum_statistics' args: '# Favorites'
  • total_posts Integer
    compute='_compute_forum_statistics' args: '# Posts'
  • total_views Integer
    compute='_compute_forum_statistics' args: '# Views'
  • welcome_message Html
    default=_get_default_welcome_message sanitize_attributes=False sanitize_form=False translate=html_translate args: 'Welcome Message'
Public methods (4)
  • create(self, vals_list)
    @api.model_create_multi
  • go_to_website(self)
  • unlink(self)
  • write(self, vals)

New fields (58)
  • active Boolean
    default=True args: 'Active'
  • can_accept Boolean
    compute='_compute_post_karma_rights' compute_sudo=False args: 'Can Accept'
  • can_answer Boolean
    compute='_compute_post_karma_rights' compute_sudo=False args: 'Can Answer'
  • can_ask Boolean
    compute='_compute_post_karma_rights' compute_sudo=False args: 'Can Ask'
  • can_close Boolean
    compute='_compute_post_karma_rights' compute_sudo=False args: 'Can Close'
  • can_comment Boolean
    compute='_compute_post_karma_rights' compute_sudo=False args: 'Can Comment'
  • can_comment_convert Boolean
    compute='_compute_post_karma_rights' compute_sudo=False args: 'Can Convert to Comment'
  • can_display_biography Boolean
    compute='_compute_post_karma_rights' compute_sudo=False args: "Is the author's biography visible from his post"
  • can_downvote Boolean
    compute='_compute_post_karma_rights' compute_sudo=False args: 'Can Downvote'
  • can_edit Boolean
    compute='_compute_post_karma_rights' compute_sudo=False args: 'Can Edit'
  • can_flag Boolean
    compute='_compute_post_karma_rights' compute_sudo=False args: 'Can Flag'
  • can_moderate Boolean
    compute='_compute_post_karma_rights' compute_sudo=False args: 'Can Moderate'
  • can_post Boolean
    compute='_compute_post_karma_rights' compute_sudo=False args: 'Can Automatically be Validated'
  • can_unlink Boolean
    compute='_compute_post_karma_rights' compute_sudo=False args: 'Can Unlink'
  • can_upvote Boolean
    compute='_compute_post_karma_rights' compute_sudo=False args: 'Can Upvote'
  • can_use_full_editor Boolean
    compute='_compute_post_karma_rights' compute_sudo=False args: 'Can Use Full Editor'
  • can_view Boolean
    compute='_compute_post_karma_rights' compute_sudo=False search='_search_can_view' args: 'Can View'
  • child_count Integer
    compute='_compute_child_count' store=True args: 'Answers'
  • child_ids One2many → forum.post
    domain="[('forum_id', '=', forum_id)]" string='Post Answers' args: 'forum.post', 'parent_id'
  • closed_date Datetime
    copy=False readonly=True args: 'Closed on'
  • closed_reason_id Many2one → forum.post.reason
    copy=False string='Reason' args: 'forum.post.reason'
  • closed_uid Many2one → res.users
    copy=False readonly=True string='Closed by' args: 'res.users'
  • content Html
    strip_style=True args: 'Content'
  • create_date Datetime
    index=True readonly=True args: 'Asked on'
  • create_uid Many2one → res.users
    index=True readonly=True string='Created by' args: 'res.users'
  • favourite_count Integer
    compute='_compute_favorite_count' store=True args: 'Favorite'
  • favourite_ids Many2many → res.users
    string='Favourite' args: 'res.users'
  • flag_user_id Many2one → res.users
    string='Flagged by' args: 'res.users'
  • forum_id Many2one → forum.forum
    index=True required=True string='Forum' args: 'forum.forum'
  • has_validated_answer Boolean
    compute='_compute_has_validated_answer' store=True args: 'Is answered'
  • is_correct Boolean
    help='Correct answer or answer accepted' args: 'Correct'
  • karma_accept Integer
    compute='_compute_post_karma_rights' compute_sudo=False args: 'Convert comment to answer'
  • karma_close Integer
    compute='_compute_post_karma_rights' compute_sudo=False args: 'Karma to close'
  • karma_comment Integer
    compute='_compute_post_karma_rights' compute_sudo=False args: 'Karma to comment'
  • karma_comment_convert Integer
    compute='_compute_post_karma_rights' compute_sudo=False args: 'Karma to convert comment to answer'
  • karma_edit Integer
    compute='_compute_post_karma_rights' compute_sudo=False args: 'Karma to edit'
  • karma_flag Integer
    compute='_compute_post_karma_rights' compute_sudo=False args: 'Flag a post as offensive'
  • karma_unlink Integer
    compute='_compute_post_karma_rights' compute_sudo=False args: 'Karma to unlink'
  • last_activity_date Datetime
    default=fields.Datetime.now help="Field to keep track of a post's last activity. Updated whenever it is replied to, or when a comment is added on the post or one of its replies." readonly=True required=True args: 'Last activity on'
  • moderator_id Many2one → res.users
    readonly=True string='Reviewed by' args: 'res.users'
  • name Char
    args: 'Title'
  • parent_id Many2one → forum.post
    index=True ondelete='cascade' readonly=True string='Question' args: 'forum.post'
  • plain_content Text
    compute='_compute_plain_content' store=True args: 'Plain Content'
  • relevancy Float
    compute='_compute_relevancy' store=True args: 'Relevance'
  • self_reply Boolean
    compute='_compute_self_reply' store=True args: 'Reply to own question'
  • state Selection
    default='active' string='Status' args: [('active', 'Active'), ('pending', 'Waiting Validation'), ('close', 'Closed'), ('offensive', 'Offensive'), ('flagged', 'Flagged')]
  • tag_ids Many2many → forum.tag
    string='Tags' args: 'forum.tag', 'forum_tag_rel', 'forum_post_id', 'forum_tag_id'
  • uid_has_answered Boolean
    compute='_compute_uid_has_answered' args: 'Has Answered'
  • user_favourite Boolean
    compute='_compute_user_favourite' args: 'Is Favourite'
  • user_vote Integer
    compute='_compute_user_vote' args: 'My Vote'
  • views Integer
    copy=False default=0 readonly=True args: 'Views'
  • vote_count Integer
    compute='_compute_vote_count' store=True args: 'Total Votes'
  • vote_ids One2many → forum.post.vote
    string='Votes' args: 'forum.post.vote', 'post_id'
  • website_id Many2one
    readonly=True related='forum_id.website_id'
  • website_message_ids One2many
    domain=<expr>
  • website_url Char
    compute='_compute_website_url' args: 'Website URL'
  • write_date Datetime
    index=True readonly=True args: 'Updated on'
  • write_uid Many2one → res.users
    index=True readonly=True string='Updated by' args: 'res.users'
Public methods (13)
  • close(self, reason_id)
  • convert_answer_to_comment(self)
    Tools to convert an answer (forum.post) to a comment (mail.message). The original post is unlinked and a new comment is posted on the question using the post create_uid as the comment's author.
  • convert_comment_to_answer(self, message_id)
    @api.model
    Tool to convert a comment (mail.message) into an answer (forum.post). The original comment is unlinked and a new answer from the comment's author is created. Nothing is done if the comment's author already answered the question.
  • create(self, vals_list)
    @api.model_create_multi
  • go_to_website(self)
  • mark_as_offensive_batch(self, key, values)
  • message_post(self, *, message_type='notification', **kwargs)
  • reopen(self)
  • unlink(self)
  • unlink_comment(self, message_id)
  • validate(self)
  • vote(self, upvote=True)
  • write(self, vals)

New fields (2)
  • name Char
    required=True string='Closing Reason' translate=True
  • reason_type Selection
    default='basic' string='Reason Type' args: [('basic', 'Basic'), ('offensive', 'Offensive')]
Public methods (0)

No public methods.

New fields (6)
  • create_date Datetime
    index=True readonly=True args: 'Create Date'
  • forum_id Many2one → forum.forum
    index='btree_not_null' readonly=False related='post_id.forum_id' store=True string='Forum' args: 'forum.forum'
  • post_id Many2one → forum.post
    index=True ondelete='cascade' required=True string='Post' args: 'forum.post'
  • recipient_id Many2one → res.users
    readonly=False related='post_id.create_uid' store=True string='To' args: 'res.users'
  • user_id Many2one → res.users
    default=<expr> ondelete='cascade' required=True string='User' args: 'res.users'
  • vote Selection
    default='1' required=True string='Vote' args: [('1', '1'), ('-1', '-1'), ('0', '0')]
Public methods (2)
  • create(self, vals_list)
    @api.model_create_multi
  • write(self, vals)

New fields (6)
  • color Integer
    args: 'Color'
  • forum_id Many2one → forum.forum
    index=True required=True string='Forum' args: 'forum.forum'
  • name Char
    required=True args: 'Name'
  • post_ids Many2many → forum.post
    domain=[('state', '=', 'active')] string='Posts' args: 'forum.post', 'forum_tag_rel', 'forum_tag_id', 'forum_post_id'
  • posts_count Integer
    compute='_compute_posts_count' store=True args: 'Number of Posts'
  • website_url Char
    compute='_compute_website_url' args: 'Link to questions with the tag'
Public methods (1)
  • create(self, vals_list)
    @api.model_create_multi

New fields (1)
  • challenge_category Selection
    ondelete={'forum': 'set default'} selection_add=[('forum', 'Website / Forum')]
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (1)
  • create_date Datetime
    index=True readonly=True args: 'Create Date'
Public methods (2)
  • get_gamification_redirection_data(self)
  • open_website_url(self)

New fields (1)
  • forum_count Integer
    default=0 readonly=True
Public methods (4)
  • configurator_get_footer_links(self)
  • configurator_set_menu_links(self, menu_company, module_data)
  • create(self, vals_list)
    @api.model_create_multi
  • get_suggested_controllers(self)

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…