From dce8c322da7598db1572eb17e53ba1363237b532 Mon Sep 17 00:00:00 2001 From: AjmalCybro Date: Tue, 23 Jan 2024 14:50:55 +0530 Subject: [PATCH] Jan 23 [ADD] : Initial Commit 'smart_alert_warning' --- smart_alert_warning/README.rst | 47 ++ smart_alert_warning/__init__.py | 36 ++ smart_alert_warning/__manifest__.py | 50 ++ .../data/alert_message_data.xml | 13 + smart_alert_warning/doc/RELEASE_NOTES.md | 7 + smart_alert_warning/models/__init__.py | 23 + smart_alert_warning/models/alert_message.py | 163 +++++ smart_alert_warning/models/ir_ui_view.py | 30 + .../security/ir.model.access.csv | 3 + .../security/smart_alert_warning_groups.xml | 23 + .../static/description/assets/icons/check.png | Bin 0 -> 3676 bytes .../description/assets/icons/chevron.png | Bin 0 -> 310 bytes .../static/description/assets/icons/cogs.png | Bin 0 -> 1377 bytes .../description/assets/icons/consultation.png | Bin 0 -> 1458 bytes .../description/assets/icons/ecom-black.png | Bin 0 -> 576 bytes .../assets/icons/education-black.png | Bin 0 -> 733 bytes .../description/assets/icons/hotel-black.png | Bin 0 -> 911 bytes .../description/assets/icons/license.png | Bin 0 -> 1095 bytes .../description/assets/icons/lifebuoy.png | Bin 0 -> 1199 bytes .../assets/icons/manufacturing-black.png | Bin 0 -> 673 bytes .../description/assets/icons/pos-black.png | Bin 0 -> 878 bytes .../description/assets/icons/puzzle.png | Bin 0 -> 653 bytes .../assets/icons/restaurant-black.png | Bin 0 -> 905 bytes .../assets/icons/service-black.png | Bin 0 -> 839 bytes .../assets/icons/trading-black.png | Bin 0 -> 427 bytes .../description/assets/icons/training.png | Bin 0 -> 627 bytes .../description/assets/icons/update.png | Bin 0 -> 1225 bytes .../static/description/assets/icons/user.png | Bin 0 -> 988 bytes .../description/assets/icons/wrench.png | Bin 0 -> 1205 bytes .../description/assets/misc/categories.png | Bin 0 -> 1532 bytes .../description/assets/misc/check-box.png | Bin 0 -> 1118 bytes .../description/assets/misc/compass.png | Bin 0 -> 1931 bytes .../description/assets/misc/corporate.png | Bin 0 -> 1177 bytes .../assets/misc/customer-support.png | Bin 0 -> 2136 bytes .../description/assets/misc/cybrosys-logo.png | Bin 0 -> 4496 bytes .../description/assets/misc/features.png | Bin 0 -> 589 bytes .../static/description/assets/misc/logo.png | Bin 0 -> 3452 bytes .../description/assets/misc/pictures.png | Bin 0 -> 1692 bytes .../description/assets/misc/pie-chart.png | Bin 0 -> 2338 bytes .../description/assets/misc/right-arrow.png | Bin 0 -> 967 bytes .../static/description/assets/misc/star.png | Bin 0 -> 1642 bytes .../description/assets/misc/support.png | Bin 0 -> 3892 bytes .../description/assets/misc/whatsapp.png | Bin 0 -> 5097 bytes .../all_in_one_dynamic_custom_fields.png | Bin 0 -> 60503 bytes .../assets/modules/auto_database_backup.gif | Bin 0 -> 550911 bytes .../assets/modules/hide_menu_user.png | Bin 0 -> 60369 bytes .../assets/modules/login_user_detail.png | Bin 0 -> 57222 bytes .../assets/modules/multi_branch_base.png | Bin 0 -> 61617 bytes .../assets/modules/odoo_dynamic_dashboard.png | Bin 0 -> 66872 bytes .../assets/screenshots/alert-1.png | Bin 0 -> 130562 bytes .../assets/screenshots/alert-2.png | Bin 0 -> 97558 bytes .../assets/screenshots/alert-3.png | Bin 0 -> 178040 bytes .../assets/screenshots/alert-4.png | Bin 0 -> 105997 bytes .../assets/screenshots/alert-5.png | Bin 0 -> 179326 bytes .../assets/screenshots/alert-6.png | Bin 0 -> 105298 bytes .../assets/screenshots/alert-7.png | Bin 0 -> 179523 bytes .../description/assets/screenshots/hero.gif | Bin 0 -> 170170 bytes .../static/description/banner.jpg | Bin 0 -> 75721 bytes .../static/description/icon.png | Bin 0 -> 13451 bytes .../static/description/index.html | 597 ++++++++++++++++++ .../views/alert_message_views.xml | 91 +++ .../views/ir_ui_view_views.xml | 16 + 62 files changed, 1099 insertions(+) create mode 100644 smart_alert_warning/README.rst create mode 100644 smart_alert_warning/__init__.py create mode 100644 smart_alert_warning/__manifest__.py create mode 100644 smart_alert_warning/data/alert_message_data.xml create mode 100644 smart_alert_warning/doc/RELEASE_NOTES.md create mode 100644 smart_alert_warning/models/__init__.py create mode 100644 smart_alert_warning/models/alert_message.py create mode 100644 smart_alert_warning/models/ir_ui_view.py create mode 100644 smart_alert_warning/security/ir.model.access.csv create mode 100644 smart_alert_warning/security/smart_alert_warning_groups.xml create mode 100644 smart_alert_warning/static/description/assets/icons/check.png create mode 100644 smart_alert_warning/static/description/assets/icons/chevron.png create mode 100644 smart_alert_warning/static/description/assets/icons/cogs.png create mode 100644 smart_alert_warning/static/description/assets/icons/consultation.png create mode 100644 smart_alert_warning/static/description/assets/icons/ecom-black.png create mode 100644 smart_alert_warning/static/description/assets/icons/education-black.png create mode 100644 smart_alert_warning/static/description/assets/icons/hotel-black.png create mode 100644 smart_alert_warning/static/description/assets/icons/license.png create mode 100644 smart_alert_warning/static/description/assets/icons/lifebuoy.png create mode 100644 smart_alert_warning/static/description/assets/icons/manufacturing-black.png create mode 100644 smart_alert_warning/static/description/assets/icons/pos-black.png create mode 100644 smart_alert_warning/static/description/assets/icons/puzzle.png create mode 100644 smart_alert_warning/static/description/assets/icons/restaurant-black.png create mode 100644 smart_alert_warning/static/description/assets/icons/service-black.png create mode 100644 smart_alert_warning/static/description/assets/icons/trading-black.png create mode 100644 smart_alert_warning/static/description/assets/icons/training.png create mode 100644 smart_alert_warning/static/description/assets/icons/update.png create mode 100644 smart_alert_warning/static/description/assets/icons/user.png create mode 100644 smart_alert_warning/static/description/assets/icons/wrench.png create mode 100644 smart_alert_warning/static/description/assets/misc/categories.png create mode 100644 smart_alert_warning/static/description/assets/misc/check-box.png create mode 100644 smart_alert_warning/static/description/assets/misc/compass.png create mode 100644 smart_alert_warning/static/description/assets/misc/corporate.png create mode 100644 smart_alert_warning/static/description/assets/misc/customer-support.png create mode 100644 smart_alert_warning/static/description/assets/misc/cybrosys-logo.png create mode 100644 smart_alert_warning/static/description/assets/misc/features.png create mode 100644 smart_alert_warning/static/description/assets/misc/logo.png create mode 100644 smart_alert_warning/static/description/assets/misc/pictures.png create mode 100644 smart_alert_warning/static/description/assets/misc/pie-chart.png create mode 100644 smart_alert_warning/static/description/assets/misc/right-arrow.png create mode 100644 smart_alert_warning/static/description/assets/misc/star.png create mode 100644 smart_alert_warning/static/description/assets/misc/support.png create mode 100644 smart_alert_warning/static/description/assets/misc/whatsapp.png create mode 100644 smart_alert_warning/static/description/assets/modules/all_in_one_dynamic_custom_fields.png create mode 100644 smart_alert_warning/static/description/assets/modules/auto_database_backup.gif create mode 100644 smart_alert_warning/static/description/assets/modules/hide_menu_user.png create mode 100644 smart_alert_warning/static/description/assets/modules/login_user_detail.png create mode 100644 smart_alert_warning/static/description/assets/modules/multi_branch_base.png create mode 100644 smart_alert_warning/static/description/assets/modules/odoo_dynamic_dashboard.png create mode 100644 smart_alert_warning/static/description/assets/screenshots/alert-1.png create mode 100644 smart_alert_warning/static/description/assets/screenshots/alert-2.png create mode 100644 smart_alert_warning/static/description/assets/screenshots/alert-3.png create mode 100644 smart_alert_warning/static/description/assets/screenshots/alert-4.png create mode 100644 smart_alert_warning/static/description/assets/screenshots/alert-5.png create mode 100644 smart_alert_warning/static/description/assets/screenshots/alert-6.png create mode 100644 smart_alert_warning/static/description/assets/screenshots/alert-7.png create mode 100644 smart_alert_warning/static/description/assets/screenshots/hero.gif create mode 100644 smart_alert_warning/static/description/banner.jpg create mode 100644 smart_alert_warning/static/description/icon.png create mode 100644 smart_alert_warning/static/description/index.html create mode 100644 smart_alert_warning/views/alert_message_views.xml create mode 100644 smart_alert_warning/views/ir_ui_view_views.xml diff --git a/smart_alert_warning/README.rst b/smart_alert_warning/README.rst new file mode 100644 index 000000000..de3714456 --- /dev/null +++ b/smart_alert_warning/README.rst @@ -0,0 +1,47 @@ +.. image:: https://img.shields.io/badge/license-LGPL--3-green.svg + :target: https://www.gnu.org/licenses/lgpl-3.0-standalone.html + :alt: License: LGPL-3 + +Smart Alerts +============ +User can see smart alerts on any model based on different conditions set by the admin. + +Configuration +============= +* After installing the module, set the user group, and reload the window. + +Company +------- +* `Cybrosys Techno Solutions `__ + +License +======= +GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) +(https://www.gnu.org/licenses/lgpl-3.0-standalone.html) + +Credits +------- +* Developer: (V15) Mohammed Irfan T, Contact: odoo@cybrosys.com + + +Contacts +-------- +* Mail Contact : odoo@cybrosys.com +* Website : https://cybrosys.com + +Bug Tracker +----------- +Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. + +Maintainer +========== +.. image:: https://cybrosys.com/images/logo.png + :target: https://cybrosys.com + +This module is maintained by Cybrosys Technologies. + +For support and more information, please visit `Our Website `__ + +Further information +=================== +HTML Description: ``__ diff --git a/smart_alert_warning/__init__.py b/smart_alert_warning/__init__.py new file mode 100644 index 000000000..f7a1cde1f --- /dev/null +++ b/smart_alert_warning/__init__.py @@ -0,0 +1,36 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies() +# Author: Mohammed Irfan T () +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +from . import models +from odoo import api, SUPERUSER_ID + + +def _post_init_hook(cr, registry): + env = api.Environment(cr, SUPERUSER_ID, {}) + modules = env['alert.message'].browse(1) + modules.sudo().action_confirm() + + +def _uninstall_hook(cr, registry): + env = api.Environment(cr, SUPERUSER_ID, {}) + modules = env['ir.ui.view'].search([('is_alert_boolean', '=', True)]) + for rec in modules: + rec.unlink() diff --git a/smart_alert_warning/__manifest__.py b/smart_alert_warning/__manifest__.py new file mode 100644 index 000000000..64343f87f --- /dev/null +++ b/smart_alert_warning/__manifest__.py @@ -0,0 +1,50 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies() +# Author: Mohammed Irfan T () +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +{ + 'name': 'Smart Alerts', + 'version': '15.0.1.0.0', + 'category': 'Extra Tools', + 'summary': 'Smart alerts on any model based on different conditions', + 'description': "User can see smart alerts on any model based on different" + " conditions set by the admin.", + 'author': 'Cybrosys Techno Solutions', + 'maintainer': 'Cybrosys Techno Solutions', + 'company': 'Cybrosys Techno Solutions', + 'website': 'https://www.cybrosys.com', + 'depends': ['base'], + 'data': [ + 'security/smart_alert_warning_groups.xml', + 'security/ir.model.access.csv', + 'views/alert_message_views.xml', + 'views/ir_ui_view_views.xml', + ], + 'demo': [ + 'data/alert_message_data.xml', + ], + 'images': ['static/description/banner.jpg'], + 'license': 'LGPL-3', + 'installable': True, + 'post_init_hook': '_post_init_hook', + 'uninstall_hook': '_uninstall_hook', + 'auto_install': False, + 'application': True, +} diff --git a/smart_alert_warning/data/alert_message_data.xml b/smart_alert_warning/data/alert_message_data.xml new file mode 100644 index 000000000..e632f3da5 --- /dev/null +++ b/smart_alert_warning/data/alert_message_data.xml @@ -0,0 +1,13 @@ + + + + + Draft Alert Message + Your alert record is still in draft. Please change the state. + alert-warning + + + [['state', '=', 'draft']] + + + \ No newline at end of file diff --git a/smart_alert_warning/doc/RELEASE_NOTES.md b/smart_alert_warning/doc/RELEASE_NOTES.md new file mode 100644 index 000000000..4bc7a5903 --- /dev/null +++ b/smart_alert_warning/doc/RELEASE_NOTES.md @@ -0,0 +1,7 @@ +## Module + +#### 22.1.2024 +#### Version 15.0.1.0.0 +#### ADD + +- Initial Commit for Smart Alerts diff --git a/smart_alert_warning/models/__init__.py b/smart_alert_warning/models/__init__.py new file mode 100644 index 000000000..1f3f9ce3d --- /dev/null +++ b/smart_alert_warning/models/__init__.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies() +# Author: Mohammed Irfan T () +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +from . import alert_message +from . import ir_ui_view diff --git a/smart_alert_warning/models/alert_message.py b/smart_alert_warning/models/alert_message.py new file mode 100644 index 000000000..e6bb869be --- /dev/null +++ b/smart_alert_warning/models/alert_message.py @@ -0,0 +1,163 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies() +# Author: Mohammed Irfan T () +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +import ast +from odoo import api, fields, models, _ +from odoo.exceptions import UserError + +OBJECT_VALS = { + '=': '!=', + '!=': '=', + '>': '<', + '<': '>', + '>=': '<=;', + '<=': '>=;', + 'ilike': 'not in', + 'not ilike': 'in', + 'in': 'not in', + 'not in': 'in' +} + + +class AlertMessage(models.Model): + """ + This class used to create the smart alert warnings + """ + _name = 'alert.message' + _description = 'Alert Message' + + name = fields.Char(string='Name', required=True, + help="Name for the smart alert warning") + document_type_id = fields.Many2one('ir.model', required=True, + help="Choose the model in which where " + "you need to show the warning", + string="Document Type", + ondelete='cascade') + group_id = fields.Many2one('res.groups', + help="Choose which user groups need to see " + "the warnings", string="Group") + alert_messages = fields.Char(string='Alert Message', required=True, + help='Alert message that will show ' + 'in the view.') + type = fields.Selection([('alert-primary', 'Alert Primary'), + ('alert-secondary', 'Alert Secondary'), + ('alert-success', 'Alert Success'), + ('alert-danger', 'Alert Danger'), + ('alert-warning', 'Alert Warning'), + ('alert-info', 'Alert Info')], + required=True, help='Type of alert message', + string="Type") + model_name = fields.Char(string="Model Name", help="name of selected " + "model", + related="document_type_id.model") + field_filter = fields.Char(default="[]", + help="Add any filtration if you need to show" + " the warning messages", + string="Field Filter") + view_id = fields.Many2one('ir.ui.view', required=True, + domain='[("model", "=", model_name), ' + '("type", "=", "form"), ' + '("is_alert_boolean", "=", False)]', + help="Choose the view in which the alert need " + "to show", string='View') + new_view_id = fields.Many2one('ir.ui.view', + string="Created New view Id", + readonly=True, + help="To generate the view id of newly " + "created record") + state = fields.Selection( + [('draft', 'Draft'), ('done', 'Done')], + default="draft", help="Stages of the record", string="State") + is_edit_mode = fields.Boolean(string="Is Edit", + help="To check is it is in edit mode") + + def action_confirm(self): + """ + This method is responsible for creating a new record and related + view based on provided parameters and conditions. + + It performs the following actions: + - Deletes the existing new_view_id if it exists. + - Retrieves model and model_view based on document_type_id and + view_id. + - Constructs an XML snippet (arch) for the view with dynamic + attributes. + - Attempts to create the new view and updates related fields. + + :return: The ID of the newly created view. + """ + if self.new_view_id: + self.new_view_id.unlink() + model_view = self.view_id + class_name = 'alert ' + self.type + xml_id = '' + if self.group_id.id: + xml_ids = self.group_id.get_external_id() + xml_id = xml_ids.get(self.group_id.id) + filter = ast.literal_eval(self.field_filter) + for i in range(len(filter)): + if filter[i] == '&': + filter[i] = '|' + elif filter[i] == '|': + filter[i] = '&' + else: + filter_list = list(filter[i]) + filter_list[1] = OBJECT_VALS[filter[i][1]] + filter[i] = tuple(filter_list) + invisible_filter = str(filter).replace("'", '"') + arch = '' + arch += ' + + +
+
+ +
+

