Repository
OCA/server-ux · module folder · Try on Runboat
Module version
1.0.1
Category
Server UX
Folder size
0.23 MB
License
AGPL-3
Application
No
Auto-installable
No
Website
https://github.com/OCA/server-ux
Last tracking update
2026-08-07 08:42:52
Authors
Odoo Community Association (OCA), Tecnativa
Maintainers
Odoo Community Association (OCA), Tecnativa
Committers
Víctor Martínez, OCA-git-bot, oca-ci, David Bañón
Odoo dependencies
odoo/odoo:
- web
- bus
Python dependencies
None
System dependencies
None
Required by
None
Description
This module adds popup announcements in the backend for targeted
internal users. Those announcements can contain rich format and a user
read log is kept for everyone.

Code Analysis

Views touched (11)
XML IDNameModelTypeStatus
announcement_log_view_tree announcement.log list New
announcement_management_view_form announcement form Inherits announcement_view_form
announcement_management_view_tree announcement list Inherits announcement_view_tree
announcement_tag_view_form announcement.tag form New
announcement_tag_view_tree announcement.tag list New
announcement_view_calendar announcement calendar New
announcement_view_form announcement form New
announcement_view_kanban announcement kanban New
announcement_view_search announcement search New
announcement_view_tree announcement list New
read_announcement_wizard_view_tree read.announcement.wizard list New
HTTP endpoints (0)

No HTTP endpoints found for this module.

Models touched (6)

New fields (20)
  • active Boolean
    copy=False
  • allowed_user_ids Many2many → res.users
    comodel_name='res.users' compute='_compute_allowed_user_ids' compute_sudo=True relation='announcement_res_users_allowed_rel' store=True
  • allowed_users_count Integer
    compute='_compute_allowed_user_ids' compute_sudo=True store=True
  • announcement_log_ids One2many → announcement.log
    comodel_name='announcement.log' inverse_name='announcement_id'
  • announcement_type Selection
    default='specific_users' required=True selection=[('specific_users', 'Specific users'), ('user_group', 'User groups')]
  • attachment_ids Many2many → ir.attachment
    comodel_name='ir.attachment' help='You can attach the copy of your Letter' string='Attachments'
  • color Integer
    compute='_compute_color' help='Technical field to display items by color in the calendar'
  • content Html
  • in_date Boolean
    compute='_compute_in_date' compute_sudo=True search='_search_in_date'
  • is_general_announcement Boolean
    args: 'General Announcement'
  • name Char
    required=True string='Title'
  • notification_date Datetime
  • notification_end_date Datetime
    compute='_compute_notification_end_date' help='Technical field to display announcements in the calendar view'
  • notification_expiry_date Datetime
  • notification_start_date Datetime
    compute='_compute_notification_start_date' help='Technical field to display announcements in the calendar view'
  • read_announcement_count Integer
    compute='_compute_read_announcement_count' store=True
  • sequence Integer
  • specific_user_ids Many2many → res.users
    comodel_name='res.users' context={'active_test': False} domain=[('share', '=', False)] inverse='_inverse_specific_user_ids'
  • tag_ids Many2many → announcement.tag
    column1='announcement_id' column2='tag_id' comodel_name='announcement.tag' string='Tags'
  • user_group_ids Many2many → res.groups
    comodel_name='res.groups' compute='_compute_user_group_ids' readonly=False store=True
Public methods (3)
  • action_announcement_log(self)
    See altogether read logs and unread users
  • create(self, vals_list)
    @api.model_create_multi
    Adjust attachments for being accesible to receivers of the announcement.
  • write(self, vals)
    Adjust attachments for being accesible to receivers of the announcement. Adjust unread_announcement_ids when specific users are modified (if users are removed).

New fields (1)
  • announcement_id Many2one → announcement
    comodel_name='announcement'
Public methods (0)

No public methods.

New fields (4)
  • color Integer
  • company_id Many2one → res.company
    comodel_name='res.company' help='Company related to this tag' index=True string='Company'
  • name Char
    required=True translate=True
  • parent_id Many2one → announcement.tag
    comodel_name='announcement.tag' index=True ondelete='cascade' string='Parent Tag'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • session_info(self)

New fields (4)
  • announcement_id Many2one → announcement
    comodel_name='announcement'
  • date Datetime
    string='Read Date'
  • read_state Selection
    selection=[('read', 'Read'), ('unread', 'Unread')]
  • user_id Many2one → res.users
    comodel_name='res.users'
Public methods (0)

No public methods.

New fields (2)
  • read_announcement_ids Many2many → announcement
    comodel_name='announcement' relation='read_announcement_user_rel'
  • unread_announcement_ids Many2many → announcement
    comodel_name='announcement' relation='unread_announcement_user_rel'
Public methods (3)
  • announcement_user_count(self)
    @api.model
    The js widget gathers the announcements from this method
  • get_announcements(self)
    @api.model
  • mark_announcement_as_read(self, announcement_id)
    @api.model
    Used as a controller for the widget

Loading…

Loading…

Loading…

Loading…