diff --git a/all_in_one_schedule_activity_management/README.rst b/all_in_one_schedule_activity_management/README.rst new file mode 100644 index 000000000..e6ce6d6e6 --- /dev/null +++ b/all_in_one_schedule_activity_management/README.rst @@ -0,0 +1,51 @@ +.. 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 + +All in one Schedule Activity Management +======================================= +* Schedule Activity Management for Odoo 18 + +Configuration +============= +* Set Schedule Management user inside the user + +Company +------- +* `Cybrosys Techno Solutions `__ + +License +------- +General Public License, Version 3 (LGPL v3). +(https://www.gnu.org/licenses/lgpl-3.0-standalone.html) + +Credits +------- +* Developer: + (v16) Rosmy , + (V17) Anjhana A K, + (V18) Adarsh K, + +* 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/all_in_one_schedule_activity_management/__init__.py b/all_in_one_schedule_activity_management/__init__.py new file mode 100644 index 000000000..b4ab00148 --- /dev/null +++ b/all_in_one_schedule_activity_management/__init__.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +################################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author:Adarsh K() +# +# 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 diff --git a/all_in_one_schedule_activity_management/__manifest__.py b/all_in_one_schedule_activity_management/__manifest__.py new file mode 100644 index 000000000..f5355e891 --- /dev/null +++ b/all_in_one_schedule_activity_management/__manifest__.py @@ -0,0 +1,63 @@ +# -*- coding: utf-8 -*- +################################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author:Adarsh K() +# +# 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': 'All in one Schedule Activity Management', + 'version': '18.0.1.0.0', + 'category': 'Tools', + 'summary': """The module allows the manage all scheduled activities.""", + 'description': """The module is a robust tool for organizing and overseeing + all scheduled tasks and events, and Activity manager could manage scheduled + activities. """, + 'author': 'Cybrosys Techno Solutions', + 'company': 'Cybrosys Techno Solutions', + 'maintainer': 'Cybrosys Techno Solutions', + 'website': "https://www.cybrosys.com", + 'depends': ['base_setup', 'mail', 'sale_management'], + 'data': [ + 'security/all_in_one_schedule_activity_management_groups.xml', + 'security/ir.model.access.csv', + 'data/ir_cron_data.xml', + 'views/mail_activity_views.xml', + 'views/activity_tag_views.xml', + 'views/my_activity_views.xml', + 'views/activity_dashbord_views.xml', + 'views/reporting_activity_views.xml', + 'views/activity_history_views.xml', + 'views/res_config_setting_views.xml', + 'views/menu_views.xml', + ], + 'assets': { + 'web.assets_backend': [ + 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js', + 'all_in_one_schedule_activity_management/static/src/xml/activity_dashboard_view.xml', + 'all_in_one_schedule_activity_management/static/src/js/activity_dashboard.js', + 'all_in_one_schedule_activity_management/static/src/css/dashboard.css', + 'all_in_one_schedule_activity_management/static/src/css/style.scss', + 'all_in_one_schedule_activity_management/static/src/css/material-gauge.css', + ], + }, + 'license': 'LGPL-3', + 'images': ['static/description/banner.jpg'], + 'installable': True, + 'auto_install': False, + 'application': True, +} diff --git a/all_in_one_schedule_activity_management/data/ir_cron_data.xml b/all_in_one_schedule_activity_management/data/ir_cron_data.xml new file mode 100644 index 000000000..6aaa6cd42 --- /dev/null +++ b/all_in_one_schedule_activity_management/data/ir_cron_data.xml @@ -0,0 +1,14 @@ + + + + + Recurring Todo Activity + + code + model.action_mail_on_due_date() + + 1 + days + + + \ No newline at end of file diff --git a/all_in_one_schedule_activity_management/doc/RELEASE_NOTES.md b/all_in_one_schedule_activity_management/doc/RELEASE_NOTES.md new file mode 100644 index 000000000..ba97c960b --- /dev/null +++ b/all_in_one_schedule_activity_management/doc/RELEASE_NOTES.md @@ -0,0 +1,6 @@ +## Module + +#### 06.05.2025 +#### Version 18.0.1.0.0 +##### ADD +- Initial commit for All in one Schedule Activity Management diff --git a/all_in_one_schedule_activity_management/models/__init__.py b/all_in_one_schedule_activity_management/models/__init__.py new file mode 100644 index 000000000..469fa523a --- /dev/null +++ b/all_in_one_schedule_activity_management/models/__init__.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author:Adarsh K() +# +# 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 mail_activity +from . import activity_tag +from . import res_config_settings +from . import res_users diff --git a/all_in_one_schedule_activity_management/models/activity_tag.py b/all_in_one_schedule_activity_management/models/activity_tag.py new file mode 100644 index 000000000..0b172baf0 --- /dev/null +++ b/all_in_one_schedule_activity_management/models/activity_tag.py @@ -0,0 +1,42 @@ +# -*- coding: utf-8 -*- +################################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author:Adarsh K() +# +# 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 odoo import fields, models +from random import randint + + +class ActivityTag(models.Model): + """This class is used to create tags for activity""" + _name = "activity.tag" + _description = "Activity Tag" + + def _get_default_color(self): + """to get colors for the tag""" + return randint(1, 11) + + name = fields.Char('Tag Name', required=True, translate=True, + help="Tag name") + color = fields.Integer('Color', default=_get_default_color, + help="Tag color") + + _sql_constraints = [ + ('name_uniq', 'unique (name)', "Tag name already exists !"), + ] diff --git a/all_in_one_schedule_activity_management/models/mail_activity.py b/all_in_one_schedule_activity_management/models/mail_activity.py new file mode 100644 index 000000000..f70b6f600 --- /dev/null +++ b/all_in_one_schedule_activity_management/models/mail_activity.py @@ -0,0 +1,172 @@ +# -*- coding: utf-8 -*- +################################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author:Adarsh K() +# +# 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 collections import defaultdict +from odoo import fields, models, _ +from odoo.exceptions import UserError + + +class MailActivity(models.Model): + """This class is used to inherit the mail.activity model""" + _inherit = "mail.activity" + + state = fields.Selection( + [ + ("overdue", "Overdue"), ("today", "Today"), ("planned", "Planned"), + ("done", "Done"), ("cancel", "Cancelled"),], + "State", compute="_compute_state", store=True, + help="state for the activity",) + active = fields.Boolean("Active", default=True, + help="The record make Active") + activity_tag_ids = fields.Many2many( + "activity.tag", string="Activity Tags", + help="Activity Tags") + + def action_mail_on_due_date(self): + """This function is used to send mails on due date""" + activity_email = self.env["mail.activity"].search([]) + notification_on_date = ( + self.env["ir.config_parameter"].sudo().get_param("notify_on_due_date") + ) + notification_on_expiry = ( + self.env["ir.config_parameter"].sudo().get_param("notify_on_expiry") + ) + for rec in activity_email: + if notification_on_expiry and rec.date_deadline < fields.date.today(): + self.env["mail.mail"].sudo().create( + { + "email_from": self.env.company.email, + "author_id": self.env.user.partner_id.id, + "body_html": "Hello
You missed the %s activity for the document %s
" + % (rec.activity_type_id.name, rec.res_name), + "subject": "%s Activity missed" % rec.activity_type_id.name, + "email_to": rec.user_id.email, + } + ).send(auto_commit=False) + if notification_on_date and rec.date_deadline == fields.date.today(): + self.env["mail.mail"].sudo().create( + { + "email_from": self.env.company.email, + "author_id": self.env.user.partner_id.id, + "body_html": "Hello
Today is your %s activity for the document %s
" + % (rec.activity_type_id.name, rec.res_name), + "subject": "Today %s Activity" % rec.activity_type_id.name, + "email_to": rec.user_id.email, + } + ).send(auto_commit=False) + + def action_activity_cancel(self): + """cancel activity""" + for rec in self: + if rec.state == "cancel": + raise UserError(_("You Cant Cancelled this activity %s") % rec.res_name) + else: + rec.action_cancel() + + def action_activity_done(self): + """done activity""" + for rec in self: + if rec.state == "done": + raise UserError(_("You Cant Cancelled this activity %s") % rec.res_name) + else: + rec._action_done() + + def get_activity_count(self): + """get the activity count details""" + activity = self.env["mail.activity"] + return { + "len_all": len(activity.search([])), + "len_overdue": len(activity.search([("state", "=", "overdue")])), + "len_planned": len(activity.search([("state", "=", "planned")])), + "len_today": len(activity.search([("state", "=", "today")])), + "len_done": len(activity.search([("state", "=", "done"), ("active", "=", False)])), + "len_cancel": len(activity.search([("state", "=", "cancel")])), + } + + def get_activity(self, id): + """Function for to get the activity""" + return {"model": self.env["mail.activity"].search([("id", "=", id)]).res_model, + "res_id": self.env["mail.activity"].search([("id", "=", id)]).res_id} + + def _action_done(self, feedback=False, attachment_ids=None): + """action done function: rewrite the function""" + messages = self.env["mail.message"] + next_activities_values = [] + attachments = self.env["ir.attachment"].search_read( + [("res_model", "=", self._name), ("res_id", "in", self.ids)], + ["id", "res_id"]) + activity_attachments = defaultdict(list) + for attachment in attachments: + activity_id = attachment["res_id"] + activity_attachments[activity_id].append(attachment["id"]) + for activity in self: + if activity.chaining_type == "trigger": + vals = activity.with_context( + activity_previous_deadline=activity.date_deadline + )._prepare_next_activity_values() + next_activities_values.append(vals) + records_sudo = self.env[activity.res_model].browse(activity.res_id) + records_sudo.message_post_with_source( + "mail.message_activity_done", + attachment_ids=attachment_ids, + author_id=self.env.user.partner_id.id, + render_values={ + "activity": activity, + "feedback": feedback, + "display_assignee": activity.user_id != self.env.user, + }, + mail_activity_type_id=activity.activity_type_id.id, + subtype_xmlid='mail.mt_activities', + ) + if activity.activity_type_id.keep_done: + attachment_ids = ( + attachment_ids or []) + activity_attachments.get( + activity.id, []) + if attachment_ids: + activity.attachment_ids = attachment_ids + activity_message = records_sudo.message_ids[0] + message_attachments = self.env["ir.attachment"].browse( + activity_attachments[activity.id] + ) + if message_attachments: + message_attachments.write( + { + "res_id": activity_message.id, + "res_model": activity_message._name, + } + ) + activity_message.attachment_ids = message_attachments + messages += activity_message + + next_activities = self.env['mail.activity'] + if next_activities_values: + next_activities = self.env['mail.activity'].create( + next_activities_values) + for rec in self: + rec.state = "done" + rec.active = False + return messages, next_activities + + def action_cancel(self): + self.state = "cancel" + """cancel activities""" + self.unlink() + diff --git a/all_in_one_schedule_activity_management/models/res_config_settings.py b/all_in_one_schedule_activity_management/models/res_config_settings.py new file mode 100644 index 000000000..bfdca712d --- /dev/null +++ b/all_in_one_schedule_activity_management/models/res_config_settings.py @@ -0,0 +1,43 @@ +# -*- coding: utf-8 -*- +################################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author:Adarsh K() +# +# 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 odoo import api, fields, models + + +class ResConfigSettings(models.TransientModel): + _inherit = 'res.config.settings' + + notify_on_due_date = fields.Boolean('Notify on Due Date', + help="Notify the due date", + config_parameter="notify_on_due_date") + notify_on_expiry = fields.Boolean('Notify on Expiry', + help="Notify the Expiry date", + config_parameter="notify_on_expiry") + + @api.model + def get_values(self): + """Returns a list of values for the given configuration fields""" + res = super(ResConfigSettings, self).get_values() + res['notify_on_due_date'] = self.env[ + 'ir.config_parameter'].sudo().get_param('notify_on_due_date') + res['notify_on_expiry'] = self.env[ + 'ir.config_parameter'].sudo().get_param('notify_on_expiry') + return res diff --git a/all_in_one_schedule_activity_management/models/res_users.py b/all_in_one_schedule_activity_management/models/res_users.py new file mode 100644 index 000000000..683489b33 --- /dev/null +++ b/all_in_one_schedule_activity_management/models/res_users.py @@ -0,0 +1,87 @@ +# -*- coding: utf-8 -*- +################################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author:Adarsh K() +# +# 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 odoo import _, api, models, modules +from collections import defaultdict + + +class Users(models.Model): + """This class is used to create tags for activity""" + _inherit = 'res.users' + + @api.model + def _get_activity_groups(self): + search_limit = int(self.env['ir.config_parameter'].sudo().get_param('mail.activity.systray.limit', 1000)) + activities = self.env["mail.activity"].search( + [("user_id", "=", self.env.uid)], order='id desc', limit=search_limit) + activities_by_record_by_model_name = defaultdict(lambda: defaultdict(lambda: self.env["mail.activity"])) + for activity in activities: + record = self.env[activity.res_model].browse(activity.res_id) + activities_by_record_by_model_name[activity.res_model][record] += activity + activities_by_model_name = defaultdict(lambda: self.env["mail.activity"]) + user_company_ids = self.env.user.company_ids.ids + is_all_user_companies_allowed = set(user_company_ids) == set(self.env.context.get('allowed_company_ids') or []) + for model_name, activities_by_record in activities_by_record_by_model_name.items(): + res_ids = [r.id for r in activities_by_record] + Model = self.env[model_name].with_context(**self.env.context) + has_model_access_right = self.env[model_name].check_access_rights('read', raise_exception=False) + if has_model_access_right: + allowed_records = Model.browse(res_ids)._filter_access_rules('read') + else: + allowed_records = self.env[model_name] + unallowed_records = Model.browse(res_ids) - allowed_records + if has_model_access_right and unallowed_records and not is_all_user_companies_allowed: + unallowed_records -= unallowed_records.with_context( + allowed_company_ids=user_company_ids)._filter_access_rules('read') + for record, activities in activities_by_record.items(): + if record in unallowed_records: + activities_by_model_name['mail.activity'] += activities + elif record in allowed_records: + activities_by_model_name[model_name] += activities + model_ids = [self.env["ir.model"]._get_id(name) for name in activities_by_model_name] + user_activities = {} + for model_name, activities in activities_by_model_name.items(): + Model = self.env[model_name] + module = Model._original_module + icon = module and modules.module.get_module_icon(module) + model = self.env["ir.model"]._get(model_name).with_prefetch(model_ids) + user_activities[model_name] = { + "id": model.id, + "name": model.name, + "model": model_name, + "type": "activity", + "icon": icon, + "total_count": 0, + "today_count": 0, + "overdue_count": 0, + "planned_count": 0, + "view_type": getattr(Model, '_systray_view', 'list'), + } + if model_name == 'mail.activity': + user_activities[model_name]['activity_ids'] = activities.ids + for activity in activities: + if activity.state != "cancel": + user_activities[model_name]["%s_count" % activity.state] += 1 + if activity.state in ("today", "overdue"): + user_activities[model_name]["total_count"] += 1 + if "mail.activity" in user_activities: + user_activities["mail.activity"]["name"] = _("Other activities") + return list(user_activities.values()) diff --git a/all_in_one_schedule_activity_management/security/all_in_one_schedule_activity_management_groups.xml b/all_in_one_schedule_activity_management/security/all_in_one_schedule_activity_management_groups.xml new file mode 100644 index 000000000..c987c0900 --- /dev/null +++ b/all_in_one_schedule_activity_management/security/all_in_one_schedule_activity_management_groups.xml @@ -0,0 +1,7 @@ + + + + + Schedule Management User + + diff --git a/all_in_one_schedule_activity_management/security/ir.model.access.csv b/all_in_one_schedule_activity_management/security/ir.model.access.csv new file mode 100644 index 000000000..2a23677d2 --- /dev/null +++ b/all_in_one_schedule_activity_management/security/ir.model.access.csv @@ -0,0 +1,4 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_activity_tag,activity.tag,model_activity_tag,base.group_user,1,1,1,1 +access_mail_access_mail_activity_all,access.mail.activity.all,model_mail_activity,,1,1,1,1 +access_mail_access_mail_activity_user,access.mail.activity.user,model_mail_activity,all_in_one_schedule_activity_management.group_schedule_management_user,1,1,1,1 diff --git a/all_in_one_schedule_activity_management/static/description/assets/cybro-icon.png b/all_in_one_schedule_activity_management/static/description/assets/cybro-icon.png new file mode 100644 index 000000000..06e73e11d Binary files /dev/null and b/all_in_one_schedule_activity_management/static/description/assets/cybro-icon.png differ diff --git a/all_in_one_schedule_activity_management/static/description/assets/cybro-odoo.png b/all_in_one_schedule_activity_management/static/description/assets/cybro-odoo.png new file mode 100644 index 000000000..ed02e07a4 Binary files /dev/null and b/all_in_one_schedule_activity_management/static/description/assets/cybro-odoo.png differ diff --git a/all_in_one_schedule_activity_management/static/description/assets/h2.png b/all_in_one_schedule_activity_management/static/description/assets/h2.png new file mode 100644 index 000000000..0bfc4707d Binary files /dev/null and b/all_in_one_schedule_activity_management/static/description/assets/h2.png differ diff --git a/all_in_one_schedule_activity_management/static/description/assets/icons/arrows-repeat.svg b/all_in_one_schedule_activity_management/static/description/assets/icons/arrows-repeat.svg new file mode 100644 index 000000000..1d7efabc5 --- /dev/null +++ b/all_in_one_schedule_activity_management/static/description/assets/icons/arrows-repeat.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/all_in_one_schedule_activity_management/static/description/assets/icons/banner-1.png b/all_in_one_schedule_activity_management/static/description/assets/icons/banner-1.png new file mode 100644 index 000000000..c180db172 Binary files /dev/null and b/all_in_one_schedule_activity_management/static/description/assets/icons/banner-1.png differ diff --git a/all_in_one_schedule_activity_management/static/description/assets/icons/banner-2.svg b/all_in_one_schedule_activity_management/static/description/assets/icons/banner-2.svg new file mode 100644 index 000000000..e606d97d9 --- /dev/null +++ b/all_in_one_schedule_activity_management/static/description/assets/icons/banner-2.svg @@ -0,0 +1,73 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/all_in_one_schedule_activity_management/static/description/assets/icons/banner-bg.png b/all_in_one_schedule_activity_management/static/description/assets/icons/banner-bg.png new file mode 100644 index 000000000..a8238d3c0 Binary files /dev/null and b/all_in_one_schedule_activity_management/static/description/assets/icons/banner-bg.png differ diff --git a/all_in_one_schedule_activity_management/static/description/assets/icons/banner-bg.svg b/all_in_one_schedule_activity_management/static/description/assets/icons/banner-bg.svg new file mode 100644 index 000000000..b1378103e --- /dev/null +++ b/all_in_one_schedule_activity_management/static/description/assets/icons/banner-bg.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/all_in_one_schedule_activity_management/static/description/assets/icons/banner-call.svg b/all_in_one_schedule_activity_management/static/description/assets/icons/banner-call.svg new file mode 100644 index 000000000..96c687e81 --- /dev/null +++ b/all_in_one_schedule_activity_management/static/description/assets/icons/banner-call.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/all_in_one_schedule_activity_management/static/description/assets/icons/banner-mail.svg b/all_in_one_schedule_activity_management/static/description/assets/icons/banner-mail.svg new file mode 100644 index 000000000..cbf0d158d --- /dev/null +++ b/all_in_one_schedule_activity_management/static/description/assets/icons/banner-mail.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/all_in_one_schedule_activity_management/static/description/assets/icons/banner-pattern.svg b/all_in_one_schedule_activity_management/static/description/assets/icons/banner-pattern.svg new file mode 100644 index 000000000..9c1c7e101 --- /dev/null +++ b/all_in_one_schedule_activity_management/static/description/assets/icons/banner-pattern.svg @@ -0,0 +1,343 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/all_in_one_schedule_activity_management/static/description/assets/icons/banner-promo.svg b/all_in_one_schedule_activity_management/static/description/assets/icons/banner-promo.svg new file mode 100644 index 000000000..d52791b11 --- /dev/null +++ b/all_in_one_schedule_activity_management/static/description/assets/icons/banner-promo.svg @@ -0,0 +1,147 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/all_in_one_schedule_activity_management/static/description/assets/icons/brand-pair.svg b/all_in_one_schedule_activity_management/static/description/assets/icons/brand-pair.svg new file mode 100644 index 000000000..d8db7fc1e --- /dev/null +++ b/all_in_one_schedule_activity_management/static/description/assets/icons/brand-pair.svg @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/all_in_one_schedule_activity_management/static/description/assets/icons/check.png b/all_in_one_schedule_activity_management/static/description/assets/icons/check.png new file mode 100644 index 000000000..c8e85f51d Binary files /dev/null and b/all_in_one_schedule_activity_management/static/description/assets/icons/check.png differ diff --git a/all_in_one_schedule_activity_management/static/description/assets/icons/chevron.png b/all_in_one_schedule_activity_management/static/description/assets/icons/chevron.png new file mode 100644 index 000000000..2089293d6 Binary files /dev/null and b/all_in_one_schedule_activity_management/static/description/assets/icons/chevron.png differ diff --git a/all_in_one_schedule_activity_management/static/description/assets/icons/close-icon.svg b/all_in_one_schedule_activity_management/static/description/assets/icons/close-icon.svg new file mode 100644 index 000000000..df8cce37a --- /dev/null +++ b/all_in_one_schedule_activity_management/static/description/assets/icons/close-icon.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/all_in_one_schedule_activity_management/static/description/assets/icons/cogs.png b/all_in_one_schedule_activity_management/static/description/assets/icons/cogs.png new file mode 100644 index 000000000..95d0bad62 Binary files /dev/null and b/all_in_one_schedule_activity_management/static/description/assets/icons/cogs.png differ diff --git a/all_in_one_schedule_activity_management/static/description/assets/icons/collabarate-icon.svg b/all_in_one_schedule_activity_management/static/description/assets/icons/collabarate-icon.svg new file mode 100644 index 000000000..dd4e10518 --- /dev/null +++ b/all_in_one_schedule_activity_management/static/description/assets/icons/collabarate-icon.svg @@ -0,0 +1,3 @@ + + + diff --git a/all_in_one_schedule_activity_management/static/description/assets/icons/consultation.png b/all_in_one_schedule_activity_management/static/description/assets/icons/consultation.png new file mode 100644 index 000000000..8319d4baa Binary files /dev/null and b/all_in_one_schedule_activity_management/static/description/assets/icons/consultation.png differ diff --git a/all_in_one_schedule_activity_management/static/description/assets/icons/cybro-logo.png b/all_in_one_schedule_activity_management/static/description/assets/icons/cybro-logo.png new file mode 100644 index 000000000..ff4b78220 Binary files /dev/null and b/all_in_one_schedule_activity_management/static/description/assets/icons/cybro-logo.png differ diff --git a/all_in_one_schedule_activity_management/static/description/assets/icons/down.svg b/all_in_one_schedule_activity_management/static/description/assets/icons/down.svg new file mode 100644 index 000000000..f21c36271 --- /dev/null +++ b/all_in_one_schedule_activity_management/static/description/assets/icons/down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/all_in_one_schedule_activity_management/static/description/assets/icons/ecom-black.png b/all_in_one_schedule_activity_management/static/description/assets/icons/ecom-black.png new file mode 100644 index 000000000..a9385ff13 Binary files /dev/null and b/all_in_one_schedule_activity_management/static/description/assets/icons/ecom-black.png differ diff --git a/all_in_one_schedule_activity_management/static/description/assets/icons/education-black.png b/all_in_one_schedule_activity_management/static/description/assets/icons/education-black.png new file mode 100644 index 000000000..3eb09b27b Binary files /dev/null and b/all_in_one_schedule_activity_management/static/description/assets/icons/education-black.png differ diff --git a/all_in_one_schedule_activity_management/static/description/assets/icons/faq.png b/all_in_one_schedule_activity_management/static/description/assets/icons/faq.png new file mode 100644 index 000000000..4250b5b81 Binary files /dev/null and b/all_in_one_schedule_activity_management/static/description/assets/icons/faq.png differ diff --git a/all_in_one_schedule_activity_management/static/description/assets/icons/feature-icon.svg b/all_in_one_schedule_activity_management/static/description/assets/icons/feature-icon.svg new file mode 100644 index 000000000..fa0ea6850 --- /dev/null +++ b/all_in_one_schedule_activity_management/static/description/assets/icons/feature-icon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/all_in_one_schedule_activity_management/static/description/assets/icons/feature.png b/all_in_one_schedule_activity_management/static/description/assets/icons/feature.png new file mode 100644 index 000000000..ac7a785c0 Binary files /dev/null and b/all_in_one_schedule_activity_management/static/description/assets/icons/feature.png differ diff --git a/all_in_one_schedule_activity_management/static/description/assets/icons/gear.svg b/all_in_one_schedule_activity_management/static/description/assets/icons/gear.svg new file mode 100644 index 000000000..0cc66b6ea --- /dev/null +++ b/all_in_one_schedule_activity_management/static/description/assets/icons/gear.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/all_in_one_schedule_activity_management/static/description/assets/icons/hero.gif b/all_in_one_schedule_activity_management/static/description/assets/icons/hero.gif new file mode 100644 index 000000000..b161c8ed3 Binary files /dev/null and b/all_in_one_schedule_activity_management/static/description/assets/icons/hero.gif differ diff --git a/all_in_one_schedule_activity_management/static/description/assets/icons/hire-odoo.svg b/all_in_one_schedule_activity_management/static/description/assets/icons/hire-odoo.svg new file mode 100644 index 000000000..e1ac089b0 --- /dev/null +++ b/all_in_one_schedule_activity_management/static/description/assets/icons/hire-odoo.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/all_in_one_schedule_activity_management/static/description/assets/icons/hotel-black.png b/all_in_one_schedule_activity_management/static/description/assets/icons/hotel-black.png new file mode 100644 index 000000000..130f613be Binary files /dev/null and b/all_in_one_schedule_activity_management/static/description/assets/icons/hotel-black.png differ diff --git a/all_in_one_schedule_activity_management/static/description/assets/icons/license.png b/all_in_one_schedule_activity_management/static/description/assets/icons/license.png new file mode 100644 index 000000000..a5869797e Binary files /dev/null and b/all_in_one_schedule_activity_management/static/description/assets/icons/license.png differ diff --git a/all_in_one_schedule_activity_management/static/description/assets/icons/life-ring-icon.svg b/all_in_one_schedule_activity_management/static/description/assets/icons/life-ring-icon.svg new file mode 100644 index 000000000..3ae6e1d89 --- /dev/null +++ b/all_in_one_schedule_activity_management/static/description/assets/icons/life-ring-icon.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/all_in_one_schedule_activity_management/static/description/assets/icons/lifebuoy.png b/all_in_one_schedule_activity_management/static/description/assets/icons/lifebuoy.png new file mode 100644 index 000000000..658d56ccc Binary files /dev/null and b/all_in_one_schedule_activity_management/static/description/assets/icons/lifebuoy.png differ diff --git a/all_in_one_schedule_activity_management/static/description/assets/icons/mail.svg b/all_in_one_schedule_activity_management/static/description/assets/icons/mail.svg new file mode 100644 index 000000000..1eedde695 --- /dev/null +++ b/all_in_one_schedule_activity_management/static/description/assets/icons/mail.svg @@ -0,0 +1,3 @@ + + + diff --git a/all_in_one_schedule_activity_management/static/description/assets/icons/manufacturing-black.png b/all_in_one_schedule_activity_management/static/description/assets/icons/manufacturing-black.png new file mode 100644 index 000000000..697eb0e9f Binary files /dev/null and b/all_in_one_schedule_activity_management/static/description/assets/icons/manufacturing-black.png differ diff --git a/all_in_one_schedule_activity_management/static/description/assets/icons/notes.png b/all_in_one_schedule_activity_management/static/description/assets/icons/notes.png new file mode 100644 index 000000000..ee5e95404 Binary files /dev/null and b/all_in_one_schedule_activity_management/static/description/assets/icons/notes.png differ diff --git a/all_in_one_schedule_activity_management/static/description/assets/icons/notification icon.svg b/all_in_one_schedule_activity_management/static/description/assets/icons/notification icon.svg new file mode 100644 index 000000000..053189973 --- /dev/null +++ b/all_in_one_schedule_activity_management/static/description/assets/icons/notification icon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/all_in_one_schedule_activity_management/static/description/assets/icons/odoo-consultancy.svg b/all_in_one_schedule_activity_management/static/description/assets/icons/odoo-consultancy.svg new file mode 100644 index 000000000..e05f65bde --- /dev/null +++ b/all_in_one_schedule_activity_management/static/description/assets/icons/odoo-consultancy.svg @@ -0,0 +1,4 @@ + + + + diff --git a/all_in_one_schedule_activity_management/static/description/assets/icons/odoo-licencing.svg b/all_in_one_schedule_activity_management/static/description/assets/icons/odoo-licencing.svg new file mode 100644 index 000000000..2606c88b0 --- /dev/null +++ b/all_in_one_schedule_activity_management/static/description/assets/icons/odoo-licencing.svg @@ -0,0 +1,3 @@ + + + diff --git a/all_in_one_schedule_activity_management/static/description/assets/icons/odoo-logo.png b/all_in_one_schedule_activity_management/static/description/assets/icons/odoo-logo.png new file mode 100644 index 000000000..0e4d0eb5a Binary files /dev/null and b/all_in_one_schedule_activity_management/static/description/assets/icons/odoo-logo.png differ diff --git a/all_in_one_schedule_activity_management/static/description/assets/icons/patter.svg b/all_in_one_schedule_activity_management/static/description/assets/icons/patter.svg new file mode 100644 index 000000000..25c9c0a8f --- /dev/null +++ b/all_in_one_schedule_activity_management/static/description/assets/icons/patter.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/all_in_one_schedule_activity_management/static/description/assets/icons/pattern1.png b/all_in_one_schedule_activity_management/static/description/assets/icons/pattern1.png new file mode 100644 index 000000000..09ab0fb2d Binary files /dev/null and b/all_in_one_schedule_activity_management/static/description/assets/icons/pattern1.png differ diff --git a/all_in_one_schedule_activity_management/static/description/assets/icons/pos-black.png b/all_in_one_schedule_activity_management/static/description/assets/icons/pos-black.png new file mode 100644 index 000000000..97c0f90c1 Binary files /dev/null and b/all_in_one_schedule_activity_management/static/description/assets/icons/pos-black.png differ diff --git a/all_in_one_schedule_activity_management/static/description/assets/icons/puzzle-piece-icon.svg b/all_in_one_schedule_activity_management/static/description/assets/icons/puzzle-piece-icon.svg new file mode 100644 index 000000000..3e9ad9373 --- /dev/null +++ b/all_in_one_schedule_activity_management/static/description/assets/icons/puzzle-piece-icon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/all_in_one_schedule_activity_management/static/description/assets/icons/puzzle.png b/all_in_one_schedule_activity_management/static/description/assets/icons/puzzle.png new file mode 100644 index 000000000..65cf854e7 Binary files /dev/null and b/all_in_one_schedule_activity_management/static/description/assets/icons/puzzle.png differ diff --git a/all_in_one_schedule_activity_management/static/description/assets/icons/replace-icon.svg b/all_in_one_schedule_activity_management/static/description/assets/icons/replace-icon.svg new file mode 100644 index 000000000..d0e3a7af1 --- /dev/null +++ b/all_in_one_schedule_activity_management/static/description/assets/icons/replace-icon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/all_in_one_schedule_activity_management/static/description/assets/icons/restaurant-black.png b/all_in_one_schedule_activity_management/static/description/assets/icons/restaurant-black.png new file mode 100644 index 000000000..4a35eb939 Binary files /dev/null and b/all_in_one_schedule_activity_management/static/description/assets/icons/restaurant-black.png differ diff --git a/all_in_one_schedule_activity_management/static/description/assets/icons/screenshot-main.png b/all_in_one_schedule_activity_management/static/description/assets/icons/screenshot-main.png new file mode 100644 index 000000000..575f8e676 Binary files /dev/null and b/all_in_one_schedule_activity_management/static/description/assets/icons/screenshot-main.png differ diff --git a/all_in_one_schedule_activity_management/static/description/assets/icons/screenshot.png b/all_in_one_schedule_activity_management/static/description/assets/icons/screenshot.png new file mode 100644 index 000000000..cef272529 Binary files /dev/null and b/all_in_one_schedule_activity_management/static/description/assets/icons/screenshot.png differ diff --git a/all_in_one_schedule_activity_management/static/description/assets/icons/service-black.png b/all_in_one_schedule_activity_management/static/description/assets/icons/service-black.png new file mode 100644 index 000000000..301ab51cb Binary files /dev/null and b/all_in_one_schedule_activity_management/static/description/assets/icons/service-black.png differ diff --git a/all_in_one_schedule_activity_management/static/description/assets/icons/skype-fill.svg b/all_in_one_schedule_activity_management/static/description/assets/icons/skype-fill.svg new file mode 100644 index 000000000..c17423639 --- /dev/null +++ b/all_in_one_schedule_activity_management/static/description/assets/icons/skype-fill.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/all_in_one_schedule_activity_management/static/description/assets/icons/skype.png b/all_in_one_schedule_activity_management/static/description/assets/icons/skype.png new file mode 100644 index 000000000..51b409fb3 Binary files /dev/null and b/all_in_one_schedule_activity_management/static/description/assets/icons/skype.png differ diff --git a/all_in_one_schedule_activity_management/static/description/assets/icons/skype.svg b/all_in_one_schedule_activity_management/static/description/assets/icons/skype.svg new file mode 100644 index 000000000..df3dad39b --- /dev/null +++ b/all_in_one_schedule_activity_management/static/description/assets/icons/skype.svg @@ -0,0 +1,3 @@ + + + diff --git a/all_in_one_schedule_activity_management/static/description/assets/icons/star-1.svg b/all_in_one_schedule_activity_management/static/description/assets/icons/star-1.svg new file mode 100644 index 000000000..7e55ab162 --- /dev/null +++ b/all_in_one_schedule_activity_management/static/description/assets/icons/star-1.svg @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/all_in_one_schedule_activity_management/static/description/assets/icons/star-2.svg b/all_in_one_schedule_activity_management/static/description/assets/icons/star-2.svg new file mode 100644 index 000000000..5ae9f507a --- /dev/null +++ b/all_in_one_schedule_activity_management/static/description/assets/icons/star-2.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/all_in_one_schedule_activity_management/static/description/assets/icons/support.png b/all_in_one_schedule_activity_management/static/description/assets/icons/support.png new file mode 100644 index 000000000..4f18b8b82 Binary files /dev/null and b/all_in_one_schedule_activity_management/static/description/assets/icons/support.png differ diff --git a/all_in_one_schedule_activity_management/static/description/assets/icons/test-1 - Copy.png b/all_in_one_schedule_activity_management/static/description/assets/icons/test-1 - Copy.png new file mode 100644 index 000000000..f6a902663 Binary files /dev/null and b/all_in_one_schedule_activity_management/static/description/assets/icons/test-1 - Copy.png differ diff --git a/all_in_one_schedule_activity_management/static/description/assets/icons/test-1.png b/all_in_one_schedule_activity_management/static/description/assets/icons/test-1.png new file mode 100644 index 000000000..0908add2b Binary files /dev/null and b/all_in_one_schedule_activity_management/static/description/assets/icons/test-1.png differ diff --git a/all_in_one_schedule_activity_management/static/description/assets/icons/test-2.png b/all_in_one_schedule_activity_management/static/description/assets/icons/test-2.png new file mode 100644 index 000000000..4671fe91e Binary files /dev/null and b/all_in_one_schedule_activity_management/static/description/assets/icons/test-2.png differ diff --git a/all_in_one_schedule_activity_management/static/description/assets/icons/trading-black.png b/all_in_one_schedule_activity_management/static/description/assets/icons/trading-black.png new file mode 100644 index 000000000..9398ba2f1 Binary files /dev/null and b/all_in_one_schedule_activity_management/static/description/assets/icons/trading-black.png differ diff --git a/all_in_one_schedule_activity_management/static/description/assets/icons/training.png b/all_in_one_schedule_activity_management/static/description/assets/icons/training.png new file mode 100644 index 000000000..884ca024d Binary files /dev/null and b/all_in_one_schedule_activity_management/static/description/assets/icons/training.png differ diff --git a/all_in_one_schedule_activity_management/static/description/assets/icons/translate.svg b/all_in_one_schedule_activity_management/static/description/assets/icons/translate.svg new file mode 100644 index 000000000..af9c8a1aa --- /dev/null +++ b/all_in_one_schedule_activity_management/static/description/assets/icons/translate.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/all_in_one_schedule_activity_management/static/description/assets/icons/update.png b/all_in_one_schedule_activity_management/static/description/assets/icons/update.png new file mode 100644 index 000000000..ecbc5a01a Binary files /dev/null and b/all_in_one_schedule_activity_management/static/description/assets/icons/update.png differ diff --git a/all_in_one_schedule_activity_management/static/description/assets/icons/user.png b/all_in_one_schedule_activity_management/static/description/assets/icons/user.png new file mode 100644 index 000000000..6ffb23d9f Binary files /dev/null and b/all_in_one_schedule_activity_management/static/description/assets/icons/user.png differ diff --git a/all_in_one_schedule_activity_management/static/description/assets/icons/video.png b/all_in_one_schedule_activity_management/static/description/assets/icons/video.png new file mode 100644 index 000000000..576705b17 Binary files /dev/null and b/all_in_one_schedule_activity_management/static/description/assets/icons/video.png differ diff --git a/all_in_one_schedule_activity_management/static/description/assets/icons/whatsapp.png b/all_in_one_schedule_activity_management/static/description/assets/icons/whatsapp.png new file mode 100644 index 000000000..d513a5356 Binary files /dev/null and b/all_in_one_schedule_activity_management/static/description/assets/icons/whatsapp.png differ diff --git a/all_in_one_schedule_activity_management/static/description/assets/icons/wrench-icon.svg b/all_in_one_schedule_activity_management/static/description/assets/icons/wrench-icon.svg new file mode 100644 index 000000000..174b5a465 --- /dev/null +++ b/all_in_one_schedule_activity_management/static/description/assets/icons/wrench-icon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/all_in_one_schedule_activity_management/static/description/assets/icons/wrench.png b/all_in_one_schedule_activity_management/static/description/assets/icons/wrench.png new file mode 100644 index 000000000..6c04dea0f Binary files /dev/null and b/all_in_one_schedule_activity_management/static/description/assets/icons/wrench.png differ diff --git a/all_in_one_schedule_activity_management/static/description/assets/modules/1.jpg b/all_in_one_schedule_activity_management/static/description/assets/modules/1.jpg new file mode 100644 index 000000000..3cb15fe01 Binary files /dev/null and b/all_in_one_schedule_activity_management/static/description/assets/modules/1.jpg differ diff --git a/all_in_one_schedule_activity_management/static/description/assets/modules/2.jpg b/all_in_one_schedule_activity_management/static/description/assets/modules/2.jpg new file mode 100644 index 000000000..662cadcc3 Binary files /dev/null and b/all_in_one_schedule_activity_management/static/description/assets/modules/2.jpg differ diff --git a/all_in_one_schedule_activity_management/static/description/assets/modules/3.jpg b/all_in_one_schedule_activity_management/static/description/assets/modules/3.jpg new file mode 100644 index 000000000..717a00443 Binary files /dev/null and b/all_in_one_schedule_activity_management/static/description/assets/modules/3.jpg differ diff --git a/all_in_one_schedule_activity_management/static/description/assets/modules/4.png b/all_in_one_schedule_activity_management/static/description/assets/modules/4.png new file mode 100644 index 000000000..00ebf54ad Binary files /dev/null and b/all_in_one_schedule_activity_management/static/description/assets/modules/4.png differ diff --git a/all_in_one_schedule_activity_management/static/description/assets/modules/5.jpg b/all_in_one_schedule_activity_management/static/description/assets/modules/5.jpg new file mode 100644 index 000000000..7c67e2eec Binary files /dev/null and b/all_in_one_schedule_activity_management/static/description/assets/modules/5.jpg differ diff --git a/all_in_one_schedule_activity_management/static/description/assets/modules/6.gif b/all_in_one_schedule_activity_management/static/description/assets/modules/6.gif new file mode 100644 index 000000000..a35ece8df Binary files /dev/null and b/all_in_one_schedule_activity_management/static/description/assets/modules/6.gif differ diff --git a/all_in_one_schedule_activity_management/static/description/assets/screenshots/ss1.png b/all_in_one_schedule_activity_management/static/description/assets/screenshots/ss1.png new file mode 100644 index 000000000..55d5e48a6 Binary files /dev/null and b/all_in_one_schedule_activity_management/static/description/assets/screenshots/ss1.png differ diff --git a/all_in_one_schedule_activity_management/static/description/assets/screenshots/ss10.png b/all_in_one_schedule_activity_management/static/description/assets/screenshots/ss10.png new file mode 100644 index 000000000..2990c137f Binary files /dev/null and b/all_in_one_schedule_activity_management/static/description/assets/screenshots/ss10.png differ diff --git a/all_in_one_schedule_activity_management/static/description/assets/screenshots/ss11.png b/all_in_one_schedule_activity_management/static/description/assets/screenshots/ss11.png new file mode 100644 index 000000000..c28635405 Binary files /dev/null and b/all_in_one_schedule_activity_management/static/description/assets/screenshots/ss11.png differ diff --git a/all_in_one_schedule_activity_management/static/description/assets/screenshots/ss12.png b/all_in_one_schedule_activity_management/static/description/assets/screenshots/ss12.png new file mode 100644 index 000000000..8af8009aa Binary files /dev/null and b/all_in_one_schedule_activity_management/static/description/assets/screenshots/ss12.png differ diff --git a/all_in_one_schedule_activity_management/static/description/assets/screenshots/ss13.png b/all_in_one_schedule_activity_management/static/description/assets/screenshots/ss13.png new file mode 100644 index 000000000..6a76e555b Binary files /dev/null and b/all_in_one_schedule_activity_management/static/description/assets/screenshots/ss13.png differ diff --git a/all_in_one_schedule_activity_management/static/description/assets/screenshots/ss14.png b/all_in_one_schedule_activity_management/static/description/assets/screenshots/ss14.png new file mode 100644 index 000000000..62623e782 Binary files /dev/null and b/all_in_one_schedule_activity_management/static/description/assets/screenshots/ss14.png differ diff --git a/all_in_one_schedule_activity_management/static/description/assets/screenshots/ss15.png b/all_in_one_schedule_activity_management/static/description/assets/screenshots/ss15.png new file mode 100644 index 000000000..f32f48b9f Binary files /dev/null and b/all_in_one_schedule_activity_management/static/description/assets/screenshots/ss15.png differ diff --git a/all_in_one_schedule_activity_management/static/description/assets/screenshots/ss16.png b/all_in_one_schedule_activity_management/static/description/assets/screenshots/ss16.png new file mode 100644 index 000000000..494a64b07 Binary files /dev/null and b/all_in_one_schedule_activity_management/static/description/assets/screenshots/ss16.png differ diff --git a/all_in_one_schedule_activity_management/static/description/assets/screenshots/ss17.png b/all_in_one_schedule_activity_management/static/description/assets/screenshots/ss17.png new file mode 100644 index 000000000..4f7c38ec3 Binary files /dev/null and b/all_in_one_schedule_activity_management/static/description/assets/screenshots/ss17.png differ diff --git a/all_in_one_schedule_activity_management/static/description/assets/screenshots/ss18.png b/all_in_one_schedule_activity_management/static/description/assets/screenshots/ss18.png new file mode 100644 index 000000000..a6c0b3e56 Binary files /dev/null and b/all_in_one_schedule_activity_management/static/description/assets/screenshots/ss18.png differ diff --git a/all_in_one_schedule_activity_management/static/description/assets/screenshots/ss19.png b/all_in_one_schedule_activity_management/static/description/assets/screenshots/ss19.png new file mode 100644 index 000000000..dc0ad55ef Binary files /dev/null and b/all_in_one_schedule_activity_management/static/description/assets/screenshots/ss19.png differ diff --git a/all_in_one_schedule_activity_management/static/description/assets/screenshots/ss2.png b/all_in_one_schedule_activity_management/static/description/assets/screenshots/ss2.png new file mode 100644 index 000000000..562101872 Binary files /dev/null and b/all_in_one_schedule_activity_management/static/description/assets/screenshots/ss2.png differ diff --git a/all_in_one_schedule_activity_management/static/description/assets/screenshots/ss20.png b/all_in_one_schedule_activity_management/static/description/assets/screenshots/ss20.png new file mode 100644 index 000000000..c452c7e28 Binary files /dev/null and b/all_in_one_schedule_activity_management/static/description/assets/screenshots/ss20.png differ diff --git a/all_in_one_schedule_activity_management/static/description/assets/screenshots/ss21.png b/all_in_one_schedule_activity_management/static/description/assets/screenshots/ss21.png new file mode 100644 index 000000000..b7293659d Binary files /dev/null and b/all_in_one_schedule_activity_management/static/description/assets/screenshots/ss21.png differ diff --git a/all_in_one_schedule_activity_management/static/description/assets/screenshots/ss22.png b/all_in_one_schedule_activity_management/static/description/assets/screenshots/ss22.png new file mode 100644 index 000000000..739f6f136 Binary files /dev/null and b/all_in_one_schedule_activity_management/static/description/assets/screenshots/ss22.png differ diff --git a/all_in_one_schedule_activity_management/static/description/assets/screenshots/ss23.png b/all_in_one_schedule_activity_management/static/description/assets/screenshots/ss23.png new file mode 100644 index 000000000..95815f8d7 Binary files /dev/null and b/all_in_one_schedule_activity_management/static/description/assets/screenshots/ss23.png differ diff --git a/all_in_one_schedule_activity_management/static/description/assets/screenshots/ss3.png b/all_in_one_schedule_activity_management/static/description/assets/screenshots/ss3.png new file mode 100644 index 000000000..c95e891f1 Binary files /dev/null and b/all_in_one_schedule_activity_management/static/description/assets/screenshots/ss3.png differ diff --git a/all_in_one_schedule_activity_management/static/description/assets/screenshots/ss4.png b/all_in_one_schedule_activity_management/static/description/assets/screenshots/ss4.png new file mode 100644 index 000000000..a4d81ace7 Binary files /dev/null and b/all_in_one_schedule_activity_management/static/description/assets/screenshots/ss4.png differ diff --git a/all_in_one_schedule_activity_management/static/description/assets/screenshots/ss5.png b/all_in_one_schedule_activity_management/static/description/assets/screenshots/ss5.png new file mode 100644 index 000000000..d8ba6bc10 Binary files /dev/null and b/all_in_one_schedule_activity_management/static/description/assets/screenshots/ss5.png differ diff --git a/all_in_one_schedule_activity_management/static/description/assets/screenshots/ss6.png b/all_in_one_schedule_activity_management/static/description/assets/screenshots/ss6.png new file mode 100644 index 000000000..c0cea8793 Binary files /dev/null and b/all_in_one_schedule_activity_management/static/description/assets/screenshots/ss6.png differ diff --git a/all_in_one_schedule_activity_management/static/description/assets/screenshots/ss7.png b/all_in_one_schedule_activity_management/static/description/assets/screenshots/ss7.png new file mode 100644 index 000000000..6e0cf2727 Binary files /dev/null and b/all_in_one_schedule_activity_management/static/description/assets/screenshots/ss7.png differ diff --git a/all_in_one_schedule_activity_management/static/description/assets/screenshots/ss8.png b/all_in_one_schedule_activity_management/static/description/assets/screenshots/ss8.png new file mode 100644 index 000000000..91bc816d2 Binary files /dev/null and b/all_in_one_schedule_activity_management/static/description/assets/screenshots/ss8.png differ diff --git a/all_in_one_schedule_activity_management/static/description/assets/screenshots/ss9.png b/all_in_one_schedule_activity_management/static/description/assets/screenshots/ss9.png new file mode 100644 index 000000000..0b8593dbd Binary files /dev/null and b/all_in_one_schedule_activity_management/static/description/assets/screenshots/ss9.png differ diff --git a/all_in_one_schedule_activity_management/static/description/assets/y18.jpg b/all_in_one_schedule_activity_management/static/description/assets/y18.jpg new file mode 100644 index 000000000..eea1714f2 Binary files /dev/null and b/all_in_one_schedule_activity_management/static/description/assets/y18.jpg differ diff --git a/all_in_one_schedule_activity_management/static/description/banner.jpg b/all_in_one_schedule_activity_management/static/description/banner.jpg new file mode 100644 index 000000000..23a54fe6b Binary files /dev/null and b/all_in_one_schedule_activity_management/static/description/banner.jpg differ diff --git a/all_in_one_schedule_activity_management/static/description/icon.png b/all_in_one_schedule_activity_management/static/description/icon.png new file mode 100644 index 000000000..95a1d425f Binary files /dev/null and b/all_in_one_schedule_activity_management/static/description/icon.png differ diff --git a/all_in_one_schedule_activity_management/static/description/index.html b/all_in_one_schedule_activity_management/static/description/index.html new file mode 100644 index 000000000..0ed31af40 --- /dev/null +++ b/all_in_one_schedule_activity_management/static/description/index.html @@ -0,0 +1,1359 @@ + + + + + + All in one schedule Activity Management + + + + + + + + + + +
+
+ + + +
+
+ Community +
+
+ Enterprise +
+ + + + +
+
+ +
+
+
+
+

+ Manage all the scheduled activities. +

+

All in one schedule Activity Management +

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

Key + Highlights

+
+
+
+
+ +
+
+ Schedule Management User +
+

+ Set Schedule management users .

+
+
+
+
+
+ +
+
+ All in one schedule Activity Management +
+

+ This module helps to handle all the activities. +

+
+
+
+
+ +
+
+
+ All in one schedule Activity Management +

+ Are you ready to make your business more + organized? +
Improve now! +

+ +
+
+ +
+
+
+ + + + +
+
+ +
+
+
+
+ acc_bg +
+ +
+
+
+
+

+ Set + + Schedule Management User. +

+
+
+

+ "In the settings menu, under 'User,' you'll find the option 'Schedule Management User.' Enabling it grants the user the role of schedule manager, allowing them to view and manage all activities". +

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

+ If the user is a schedule manager, they can view and access the activity management module. +

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

+ On clicking the button "Activities", a popup appears where we can create and schedule activities. +

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

+ Created activities visible on the corresponding record. +

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

+ all activity + card. + +

+
+
+

+ "Activity dashboard displays count of the total activities.". +

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

+ All activity list.While clicking on the dashboard all activity card it will redirect to all activity window. +

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

+ Planned Activity + card. + +

+
+
+

+ Activity dashboard displays count of the planned activities. +

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

+ While clicking on the dashboard planned activity card it will redirect to planned activity window. +

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

+ Planned activity and their details. +

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

+ Menu for + + All Activity +

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

+ Menu for + + My Activity +

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

+ Menu for + + Activity Tags. +

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

+ Menu for + + Activity Reporting +

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

+ Menu for + + Activity History +

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

+ Filter for + + Late activities +

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

+ Filter for + + Today activities +

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

+ Filter for + + Future activities +

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

+ Filter for + + My activities +

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

+ Filter for next 7 days, next 30 days, next 365 days, last 7 days, last 30 days and last 365 days. +

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

+ We can cancel the activity. +

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

+ Notify on + + Due date +

+
+
+

+ From the settings enable Notify on due date , once the due date is reached, the customer will receive an email. +

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

+ Notify on + + Expiry date. +

+
+
+

+ From the settings enable Notify on expiry, once the due date is expired, the customer will receive an email. +

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

+ Manage all the activities.

+
+
+
+
+
+
+
+ +
+

+ Available in Odoo 18.0 Community and Enterprise. +

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

+ In the settings menu, under the 'User' section, you will find the option 'Schedule Management User.' Enabling this option grants the user the role of schedule manager, allowing them to view and manage all activities across the system. +

+
+
+ +
+ +
+

+ Yes, you can use the Late Activities filter to view all activities that are past their due date. This helps in identifying tasks that require immediate attention. +

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

+ Latest Release 18.0.1.0.0 +

+ + 6th May, 2025 + +
+
+
+
+
+ Add +
+
+
+
    +
  • + Initial Commit +
  • + +
+
+
+
+
+
+
+
+
+
+ + +
+

+ Related Products +

+ +
+ + + +
+

+ Our Services

+ +
+ +
+
+ .... +
+
+ +
+ + +
+
+ + + + + + diff --git a/all_in_one_schedule_activity_management/static/src/css/dashboard.css b/all_in_one_schedule_activity_management/static/src/css/dashboard.css new file mode 100644 index 000000000..335e5831e --- /dev/null +++ b/all_in_one_schedule_activity_management/static/src/css/dashboard.css @@ -0,0 +1,34 @@ +p, span, a, ul, li, button { + font-size: inherit; + font-weight: inherit; + line-height: inherit; +} + +strong { + font-weight: 600; +} + +h1, h2, h3, h4, h5, h6 { + line-height: 1.5em; + font-weight: 300; +} + +strong { + font-weight: 400; +} + +.sub_title { + font-size: 14px; +} + +.sub_title div span { + font-weight: 600; +} + +.chart #canvas_graph { + height: 400px !important; +} + +.highcharts-background { + fill: none; +} \ No newline at end of file diff --git a/all_in_one_schedule_activity_management/static/src/css/material-gauge.css b/all_in_one_schedule_activity_management/static/src/css/material-gauge.css new file mode 100644 index 000000000..7f553df9a --- /dev/null +++ b/all_in_one_schedule_activity_management/static/src/css/material-gauge.css @@ -0,0 +1,194 @@ +/* + * #### Gauge Component + * + * The standard markup for the component is: + * + *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ * No + * + * Yes + *
+ *
+ */ + +/* + * First define all of the relevant rules that aren't dependent + * on the size of the gauge. We want to collect the size-depenent + * rules in one place to make it easier to adjust the size. + */ + +.gauge { + position: relative; +} + +.gauge__container { + margin: 0; + padding: 0; + position: absolute; + left: 50%; + overflow: hidden; + text-align: center; + -webkit-transform: translateX(-50%); + -moz-transform: translateX(-50%); + -ms-transform: translateX(-50%); + -o-transform: translateX(-50%); + transform: translateX(-50%); +} + +.gauge__background { + z-index: 0; + position: absolute; + background-color: #d8f0de; + top: 0; + border-radius: 300px 300px 0 0; +} + +.gauge__data { + z-index: 1; + position: absolute; + background-color: #00c29d; + margin-left: auto; + margin-right: auto; + border-radius: 300px 300px 0 0; + -webkit-transform-origin: center bottom; + -moz-transform-origin: center bottom; + -ms-transform-origin: center bottom; + -o-transform-origin: center bottom; + transform-origin: center bottom; +} + +.gauge__center { + z-index: 2; + position: absolute; + background-color: #f9f9f9; + margin-right: auto; + border-radius: 300px 300px 0 0; +} + +.gauge__marker { + z-index: 3; + background-color: #fff; + position: absolute; + width: 1px; +} + +.gauge__needle { + z-index: 4; + background-color: #21242c; + height: 3px; + position: absolute; + -webkit-transform-origin: left center; + -moz-transform-origin: left center; + -ms-transform-origin: left center; + -o-transform-origin: left center; + transform-origin: left center; +} + +.gauge__labels { + display: table; + margin: 0 auto; + position: relative; +} + +.gauge__label--low { + display: table-cell; + text-align: center; + color: #00c29d; +} + +.gauge__label--spacer { + display: table-cell; +} + +.gauge__label--high { + display: table-cell; + text-align: center; + color: #979f99; +} + +/* + * Now define the rules that depend on the size of + * the gauge. We start with sizing for a small mobile + * device. + */ + +.gauge { height: calc(120px + 3em); } +.gauge__container { width: 240px; height: 120px; } +.gauge__marker { height: 120px; left: 119.5px; } +.gauge__background { width: 240px; height: 120px; } +.gauge__center { width: 144px; height: 72px; top: 48px; margin-left: 48px; } +.gauge__data { width: 240px; height: 120px; } +.gauge__needle { left: 120px; top: 117px; width: 120px; } +.gauge__labels { top: 120px; width: 240px; } +.gauge__label--low { width: 48px; } +.gauge__label--spacer { width: 144px; } +.gauge__label--high { width: 48px; } + +/* + * Increase the gauge size slightly on larger viewports. + */ + + @media only screen and (min-width: 400px) { + .gauge { height: calc(150px + 3em); } + .gauge__container { width: 300px; height: 150px; } + .gauge__marker { height: 150px; left: 149.5px; } + .gauge__background { width: 300px; height: 150px; } + .gauge__center { width: 180px; height: 90px; top: 60px; margin-left: 60px; } + .gauge__data { width: 300px; height: 150px; } + .gauge__needle { left: 150px; top: 147px; width: 150px; } + .gauge__labels { top: 160px; width: 300px; font-size: 20px;} + .gauge__label--low { width: 60px; } + .gauge__label--spacer { width: 180px; } + .gauge__label--high { width: 60px; } +} + +/* + * As an option, the `gauge--liveupdate` class can be added + * to the main gauge element. When this class is present, + * we add a transition that animates any changes to the gauge + * value. Currently, the app does not use this option because + * all the inputs that can change gauge values are present + * on tab panels that are different from the gauge itself. + * Therefore, users won't be able to see any gauge changes + * when they make input changes. The code is available, though, + * should this change. + */ + +.gauge--liveupdate .gauge__data, +.gauge--liveupdate .gauge__needle { + -webkit-transition: all 1s ease-in-out; + -moz-transition: all 1s ease-in-out; + -ms-transition: all 1s ease-in-out; + -o-transition: all 1s ease-in-out; + transition: all 1s ease-in-out; +} + +/* + * For a given gauge value, x, ranging from 0.0 to 1.0, set + * the `transform: rotate()` property according to the + * following equation: `-0.5 + 0.5x turns` The default + * properties below represent an x value of 0. + */ + +.gauge__data { + -webkit-transform: rotate(-.50turn); + -moz-transform: rotate(-.50turn); + -ms-transform: rotate(-.50turn); + -o-transform: rotate(-.50turn); + transform: rotate(-.50turn); +} +.gauge__needle { + -webkit-transform: rotate(-.50turn); + -moz-transform: rotate(-.50turn); + -ms-transform: rotate(-.50turn); + -o-transform: rotate(-.50turn); + transform: rotate(-.50turn); +} diff --git a/all_in_one_schedule_activity_management/static/src/css/style.scss b/all_in_one_schedule_activity_management/static/src/css/style.scss new file mode 100644 index 000000000..d861d3e66 --- /dev/null +++ b/all_in_one_schedule_activity_management/static/src/css/style.scss @@ -0,0 +1,64 @@ +.o_action_manager { + direction: ltr; + webkit-box-flex: 1; + webkit-flex: 1 1 auto; + flex: 1 1 auto; + overflow: scroll !important; +} +.activity-dashboard-card { + border-radius: 0.3rem; + display: flex; + justify-content: center; + padding: 1.7rem 1.5rem 1.5rem 1.5rem; + margin: 1rem auto; + height: 100px; +} +.activity-dashboard-card__icon-container { + height: 50px; + width: 50px; + border-radius: 50%; +} +.my_activity { + background-color: #229db9; + border-radius: 10px; + font-size: 35px; +} +.all_activity{ + background: #88dfdf; + border-radius: 10px; + font-size: 35px; +} +.planned_activity { + background-color: #e8c5ac; + border-radius: 10px; + font-size: 35px; +} +.completed_activity{ + background: #a7a1f4;; + border-radius: 10px; + font-size: 35px; +} + +.today_activity{ + background: #f3bdf4; + border-radius: 10px; + font-size: 35px; +} +.overdue_activity { + background-color: #a2d2fb; + border-radius: 10px; + font-size: 35px; +} +.cancelled_activity{ + background: #beeecc; + border-radius: 10px; + font-size: 35px; +} +.activity_type { + background-color: #ecb9b9;; + border-radius: 10px; + font-size: 35px; +} +.dashboard_main_section { + margin: 20px; +} \ No newline at end of file diff --git a/all_in_one_schedule_activity_management/static/src/images/web_icon.jpg b/all_in_one_schedule_activity_management/static/src/images/web_icon.jpg new file mode 100644 index 000000000..da46edae5 Binary files /dev/null and b/all_in_one_schedule_activity_management/static/src/images/web_icon.jpg differ diff --git a/all_in_one_schedule_activity_management/static/src/js/activity_dashboard.js b/all_in_one_schedule_activity_management/static/src/js/activity_dashboard.js new file mode 100644 index 000000000..6a6315af6 --- /dev/null +++ b/all_in_one_schedule_activity_management/static/src/js/activity_dashboard.js @@ -0,0 +1,164 @@ +/** @odoo-module **/ +/** + * @module all_in_one_schedule_activity_management.activity_dashboard + * @description This module handles the scheduled activity management. + */ +import { Component, onWillStart} from "@odoo/owl"; +import { session } from "@web/session"; +import { registry } from "@web/core/registry"; +import { useService } from "@web/core/utils/hooks"; +import { rpc } from "@web/core/network/rpc"; + +class ActivityDashboard extends Component { + static template = 'all_in_one_schedule_activity_management.ActivityDashboard'; + setup() { + super.setup(); + this.orm = useService("orm"); + this.action = useService("action"); + this.manage_activities = {} + this.dashboards_templates = ['LoginUser', 'ManageActivity', 'ActivityTable']; + onWillStart(this.willStart); + } + async willStart() { + this.title = 'Dashboard'; + await this.render_dashboards(); + } + async render_dashboards() { + this.manage_activities = await rpc('/web/dataset/call_kw', { + model: 'mail.activity', + method : 'get_activity_count', + args: [[]], + kwargs: {}, + }); + this.manage_activities.done_activity = await this.orm.searchRead("mail.activity", [["state", "=", 'done'], ["active", "=", false]],); + this.manage_activities.planned_activity = await this.orm.searchRead("mail.activity",[["state", "=", 'planned']],) + this.manage_activities.today_activity = await this.orm.searchRead("mail.activity", [["state", "=", 'today']],) + this.manage_activities.overdue_activity = await this.orm.searchRead("mail.activity",[["state", "=", 'overdue']],) + } + + async click_view(lineId) { + this.action.doAction({ + type: 'ir.actions.act_window', + name: 'All Activity', + res_model: 'mail.activity', + domain: ['|',['active', '=', false], ['active', '=', true],['id', '=', lineId]], + views: [[false, 'list'], [false, 'form']], + view_mode: 'list,form', + target: 'current' + }); + } + + async click_origin_view(e) { + const id_ = e.target.value; + const result = await rpc('/web/dataset/call_kw', { + model: 'mail.activity', + method : 'get_activity', + args: [[],parseInt(id_)], + kwargs: {}, + }); + this.env.services.action.doAction({ + type: 'ir.actions.act_window', + name: 'Activity Origin', + res_model: result.model, + domain: [['id', '=', result.res_id]], + views: [[false, 'list'], [false, 'form']], + view_mode: 'list,form', + target: 'current' + }); + } + + all_activity(e) { + e.stopPropagation(); + e.preventDefault(); + this.env.services.action.doAction({ + type: 'ir.actions.act_window', + name: 'All Activity', + res_model: 'mail.activity', + domain: [], + views: [[false, 'list'], [false, 'form']], + view_mode: 'list', + target: 'current' + }); + } + + planned_activity(e) { + e.stopPropagation(); + e.preventDefault(); + this.env.services.action.doAction({ + type: 'ir.actions.act_window', + name: 'Planned Activity', + res_model: 'mail.activity', + domain: [['state', '=', 'planned']], + views: [[false, 'list'], [false, 'form']], + view_mode: 'list', + target: 'current' + }); + } + + completed_activity(e) { + e.stopPropagation(); + e.preventDefault(); + this.env.services.action.doAction({ + type: 'ir.actions.act_window', + name: 'Completed Activity', + res_model: 'mail.activity', + domain: [['state', '=', 'done'], ['active', '=', false]], + views: [[false, 'list'], [false, 'form']], + view_mode: 'list', + target: 'current' + }); + } + today_activity(e) { + e.stopPropagation(); + e.preventDefault(); + this.env.services.action.doAction({ + type: 'ir.actions.act_window', + name: "Today's Activities", + res_model: 'mail.activity', + domain: [['state', '=', 'today']], + views: [[false, 'list'], [false, 'form']], + view_mode: 'list', + target: 'current' + }); + } + overdue_activity(e) { + e.stopPropagation(); + e.preventDefault(); + this.env.services.action.doAction({ + type: 'ir.actions.act_window', + name: 'Overdue Activity', + res_model: 'mail.activity', + domain: [['state', '=', 'overdue']], + views: [[false, 'list'], [false, 'form']], + view_mode: 'list', + target: 'current' + }); + } + cancelled_activity(e) { + e.stopPropagation(); + e.preventDefault(); + this.env.services.action.doAction({ + type: 'ir.actions.act_window', + name: "Today's Activity", + res_model: 'mail.activity', + domain: [['state', '=', 'cancel']], + views: [[false, 'list'], [false, 'form']], + view_mode: 'list', + target: 'current' + }); + } + activity_type(e) { + e.stopPropagation(); + e.preventDefault(); + this.env.services.action.doAction({ + type: 'ir.actions.act_window', + name: "Today's Activity", + res_model: 'mail.activity.type', + views: [[false, 'list'], [false, 'form']], + view_mode: 'list', + target: 'current' + }); + } +} +registry.category("actions").add("activity_dashboard", ActivityDashboard); +export default ActivityDashboard; diff --git a/all_in_one_schedule_activity_management/static/src/xml/activity_dashboard_view.xml b/all_in_one_schedule_activity_management/static/src/xml/activity_dashboard_view.xml new file mode 100644 index 000000000..ae737273f --- /dev/null +++ b/all_in_one_schedule_activity_management/static/src/xml/activity_dashboard_view.xml @@ -0,0 +1,420 @@ + + + + +
+
+

+ Activity Dashboard +

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

+

All Activity

+

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

+ +
+
+
+
+ +

+

Planned Activity

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

+ +
+
+
+
+ +

+

+

Completed Activities

+

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

+ +
+
+
+
+ +

+

+

Today's Activities

+

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

+ +
+
+
+
+ +

+

+

Overdue Activities

+

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

+ +
+
+
+
+ +

+

+

Cancelled Activities

+

+
+
+
+ +
+
+
+ +
+
+

+

Activity Type

+

+
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Planned Activities
No Data Available
NameActivity TypeAssigned toDead Line DateViewOrigin
+ + + + + + + + + + + +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Today's Activities
No Data Available
NameActivity TypeAssigned toDead Line DateViewOrigin
+ + + + + + + + + + + +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Completed Activities
No Data Available
NameActivity TypeAssigned toDead Line DateView
+ + + + + + + + + +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Overdue Activities
No Data Available
NameActivity TypeAssigned toDead Line DateView
+ + + + + + + + + +
+
+
+
+ diff --git a/all_in_one_schedule_activity_management/views/activity_dashbord_views.xml b/all_in_one_schedule_activity_management/views/activity_dashbord_views.xml new file mode 100644 index 000000000..aea9ca2bf --- /dev/null +++ b/all_in_one_schedule_activity_management/views/activity_dashbord_views.xml @@ -0,0 +1,24 @@ + + + + + Cancel + + + code + + if records: + action = records.action_activity_cancel() + + + + Mark As Done + + + code + + if records: + action = records.action_activity_done() + + + diff --git a/all_in_one_schedule_activity_management/views/activity_history_views.xml b/all_in_one_schedule_activity_management/views/activity_history_views.xml new file mode 100644 index 000000000..1bd41c7d1 --- /dev/null +++ b/all_in_one_schedule_activity_management/views/activity_history_views.xml @@ -0,0 +1,11 @@ + + + + + Activity History + ir.actions.act_window + mail.activity + list,form + [('date_deadline','<',context_today().strftime('%Y-%m-%d'))] + + diff --git a/all_in_one_schedule_activity_management/views/activity_tag_views.xml b/all_in_one_schedule_activity_management/views/activity_tag_views.xml new file mode 100644 index 000000000..6e2c1c7e7 --- /dev/null +++ b/all_in_one_schedule_activity_management/views/activity_tag_views.xml @@ -0,0 +1,43 @@ + + + + + Tags + ir.actions.act_window + activity.tag + list,form + + + activity.tag.view.form + activity.tag + +
+ +
+
+ + + + + +
+
+
+
+ + + activity.tag.view.tree + activity.tag + + + + + + + +
+ diff --git a/all_in_one_schedule_activity_management/views/mail_activity_views.xml b/all_in_one_schedule_activity_management/views/mail_activity_views.xml new file mode 100644 index 000000000..fa0bdd286 --- /dev/null +++ b/all_in_one_schedule_activity_management/views/mail_activity_views.xml @@ -0,0 +1,198 @@ + + + + + mail.activity.view.form + mail.activity + +
+
+
+ + + + + + + + + + + + +
+ Recommended Activities + +
+
+ + + + + + + + + + + + + +
+
+
+
+ + + mail.activity.view.tree + mail.activity + + + + + + + + + + + + + + mail.activity.view.search + mail.activity + + + + + + + + + + + + + + + + + + + mail.activity.view.kanban + mail.activity + + + + + + + + +
+
+ Avatar +
+
+ + + +
+ +
+
+ +
+
+
+
+
+
+
+
+ + + mail.activity.view.pivot + mail.activity + + + + + + + + + mail.activity.view.graph + mail.activity + + + + + + + + + + All Activity + ir.actions.act_window + mail.activity + list,form,calendar,kanban,pivot,graph + +
diff --git a/all_in_one_schedule_activity_management/views/menu_views.xml b/all_in_one_schedule_activity_management/views/menu_views.xml new file mode 100644 index 000000000..3eb19d7bc --- /dev/null +++ b/all_in_one_schedule_activity_management/views/menu_views.xml @@ -0,0 +1,46 @@ + + + + + Dashboard + activity_dashboard + current + + + + + + + + + + + diff --git a/all_in_one_schedule_activity_management/views/my_activity_views.xml b/all_in_one_schedule_activity_management/views/my_activity_views.xml new file mode 100644 index 000000000..30126fad2 --- /dev/null +++ b/all_in_one_schedule_activity_management/views/my_activity_views.xml @@ -0,0 +1,13 @@ + + + + + + My Activity + ir.actions.act_window + mail.activity + list,form,calendar,kanban,pivot,graph + [('user_id','=',uid)] + + diff --git a/all_in_one_schedule_activity_management/views/reporting_activity_views.xml b/all_in_one_schedule_activity_management/views/reporting_activity_views.xml new file mode 100644 index 000000000..984b66ea2 --- /dev/null +++ b/all_in_one_schedule_activity_management/views/reporting_activity_views.xml @@ -0,0 +1,31 @@ + + + + + Activities + ir.actions.act_window + mail.activity + graph,pivot + + + mail.activity.pivot.report + mail.activity + + + + + + + + + mail.activity.graph.report + mail.activity + + + + + + + + diff --git a/all_in_one_schedule_activity_management/views/res_config_setting_views.xml b/all_in_one_schedule_activity_management/views/res_config_setting_views.xml new file mode 100644 index 000000000..f671deb9f --- /dev/null +++ b/all_in_one_schedule_activity_management/views/res_config_setting_views.xml @@ -0,0 +1,37 @@ + + + + + res.config.settings.view.form.inherited.all.in.one.schedule.activity.management + res.config.settings + + + + +

Due Activity Notification

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