Explore This + Module

+
+
+ + + +
+
+ +
+

Overview +

+
+
+
+ This module helps to show smart alerts on any model based on different conditions +
+
+ + + +
+
+ +
+

Features +

+
+
+
+
+ + Community, Enterprise & Odoo.sh Support. +
+
+ + Alert for any document type. +
+
+ + General and specific alerts. +
+
+
+ +
+ + Secured Alerts. +
+
+ + Different Alert style. +
+
+ + Refresh the page after creating records to + apply warning +
+
+
+ + + +
+
+ +
+

Screenshots +

+
+
+
+ +
+

User Configuration +

+

Settings -> Users -> + Access Rights -> Smart Alert

+

Only Smart Alert + Warning: Admin, Can create and manage the smart alerts.

+

Only Smart Alert Warning: User, Can View the + created records.

+ +
+ +
+

Alert Secondary +

+

Create a new alert + record and refresh the page to apply the warning

+ +
+ + +
+

Alert Message +

+

We can view the alert + message for its corresponding record.

+ +
+
+

Alert Success +

+

+ +
+ +
+

Alert Message +

+

+ +
+ +
+

Alert Primary +

+

+ +
+ +
+

Alert Message +

+

+ +
+ + +
+
+ + + +
+
+ +
+

Related + Products +

+
+
+
+ +
+
+ + + + +
+
+ +
+

Our Services +

+
+ +
+
+
+
+ +
+
+ Odoo + Customization
+
+ +
+
+ +
+
+ Odoo + Implementation
+
+ +
+
+ +
+
+ Odoo + Support
+
+ + +
+
+ +
+
+ Hire + Odoo + Developer
+
+ +
+
+ +
+
+ Odoo + Integration
+
+ +
+
+ +
+
+ Odoo + Migration
+
+ + +
+
+ +
+
+ Odoo + Consultancy
+
+ +
+
+ +
+
+ Odoo + Implementation
+
+ +
+
+ +
+
+ Odoo + Licensing Consultancy
+
+
+ +
+ + + + + +
+
+ +
+

Our + Industries +

+
+ +
+
+
+
+ +
+ Trading +
+

+ Easily procure + and + sell your products

+
+
+ +
+
+ +
+ POS +
+

+ Easy + configuration + and convivial experience

+
+
+ +
+
+ +
+ Education +
+

+ A platform for + educational management

+
+
+ +
+
+ +
+ Manufacturing +
+

+ Plan, track and + schedule your operations

+
+
+ +
+
+ +
+ E-commerce & Website +
+

+ Mobile + friendly, + awe-inspiring product pages

+
+
+ +
+
+ +
+ Service Management +
+

+ Keep track of + services and invoice

+
+
+ +
+
+ +
+ Restaurant +
+

+ Run your bar or + restaurant methodically

+
+
+ +
+
+ +
+ Hotel Management +
+

+ An + all-inclusive + hotel management application

+
+
+
+
+ + + + +
+
+ +
+

Support +

+
+
+
+
+
+
+ +
+
+

Need Help?

+

Got questions or need help? Get in touch.

+ +

+ odoo@cybrosys.com

+
+
+
+
+
+
+
+ +
+
+

WhatsApp

+

Say hi to us on WhatsApp!

+ +

+91 86068 + 27707

+
+
+
+
+
+
+
+ +
+
+
+ \ No newline at end of file diff --git a/smart_alert_warning/views/alert_message_views.xml b/smart_alert_warning/views/alert_message_views.xml new file mode 100644 index 000000000..6b2cd6a3b --- /dev/null +++ b/smart_alert_warning/views/alert_message_views.xml @@ -0,0 +1,91 @@ + + + + + Alert Message + alert.message + tree,form + + + + alert.message.view.form + alert.message + +
+
+ + + + + + + +
+ +
+

+ +

+
+ + + + + + + + + + + + + + + + + + + + +
+
+
+
+ + + alert.message.view.tree + alert.message + + + + + + + + + + + + +
diff --git a/smart_alert_warning/views/ir_ui_view_views.xml b/smart_alert_warning/views/ir_ui_view_views.xml new file mode 100644 index 000000000..83d579d31 --- /dev/null +++ b/smart_alert_warning/views/ir_ui_view_views.xml @@ -0,0 +1,16 @@ + + + + + ir.ui.view.view.form.inherit.smart.alert.warning + + ir.ui.view + + + + + + + +