diff --git a/legal_case_management/README.rst b/legal_case_management/README.rst new file mode 100644 index 000000000..404ebce4c --- /dev/null +++ b/legal_case_management/README.rst @@ -0,0 +1,53 @@ +.. 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 + +Legal Case Management +===================== +This module helps to manage all process of a legal case management firm. +In this way we can register a case and add their evidence, trial and payment also. +Assign the lawyers based on the wages and per case + +Configuration +============= +The user should be added to the security group: Admin(Settings/Users/Other/Case Management) inorder to get access to the new menu. + +Company +------- +* `Cybrosys Techno Solutions `__ + +License +------- +General Public License, Version 3 (LGPL v3). +(https://www.odoo.com/documentation/user/16.0/legal/licenses/licenses.html) + +Credits +------- +Developer: V16 LAJINA K V + V16 MOHAMMED DILSHAD TK + V17 Gayathri V + V18 Safa Faheem PE + V18 Gayathri V +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/legal_case_management/__init__.py b/legal_case_management/__init__.py new file mode 100644 index 000000000..c33172997 --- /dev/null +++ b/legal_case_management/__init__.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +############################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Gayathri V () +# +# 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 controllers +from . import models +from . import report +from . import wizard diff --git a/legal_case_management/__manifest__.py b/legal_case_management/__manifest__.py new file mode 100644 index 000000000..eb2c0baaa --- /dev/null +++ b/legal_case_management/__manifest__.py @@ -0,0 +1,74 @@ +# -*- coding: utf-8 -*- +############################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Gayathri V() +# +# 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': "Legal Case Management", + 'version': '18.0.1.0.0', + 'category': 'Services', + 'summary': """Legal Case Management for odoo 18. This module will helps + to manage a legal case management firm. This will allows to manage all + details of case sucha as evidence, trial and overall payment of a case""", + 'description': """This module helps to manage all process of a legal case + management firm.In this way we can register a case and add their + evidence, trial and payment also. Assign the lawyers based on the wages + and per case""", + 'author': 'Cybrosys Techno Solutions', + 'company': 'Cybrosys Techno Solutions', + 'maintainer': 'Cybrosys Techno Solutions', + 'website': 'https://www.cybrosys.com', + 'depends': ['base', 'hr', 'contacts', 'account', 'website', 'mail'], + 'data': [ + 'data/case_register_menu.xml', + 'data/ir_sequence_data.xml', + 'security/legal_case_management_groups.xml', + 'security/legal_case_management_security.xml', + 'security/ir.model.access.csv', + 'report/legal_evidence_reports.xml', + 'report/legal_evidence_templates.xml', + 'report/legal_trial_reports.xml', + 'report/report_legal_case_management_report_legal_case_details_templates.xml', + 'report/report_legal_case_management_report_case_register_document_templates.xml', + 'report/legal_evidence_templates.xml', + 'report/report_legal_case_management_report_case_trial_document_templates.xml', + 'report/legal_case_reports.xml', + 'report/case_registration_reports.xml', + 'views/legal_case_management_menus.xml', + 'views/case_registration_views.xml', + 'views/hr_employee_views.xml', + 'views/res_partner_views.xml', + 'views/legal_evidence_views.xml', + 'views/legal_trial_views.xml', + 'views/legal_court_views.xml', + 'views/case_category_views.xml', + 'views/case_register_portal_template.xml', + 'views/case_register_template.xml', + 'views/account_move_views.xml', + 'views/thanks_template.xml', + 'views/legal_case_page_template.xml', + 'wizard/invoice_payment_views.xml', + 'wizard/full_settlement_views.xml', + ], + 'images': ['static/description/banner.jpg'], + 'license': 'LGPL-3', + 'installable': True, + 'auto_install': False, + 'application': True +} diff --git a/legal_case_management/controllers/__init__.py b/legal_case_management/controllers/__init__.py new file mode 100644 index 000000000..59a32fc66 --- /dev/null +++ b/legal_case_management/controllers/__init__.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +############################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Gayathri V () +# +# 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 legal_case_management +from . import portal diff --git a/legal_case_management/controllers/legal_case_management.py b/legal_case_management/controllers/legal_case_management.py new file mode 100644 index 000000000..946ae71a9 --- /dev/null +++ b/legal_case_management/controllers/legal_case_management.py @@ -0,0 +1,55 @@ +# -*- coding: utf-8 -*- +############################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Gayathri V () +# +# 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 base64 +from odoo import http +from odoo.http import request + + +class LegalCaseController(http.Controller): + """Legal Case Controller""" + @http.route('/legal/case/register', type="http", auth="user", website=True) + def legal_case_register(self): + """ Returns Case Registration Form""" + return request.render( + 'legal_case_management.legal_case_register_view') + + @http.route('/submit/create/case', type='http', website=True, auth='user') + def create_case_register(self, **kw): + """Creation of Cases""" + attached_files = request.httprequest.files.getlist('attachments') + case = request.env['case.registration'].sudo().create({ + 'client_id': request.env.user.partner_id.id, + 'email': request.env.user.partner_id.email, + 'contact_no': kw['contact'], + 'description': kw['description'], + 'case_category_id': int(kw['case_category']), + 'company_id': request.env.company.id, + }) + for attachment in attached_files: + request.env['ir.attachment'].sudo().create({ + 'name': attachment.filename, + 'res_model': 'case.registration', + 'res_id': case.id, + 'type': 'binary', + 'datas': base64.b64encode(attachment.read()) + }) + return request.render("legal_case_management.thanks_page") diff --git a/legal_case_management/controllers/portal.py b/legal_case_management/controllers/portal.py new file mode 100644 index 000000000..c44bbb2ee --- /dev/null +++ b/legal_case_management/controllers/portal.py @@ -0,0 +1,73 @@ +# -*- coding: utf-8 -*- +############################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Gayathri V () +# +# 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.addons.portal.controllers.portal import CustomerPortal +from odoo import http +from odoo.http import request + + +class PortalLegalCase(CustomerPortal): + """Customer Portal""" + def _prepare_home_portal_values(self, counters): + """Returns the portal values""" + values = super()._prepare_home_portal_values(counters) + if 'case_count' in counters: + values['case_count'] = request.env[ + 'case.registration'].sudo().search_count( + [('state', '!=', 'invoiced'), + ('client_id.id', '=', request.env.user.partner_id.id)]) \ + if request.env['case.registration'].sudo(). \ + check_access_rights('read', raise_exception=False) else 0 + return values + + @http.route('/my/legal/case', + type='http', auth="user", website=True) + def legal_cases(self): + """Returns the case Records""" + records = request.env['case.registration'].sudo(). \ + search([('client_id', '=', request.env.user.partner_id.id)]) + values = { + 'records': records, + 'page_name': 'case' + } + return request.render( + "legal_case_management.portal_my_legal_case_requests", + values) + + @http.route(['/my/cases/'], type='http', auth="public", + website=True) + def portal_my_details_detail(self, case_id): + """ Returns the Portal details""" + case_record = request.env['case.registration'].sudo().browse(case_id) + evidences = request.env['legal.evidence'].sudo().search( + [('client_id', '=', case_record.client_id.id), + ('case_id', '=', case_record.id)]) + trials = request.env['legal.trial'].sudo().search( + [('client_id', '=', case_record.client_id.id), + ('case_id', '=', case_record.id)]) + records = { + 'case_record': case_record, + 'evidence': evidences, + 'trial': trials, + 'page_name': 'case' + } + return request.render("legal_case_management.portal_legal_case_page", + records) diff --git a/legal_case_management/data/case_register_menu.xml b/legal_case_management/data/case_register_menu.xml new file mode 100644 index 000000000..40361c322 --- /dev/null +++ b/legal_case_management/data/case_register_menu.xml @@ -0,0 +1,13 @@ + + + + + + Legal Case + /legal/case/register + + 30 + + + + diff --git a/legal_case_management/data/ir_sequence_data.xml b/legal_case_management/data/ir_sequence_data.xml new file mode 100644 index 000000000..6be5278e2 --- /dev/null +++ b/legal_case_management/data/ir_sequence_data.xml @@ -0,0 +1,25 @@ + + + + + + Case Sequence + case_registration + CASE000 + + + + Case Evidence Sequence + case_evidence + EV000 + + + + Legal Case Sequence + legal_trial + TR000 + + + + + diff --git a/legal_case_management/doc/RELEASE_NOTES.md b/legal_case_management/doc/RELEASE_NOTES.md new file mode 100644 index 000000000..5080e39fd --- /dev/null +++ b/legal_case_management/doc/RELEASE_NOTES.md @@ -0,0 +1,7 @@ +## Module + +#### 28.02.2025 +#### Version 18.0.1.0.0 +#### ADD + +- Initial commit for Legal Case Management diff --git a/legal_case_management/models/__init__.py b/legal_case_management/models/__init__.py new file mode 100644 index 000000000..743d51273 --- /dev/null +++ b/legal_case_management/models/__init__.py @@ -0,0 +1,31 @@ +# -*- coding: utf-8 -*- +############################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Gayathri V () +# +# 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 account_move +from . import case_category +from . import case_registration +from . import case_sitting +from . import case_victim +from . import hr_employee +from . import legal_court +from . import legal_evidence +from . import legal_trial +from . import res_partner diff --git a/legal_case_management/models/account_move.py b/legal_case_management/models/account_move.py new file mode 100644 index 000000000..1b19816d8 --- /dev/null +++ b/legal_case_management/models/account_move.py @@ -0,0 +1,30 @@ +# -*- coding: utf-8 -*- +############################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Gayathri V () +# +# 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 + + +class AccountMove(models.Model): + """Inherit account move""" + _inherit = 'account.move' + + case_ref = fields.Char(readonly=True, string='Case Reference', + help='It is used to identify the case reference') diff --git a/legal_case_management/models/case_category.py b/legal_case_management/models/case_category.py new file mode 100644 index 000000000..25eb15b1d --- /dev/null +++ b/legal_case_management/models/case_category.py @@ -0,0 +1,44 @@ +# -*- coding: utf-8 -*- +############################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Gayathri V () +# +# 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, _ +from odoo.exceptions import UserError + + +class CaseCategory(models.Model): + """Create case category""" + _name = 'case.category' + _description = 'Case Category' + + name = fields.Char("Case Category", required=True, + help='Name of the case category') + + @api.ondelete(at_uninstall=False) + def _unlink_except_draft_or_cancel(self): + """ Prevent the deletion of a case category if it is used in any + cases. """ + cases = self.sudo().env['case.registration'].search_count([ + ('case_category_id', 'in', self.ids), + ('state', 'not in', ['draft']) + ]) + if cases: + raise UserError(_("You can not delete a case category," + " because it is used in case")) diff --git a/legal_case_management/models/case_registration.py b/legal_case_management/models/case_registration.py new file mode 100644 index 000000000..30b623bb6 --- /dev/null +++ b/legal_case_management/models/case_registration.py @@ -0,0 +1,332 @@ +# -*- coding: utf-8 -*- +############################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Gayathri V () +# +# 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, _ +from odoo.exceptions import UserError, ValidationError + + +class CaseRegistration(models.Model): + """Case registration and invoice for trials and case""" + _name = 'case.registration' + _inherit = ['mail.thread', 'mail.activity.mixin'] + _description = 'Case Register' + + name = fields.Char(string='Case No', readonly=True, + default=lambda self: _('New'), + copy=False, + help='Case number') + client_id = fields.Many2one('res.partner', string='Client', required=True, + help='Clients in the law firm') + email = fields.Char(related="client_id.email", required=True, + string='Email', + help='Email of client', readonly=False) + contact_no = fields.Char(related="client_id.phone", required=True, + string='Contact No', readonly=False, + help='Contact number') + payment_method = fields.Selection(selection=[ + ('trial', "Per Trial"), + ('case', "Per Case"), + ('out_of_court', "Out of Court")], string='Payment Method', + states={'draft': [('invisible', True)]}, + help="Payment method to select one method") + lawyer_wage = fields.Char(string="Lawyer Wage", help="wage of the lawyers", + invisible=True) + lawyer_id = fields.Many2one('hr.employee', string='Lawyer', + domain=[('is_lawyer', '=', True)], + help="Lawyers in the law firm") + lawyer_unavailable = fields.Boolean(string="Is Unavailable", + help="Which is used to identify the " + "available lawyers", + default=False) + junior_lawyer_id = fields.Many2one('hr.employee', string='Junior Lawyer', + help='Juniors lawyers in the law firm') + court_id = fields.Many2one('legal.court', string='Court', + help="Name of courts") + court_no_required = fields.Boolean(string="Is Court Number Required", + help='Makes court as Not required field', + default=True) + judge_id = fields.Many2one(related='court_id.judge_id', string='Judge', + store=True, help="Available judges") + register_date = fields.Date(string='Registration Date', required=True, + default=fields.Date.today, + help='Case registration date') + start_date = fields.Date(string='Start Date', default=fields.Date.today) + end_date = fields.Date(string='End Date') + case_category_id = fields.Many2one('case.category', string='Case Category', + required=True, + help="Category of case") + description = fields.Html(string='Description', required=True, + help="Case Details") + opposition_name = fields.Char(string='Name', help="Name of Opposite Party") + opposite_lawyer = fields.Char(string='Lawyer', help="Name of opposite " + "Lawyer") + opp_party_contact = fields.Char(string='Contact No', + hel='Contact No for opposite party') + victim_ids = fields.One2many('case.victim', 'registration_id', + help="List of Victims") + sitting_detail_ids = fields.One2many('case.sitting', 'case_id') + evidence_count = fields.Integer(string="Evidence Count", + compute='_compute_evidence_count', + help="Count of evidence") + case_attachment_count = fields.Integer(string="Case Attachment Count", + compute='_compute_case_attachment_count', + help="Count of attachments") + trial_count = fields.Integer(string="Trial Count", + compute='_compute_trial_count', + help="Count of trials") + invoice_count = fields.Integer(string="Invoice Count", + compute='_compute_invoice_count', + help="Count of Invoices") + state = fields.Selection( + [('draft', 'Draft'), ('in_progress', 'In Progress'), + ('invoiced', 'Invoiced'), ('reject', 'Reject'), + ('won', 'Won'), ('lost', 'Lost'), ('cancel', 'Cancel')], + string='State', default='draft', help="State of case") + company_id = fields.Many2one("res.company", string="Company", + default=lambda self: self.env.company, + readonly=True, + help="Company in which the case done") + + @api.onchange('payment_method') + def _onchange_payment_method(self): + """Court not required based on, + - if payment method = out of court + - if invoice through full settlement""" + if self.payment_method == 'out_of_court': + self.court_no_required = False + else: + self.court_no_required = True + + @api.onchange('lawyer_id') + def _onchange_lawyer_id(self): + """Lawyer unavailable warning and lists his juniors""" + cases = self.sudo().search( + [('lawyer_id', '=', self.lawyer_id.id), ('state', '!=', 'draft'), + ('id', '!=', self._origin.id)]) + self.lawyer_id.not_available = False + self.lawyer_unavailable = False + if self.lawyer_id: + for case in cases: + if case.end_date and case.end_date <= fields.Date.today(): + self.lawyer_id.not_available = False + self.lawyer_unavailable = False + else: + self.lawyer_id.not_available = True + self.lawyer_unavailable = True + break + if self.lawyer_unavailable: + return { + 'warning': { + 'title': 'Lawyer Unavailable', + 'message': 'The selected lawyer is unavailable ' + 'at this time.' + 'You can choose his juniors.', + }, + 'domain': { + 'junior_lawyer_id': [('parent_id', '=', + self.lawyer_id.id), + ('is_lawyer', '=', True)], + }, + } + + @api.ondelete(at_uninstall=False) + def _unlink_except_draft_or_cancel(self): + """ Records can be deleted only draft and cancel state""" + case_records = self.filtered( + lambda x: x.state not in ['draft', 'cancel']) + if case_records: + raise UserError(_( + "You can not delete a Approved Case." + " You must first cancel it.")) + + def action_full_settlement(self): + """Returns the full settlement view""" + self.court_no_required = False + return { + 'type': 'ir.actions.act_window', + 'res_model': 'full.settlement', + 'view_mode': 'form', + 'target': 'new', + 'context': {'default_case_id': self.id} + } + + def action_cancel(self): + """State changed to cancel""" + self.write({'state': 'cancel'}) + self.lawyer_id.not_available = False + self.end_date = fields.Date.today() + + def action_reset_to_draft(self): + """ Stage reset to draft""" + self.write({'state': 'draft'}) + + def action_confirm(self): + """Confirmation of Cases""" + if self.name == 'New': + self.name = self.env['ir.sequence']. \ + next_by_code('case_registration') or 'New' + self.state = 'in_progress' + + def action_reject(self): + """Rejection of Cases""" + self.write({'state': 'reject'}) + + def validation_case_registration(self): + """Show Validation Until The Lawyer Details are Filled""" + if not self.lawyer_id: + raise ValidationError(_( + """Please assign a lawyer for the case""" + )) + + def action_invoice(self): + """Button method to show invoice wizard""" + if not self.payment_method: + raise ValidationError(_( + """Please select a payment method for create invoice""" + )) + if self.payment_method == 'case': + self.lawyer_wage = self.lawyer_id.wage_per_case + elif self.payment_method == 'trial': + self.lawyer_wage = self.lawyer_id.wage_per_trial + else: + self.lawyer_wage = '' + self.validation_case_registration() + return { + 'name': 'Create Invoice', + 'type': 'ir.actions.act_window', + 'res_model': 'invoice.payment', + 'view_mode': 'form', + 'target': 'new', + 'context': {'default_case_id': self.id, + 'default_cost': self.lawyer_wage} + } + + def action_evidence(self): + """Button to add evidence""" + return { + 'type': 'ir.actions.act_window', + 'name': 'Evidence', + 'view_mode': 'form', + 'res_model': 'legal.evidence', + 'context': {'default_case_id': self.id, + 'default_client_id': self.client_id.id} + } + + def get_attachments(self): + """Show attachments in smart tab which added in chatter""" + return { + 'type': 'ir.actions.act_window', + 'name': 'Attachment', + 'view_mode': 'kanban,form', + 'res_model': 'ir.attachment', + 'domain': [('res_id', '=', self.id), + ('res_model', '=', self._name)], + 'context': {'create': False} + } + + def _compute_case_attachment_count(self): + """Compute the count of attachments""" + for attachment in self: + attachment.case_attachment_count = self.env['ir.attachment']. \ + sudo().search_count([('res_id', '=', self.id), + ('res_model', '=', self._name)]) + + def action_won(self): + """Changed to won state""" + self.state = 'won' + self.end_date = fields.Date.today() + self.lawyer_id.not_available = False + + def action_lost(self): + """Changed to lost state""" + self.state = 'lost' + self.end_date = fields.Date.today() + self.lawyer_id.not_available = False + + def _compute_evidence_count(self): + """Computes the count of evidence""" + for case in self: + case.evidence_count = case.env['legal.evidence'].search_count( + [('client_id', '=', self.client_id.id), + ('case_id', '=', self.id)]) + + def _compute_trial_count(self): + """Compute the count of trials""" + for case in self: + case.trial_count = case.env['legal.trial']. \ + search_count([('client_id', '=', self.client_id.id), + ('case_id', '=', self.id)]) + + def action_trial(self): + """Button to add trial""" + self.validation_case_registration() + return { + 'type': 'ir.actions.act_window', + 'name': 'Trial', + 'view_mode': 'form', + 'res_model': 'legal.trial', + 'context': {'default_case_id': self.id, + 'default_client_id': self.client_id.id} + } + + def _compute_invoice_count(self): + """Calculate the count of invoices""" + for inv in self: + inv.invoice_count = self.env['account.move'].search_count( + [('case_ref', '=', self.name)]) + + def get_invoice(self): + """Get the corresponding invoices""" + return { + 'name': 'Case Invoice', + 'type': 'ir.actions.act_window', + 'view_mode': 'list,form', + 'res_model': 'account.move', + 'domain': [('case_ref', '=', self.name)], + } + + def get_evidence(self): + """Returns the evidences""" + evidence_ids_list = self.env['legal.evidence']. \ + search([('client_id', '=', self.client_id.id), + ('case_id', '=', self.id)]).ids + return { + 'type': 'ir.actions.act_window', + 'name': 'Evidence', + 'view_mode': 'list,form', + 'res_model': 'legal.evidence', + 'domain': [('id', 'in', evidence_ids_list)], + 'context': "{'create': False}" + } + + def get_trial(self): + """Returns the Trials""" + trial_ids_list = self.env['legal.trial']. \ + search([('client_id', '=', self.client_id.id), + ('case_id', '=', self.id)]).ids + return { + 'type': 'ir.actions.act_window', + 'name': 'Trial', + 'view_mode': 'list,form', + 'res_model': 'legal.trial', + 'domain': [('id', 'in', trial_ids_list)], + 'context': "{'create': False}" + } diff --git a/legal_case_management/models/case_sitting.py b/legal_case_management/models/case_sitting.py new file mode 100644 index 000000000..7afa24f20 --- /dev/null +++ b/legal_case_management/models/case_sitting.py @@ -0,0 +1,36 @@ +# -*- coding: utf-8 -*- +############################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Gayathri V () +# +# 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 + + +class CaseSitting(models.Model): + """Create case sitting""" + _name = 'case.sitting' + _description = 'Case Sitting"' + + date = fields.Date(string='Date', help='Date of case sitting', required=True) + details = fields.Text(string='Details', help='Details of sittings') + contact = fields.Char(string='Contact', help="Name of contact person") + done = fields.Boolean(string='Done', help="Is the sitting is completed or " + "not") + case_id = fields.Many2one('case.registration', string='Connecting Field', + help="case related to the sitting") diff --git a/legal_case_management/models/case_victim.py b/legal_case_management/models/case_victim.py new file mode 100644 index 000000000..b6e1295ed --- /dev/null +++ b/legal_case_management/models/case_victim.py @@ -0,0 +1,34 @@ +# -*- coding: utf-8 -*- +############################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Gayathri V () +# +# 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 + + +class CaseVictim(models.Model): + """Create victim""" + _name = 'case.victim' + _description = 'Case Victim' + + name = fields.Char(string='Name', help='Victim Name', required=True) + contact = fields.Char(string='Contact No', help='Contact of Case victim') + registration_id = fields.Many2one('case.registration', + string='Registration', + help="Victim registration") diff --git a/legal_case_management/models/hr_employee.py b/legal_case_management/models/hr_employee.py new file mode 100644 index 000000000..5a5874bfd --- /dev/null +++ b/legal_case_management/models/hr_employee.py @@ -0,0 +1,35 @@ +# -*- coding: utf-8 -*- +############################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Gayathri V () +# +# 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 + + +class HrEmployee(models.Model): + """To create lawyers""" + _inherit = 'hr.employee' + + is_lawyer = fields.Boolean(string="Is Lawyer", + help='Is this employee is a lawyer') + wage_per_trial = fields.Integer(string="Wage Per Trial", + help='Wage per trial') + wage_per_case = fields.Integer(string="Wage Per Case", help='Wage per Case') + not_available = fields.Boolean(string='Not Available', + help='Lawyer Unavailable') diff --git a/legal_case_management/models/legal_court.py b/legal_case_management/models/legal_court.py new file mode 100644 index 000000000..bf93b9e5c --- /dev/null +++ b/legal_case_management/models/legal_court.py @@ -0,0 +1,53 @@ +# -*- coding: utf-8 -*- +############################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Gayathri V() +# +# 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, _ +from odoo.exceptions import UserError + + +class LegalCourt(models.Model): + """Creation of legal court""" + _name = 'legal.court' + _description = 'legal court' + + name = fields.Char("Name", required=True, help='Name') + judge_id = fields.Many2one('res.partner', + domain="[('is_judge', '=', True)," + "('is_judge_unavailable', '=',False)]", + string='Judge', + help='Judges are available in the court') + + @api.onchange('judge_id') + def _onchange_judge_id(self): + """This is used to Get judges""" + self.judge_id.is_judge = True + self.judge_id.is_judge_unavailable = True + + @api.ondelete(at_uninstall=False) + def _unlink_except_draft_or_cancel(self): + """ Prevent the deletion of a court if it is used in any cases. """ + cases = self.sudo().env['case.registration'].search_count([ + ('court_id', 'in', self.ids), + ('state', 'not in', ['draft']) + ]) + if cases: + raise UserError(_("You can not delete a court, " + "because it is used in case")) diff --git a/legal_case_management/models/legal_evidence.py b/legal_case_management/models/legal_evidence.py new file mode 100644 index 000000000..fc1bb24a8 --- /dev/null +++ b/legal_case_management/models/legal_evidence.py @@ -0,0 +1,81 @@ +# -*- coding: utf-8 -*- +############################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Gayathri V () +# +# 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, _ +from odoo.exceptions import UserError + + +class LegalEvidence(models.Model): + """Creation of legal evidence""" + _name = 'legal.evidence' + _description = 'legal evidence' + _inherit = ['mail.thread', 'mail.activity.mixin'] + + name = fields.Char(string='Reference', copy=False, readonly=True, + default=lambda x: _('New'), + help='Reference for the legal evidence') + case_id = fields.Many2one("case.registration", string="Case", + help='Name for cases', + required=True, + domain="[('state', 'not in'," + "['won', 'lost','invoiced'])]") + in_favor_id = fields.Many2one("res.partner", string="In Favor", + help=' Name of in favor for the evidence', + required=True) + client_id = fields.Many2one(related="case_id.client_id", string="Client", + help='Clients for the evidence') + description = fields.Text(string="Description", + help='Description of evidence') + attachment_count = fields.Integer(string="Attachment Count", + compute='_compute_attachment_count', + help="Count of attachments") + + @api.model + def create(self, vals): + """Generate Sequence For Evidence""" + if vals.get('name', 'New') == 'New': + vals['name'] = self.env['ir.sequence'].next_by_code( + 'case_evidence') or 'New' + return super().create(vals) + + @api.ondelete(at_uninstall=False) + def _unlink_except_draft_or_cancel(self): + """ Records can't be deleted""" + raise UserError(_("You can not delete a evidence")) + + def get_evidence_attachments(self): + """Get the corresponding attachments of evidence""" + return { + 'type': 'ir.actions.act_window', + 'name': 'Attachments', + 'view_mode': 'kanban,form', + 'res_model': 'ir.attachment', + 'domain': [('res_id', '=', self.id), + ('res_model', '=', self._name)], + 'context': "{'create': False}" + } + + def _compute_attachment_count(self): + """Compute the count of attachments""" + for attachment in self: + attachment.attachment_count = self.env['ir.attachment']. \ + sudo().search_count([('res_id', '=', self.id), + ('res_model', '=', self._name)]) diff --git a/legal_case_management/models/legal_trial.py b/legal_case_management/models/legal_trial.py new file mode 100644 index 000000000..f835ce227 --- /dev/null +++ b/legal_case_management/models/legal_trial.py @@ -0,0 +1,66 @@ +# -*- coding: utf-8 -*- +############################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Gayathri V () +# +# 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, _ +from odoo.exceptions import UserError + + +class LegalTrial(models.Model): + """This is used to the creation of legal trial""" + _name = 'legal.trial' + _inherit = ['mail.thread', 'mail.activity.mixin'] + _description = 'Legal Trial' + + name = fields.Char(string="Name", readonly=True, default=lambda self: _('New'), + help='Trial number') + case_id = fields.Many2one('case.registration', string="Case", + help='Corresponding case', + required=True, + domain="[('state', 'not in'," + "['won', 'lost', 'invoiced'])]") + client_id = fields.Many2one(related="case_id.client_id", string="Client", + readonly=False, required=True, + help='Client of the legal trial') + trial_date = fields.Datetime(string="Trial Date", help='Date for trial', + required=True) + judge_id = fields.Many2one(related="case_id.judge_id", string="Judge", + readonly=False, help="Judge for " + "corresponding case") + court_id = fields.Many2one(related="case_id.court_id", string="Court", + readonly=False, help="Court for " + "corresponding case") + description = fields.Html(string="Description", + help="Description for the trail") + is_invoiced = fields.Boolean(string='Is invoiced', help="Is trial invoiced", + default=False) + + @api.model + def create(self, vals): + """Generate Sequence For Evidence""" + if vals.get('name', 'New') == 'New': + vals['name'] = self.env['ir.sequence'].next_by_code( + 'legal_trial') or 'New' + return super().create(vals) + + @api.ondelete(at_uninstall=False) + def _unlink_except_draft_or_cancel(self): + """ Records can't be deleted""" + raise UserError(_("You can not delete a trial")) diff --git a/legal_case_management/models/res_partner.py b/legal_case_management/models/res_partner.py new file mode 100644 index 000000000..586e2e574 --- /dev/null +++ b/legal_case_management/models/res_partner.py @@ -0,0 +1,32 @@ +# -*- coding: utf-8 -*- +############################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Gayathri V () +# +# 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 + + +class ResPartner(models.Model): + """Inherit res partner""" + _inherit = 'res.partner' + + is_judge = fields.Boolean(string='Is Judge', help='Is he a Judge') + is_judge_unavailable = fields.Boolean(string="Judge Available?", + default=False, + help="Check the availability of judge") diff --git a/legal_case_management/report/__init__.py b/legal_case_management/report/__init__.py new file mode 100644 index 000000000..f35d82613 --- /dev/null +++ b/legal_case_management/report/__init__.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +############################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Gayathri V () +# +# 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 report_legal_case_management_report_case_register_document_report +from . import report_legal_case_management_report_case_evidence_document_report +from . import report_legal_case_management_report_case_trial_document_report +from . import report_legal_case_management_report_legal_case_details_report diff --git a/legal_case_management/report/case_registration_reports.xml b/legal_case_management/report/case_registration_reports.xml new file mode 100644 index 000000000..0b1a75866 --- /dev/null +++ b/legal_case_management/report/case_registration_reports.xml @@ -0,0 +1,15 @@ + + + + + Case Report + case.registration + qweb-pdf + legal_case_management.report_case_register_documents + legal_case_management.report_case_register_documents + 'Case Report ' + + + report + + diff --git a/legal_case_management/report/legal_case_reports.xml b/legal_case_management/report/legal_case_reports.xml new file mode 100644 index 000000000..bdc31f767 --- /dev/null +++ b/legal_case_management/report/legal_case_reports.xml @@ -0,0 +1,12 @@ + + + + + Legal Case Report + legal.case.report + qweb-pdf + legal_case_management.report_legal_case_details + legal_case_management.report_legal_case_details + report + + diff --git a/legal_case_management/report/legal_evidence_reports.xml b/legal_case_management/report/legal_evidence_reports.xml new file mode 100644 index 000000000..0b30d5850 --- /dev/null +++ b/legal_case_management/report/legal_evidence_reports.xml @@ -0,0 +1,14 @@ + + + + + Evidence Report + legal.evidence + qweb-pdf + legal_case_management.report_case_evidence_document + legal_case_management.report_case_evidence_document + + report + form + + diff --git a/legal_case_management/report/legal_evidence_templates.xml b/legal_case_management/report/legal_evidence_templates.xml new file mode 100644 index 000000000..cc661e8aa --- /dev/null +++ b/legal_case_management/report/legal_evidence_templates.xml @@ -0,0 +1,50 @@ + + + + + diff --git a/legal_case_management/report/legal_trial_reports.xml b/legal_case_management/report/legal_trial_reports.xml new file mode 100644 index 000000000..8afd46bcc --- /dev/null +++ b/legal_case_management/report/legal_trial_reports.xml @@ -0,0 +1,14 @@ + + + + + Trial Report + legal.trial + qweb-pdf + legal_case_management.report_case_trial_document + legal_case_management.report_case_trial_document + + report + form + + diff --git a/legal_case_management/report/report_legal_case_management_report_case_evidence_document_report.py b/legal_case_management/report/report_legal_case_management_report_case_evidence_document_report.py new file mode 100644 index 000000000..18b562ed4 --- /dev/null +++ b/legal_case_management/report/report_legal_case_management_report_case_evidence_document_report.py @@ -0,0 +1,35 @@ +# -*- coding: utf-8 -*- +############################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Gayathri V () +# +# 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 models + + +class ReportLegalCaseManagementReportCaseEvidenceDocument(models.AbstractModel): + """This is used to get the Evidence report""" + _name = 'report.legal_case_management.report_case_evidence_document' + _description = "Report For Evidence" + + def _get_report_values(self, docids, data=None): + """Return the Report Values For Evidence""" + evidence_record = self.env['legal.evidence'].browse(docids) + return { + 'evidence': evidence_record + } diff --git a/legal_case_management/report/report_legal_case_management_report_case_register_document_report.py b/legal_case_management/report/report_legal_case_management_report_case_register_document_report.py new file mode 100644 index 000000000..7677d89dc --- /dev/null +++ b/legal_case_management/report/report_legal_case_management_report_case_register_document_report.py @@ -0,0 +1,43 @@ +# -*- coding: utf-8 -*- +############################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Gayathri V () +# +# 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 models + + +class ReportLegalCaseManagementReportCaseRegisterDocument(models.AbstractModel): + """Case registration report""" + _name = 'report.legal_case_management.report_case_register_documents' + _description = "Report For Case Registration" + + def _get_report_values(self, docids, data=None): + """Return the Report Values""" + case_record = self.env['case.registration'].browse(docids) + evidences = self.env['legal.evidence']. \ + search([('client_id', '=', case_record.client_id.id), + ('case_id', '=', case_record.id)]) + trials = self.env['legal.trial']. \ + search([('client_id', '=', case_record.client_id.id), + ('case_id', '=', case_record.id)]) + return { + 'case_record': case_record, + 'evidence': evidences, + 'trial': trials + } diff --git a/legal_case_management/report/report_legal_case_management_report_case_register_document_templates.xml b/legal_case_management/report/report_legal_case_management_report_case_register_document_templates.xml new file mode 100644 index 000000000..a15164ec7 --- /dev/null +++ b/legal_case_management/report/report_legal_case_management_report_case_register_document_templates.xml @@ -0,0 +1,82 @@ + + + + + diff --git a/legal_case_management/report/report_legal_case_management_report_case_trial_document_report.py b/legal_case_management/report/report_legal_case_management_report_case_trial_document_report.py new file mode 100644 index 000000000..03d2278ee --- /dev/null +++ b/legal_case_management/report/report_legal_case_management_report_case_trial_document_report.py @@ -0,0 +1,35 @@ +# -*- coding: utf-8 -*- +############################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Gayathri V () +# +# 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 models + + +class ReportLegalCaseManagementReportCaseTrialDocument(models.AbstractModel): + """This is used to get the Trial Report""" + _name = 'report.legal_case_management.report_case_trial_document' + _description = "Report For Trial" + + def _get_report_values(self, docids, data=None): + """Return the Report Values""" + trial_record = self.env['legal.trial'].browse(docids) + return { + 'trial': trial_record, + } diff --git a/legal_case_management/report/report_legal_case_management_report_case_trial_document_templates.xml b/legal_case_management/report/report_legal_case_management_report_case_trial_document_templates.xml new file mode 100644 index 000000000..22e05a58a --- /dev/null +++ b/legal_case_management/report/report_legal_case_management_report_case_trial_document_templates.xml @@ -0,0 +1,47 @@ + + + + + diff --git a/legal_case_management/report/report_legal_case_management_report_legal_case_details_report.py b/legal_case_management/report/report_legal_case_management_report_legal_case_details_report.py new file mode 100644 index 000000000..256bc10c6 --- /dev/null +++ b/legal_case_management/report/report_legal_case_management_report_legal_case_details_report.py @@ -0,0 +1,263 @@ +# -*- coding: utf-8 -*- +############################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Gayathri V () +# +# 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 models + + +class ReportLegalCaseManagementReportLegalCaseDetails(models.AbstractModel): + """Report of module""" + _name = 'report.legal_case_management.report_legal_case_details' + _description = "Report For Case Registration" + + def _get_report_values(self, docids, data=None): + """This is used to Get data to the pdf""" + query = """select case_reg.name as case_name,case_reg.start_date as + start_date, case_reg.end_date as end_date, res_client.name as client, + lawyer.name as lawyer, court.name as court,res_judge.name as judge, + INITCAP(case_reg.payment_method) as payment_method, INITCAP( + case_reg.state) as state from case_registration case_reg LEFT JOIN + res_partner res_client ON case_reg.client_id = res_client.id LEFT + JOIN res_partner res_judge ON case_reg.judge_id= res_judge.id LEFT + JOIN hr_employee lawyer ON lawyer.id = case_reg.lawyer_id LEFT JOIN + legal_court court ON case_reg.court_id = court.id""" + if data['lawyer_id'] and data['client_id'] and data['court_id'] \ + and data['judge_id'] and data['start_date'] and data['end_date'] \ + and data['payment_method'] and data['state']: + query += f""" WHERE lawyer.name = '%s' AND res_client.name='%s' + AND court.name ='%s' AND res_judge.name = '%s' AND + case_reg.start_date = '%s' AND case_reg.end_date = '%s' AND + case_reg.payment_method = '%s' AND case_reg.state = '%s' """ \ + % (data['lawyer_id'], data['client_id'], data['court_id'], + data['judge_id'], data['start_date'], data['end_date'], + data['payment_method'], data['state']) + elif data['lawyer_id'] and data['client_id'] and data['court_id'] \ + and data['judge_id'] and data['start_date'] and \ + data['end_date'] and data['payment_method']: + query += f""" WHERE lawyer.name = '%s' AND res_client.name='%s' AND + court.name ='%s' AND res_judge.name = '%s' AND + case_reg.start_date = '%s' AND case_reg.end_date = '%s' + AND case_reg.payment_method = '%s' """ \ + % (data['lawyer_id'], data['client_id'], data['court_id'], + data['judge_id'], data['start_date'], data['end_date'], + data['payment_method']) + elif data['lawyer_id'] and data['client_id'] and data['court_id'] \ + and data['judge_id'] and data['start_date'] and data['end_date']: + query += f""" WHERE lawyer.name = '%s' AND res_client.name='%s' AND + court.name ='%s' AND res_judge.name = '%s' AND + case_reg.start_date = '%s' AND + case_reg.end_date = '%s' """ % (data['lawyer_id'], + data['client_id'], + data['court_id'], + data['judge_id'], + data['start_date'], + data['end_date']) + elif data['lawyer_id'] and data['client_id'] and data['court_id'] \ + and data['judge_id'] and data['start_date']: + query += f""" WHERE lawyer.name = '%s' AND res_client.name='%s' AND + court.name ='%s' AND res_judge.name = '%s' AND + case_reg.start_date = '%s'""" % (data['lawyer_id'], + data['client_id'], + data['court_id'], + data['judge_id'], + data['start_date']) + elif data['lawyer_id'] and data['client_id'] and data['court_id'] \ + and data['judge_id']: + query += f""" WHERE lawyer.name = '%s' AND res_client.name='%s' AND + court.name ='%s' AND res_judge.name = '%s'""" \ + % (data['lawyer_id'], + data['client_id'], + data['court_id'], + data['judge_id']) + elif data['lawyer_id'] and data['client_id'] and data['court_id']: + query += f""" WHERE lawyer.name = '%s' AND res_client.name='%s' AND + court.name ='%s'""" % (data['lawyer_id'], + data['client_id'], + data['court_id']) + elif data['lawyer_id'] and data['client_id'] and data['judge_id']: + query += f""" WHERE lawyer.name = '%s' AND res_client.name='%s' AND + res_judge.name ='%s'""" % (data['lawyer_id'], + data['client_id'], + data['judge_id']) + elif data['lawyer_id'] and data['client_id'] and data['start_date']: + query += f""" WHERE lawyer.name = '%s' AND res_client.name='%s' AND + case_reg.start_date ='%s'""" \ + % (data['lawyer_id'], data['client_id'], + data['start_date']) + elif data['lawyer_id'] and data['client_id'] and data['end_date']: + query += f""" WHERE lawyer.name = '%s' AND res_client.name='%s' AND + case_reg.end_date ='%s'""" \ + % (data['lawyer_id'], data['client_id'], + data['start_date']) + elif data['lawyer_id'] and data['client_id'] and data['payment_method']: + query += f""" WHERE lawyer.name = '%s' AND res_client.name='%s' AND + case_reg.payment_method ='%s'""" \ + % (data['lawyer_id'], data['client_id'], + data['payment_method']) + elif data['lawyer_id'] and data['client_id'] and data['state']: + query += f""" WHERE lawyer.name = '%s' AND res_client.name='%s' AND + case_reg.state ='%s'""" % (data['lawyer_id'], + data['client_id'], + data['state']) + elif data['lawyer_id'] and data['client_id']: + query += f""" WHERE lawyer.name ='%s' AND + res_client.name='%s'""" % (data['lawyer_id'], + data['client_id']) + elif data['lawyer_id'] and data['judge_id']: + query += f""" WHERE lawyer.name ='%s' AND + res_judge.name='%s'""" % (data['lawyer_id'], + data['judge_id']) + elif data['lawyer_id'] and data['court_id']: + query += f""" WHERE lawyer.name ='%s' AND + court.name='%s'""" % (data['lawyer_id'], + data['court_id']) + elif data['lawyer_id'] and data['start_date']: + query += f""" WHERE lawyer.name ='%s' AND + case_reg.start_date='%s'""" \ + % (data['lawyer_id'], data['start_date']) + elif data['lawyer_id'] and data['end_date']: + query += f""" WHERE lawyer.name ='%s' AND + case_reg.end_date='%s'""" \ + % (data['lawyer_id'], data['end_date']) + elif data['lawyer_id'] and data['payment_method']: + query += f""" WHERE lawyer.name ='%s' AND + case_reg.payment_method='%s'""" \ + % (data['lawyer_id'], data['payment_method']) + elif data['lawyer_id'] and data['state']: + query += f""" WHERE lawyer.name ='%s' AND + case_reg.state='%s'""" % (data['lawyer_id'], + data['state']) + elif data['client_id'] and data['judge_id']: + query += f""" WHERE res_client.name ='%s' AND + res_judge.name='%s'""" % (data['client_id'], + data['judge_id']) + elif data['client_id'] and data['court_id']: + query += f""" WHERE res_client.name ='%s' AND + court.name='%s'""" % (data['client_id'], + data['court_id']) + elif data['client_id'] and data['start_date']: + query += f""" WHERE res_client.name ='%s' AND + case_reg.start_date='%s'""" % (data['client_id'], + data['start_date']) + elif data['client_id'] and data['end_date']: + query += f""" WHERE res_client.name ='%s' AND + case_reg.end_date='%s'""" % (data['client_id'], + data['end_date']) + elif data['client_id'] and data['payment_method']: + query += f""" WHERE res_client.name ='%s' AND + case_reg.payment_method='%s'""" \ + % (data['client_id'], data['payment_method']) + elif data['client_id'] and data['state']: + query += f""" WHERE res_client.name ='%s' AND + case_reg.state='%s'""" % (data['client_id'], + data['state']) + elif data['judge_id'] and data['court_id']: + query += f""" WHERE res_judge.name ='%s' AND + court.name='%s'""" % (data['judge_id'], + data['court_id']) + elif data['judge_id'] and data['start_date']: + query += f""" WHERE res_judge.name ='%s' AND + case_reg.start_date='%s'""" \ + % (data['judge_id'], data['start_date']) + elif data['judge_id'] and data['end_date']: + query += f""" WHERE res_judge.name ='%s' AND + case_reg.end_date='%s'""" % (data['judge_id'], + data['end_date']) + elif data['judge_id'] and data['payment_method']: + query += f""" WHERE res_judge.name ='%s' AND + case_reg.payment_method='%s'""" \ + % (data['judge_id'], data['payment_method']) + elif data['judge_id'] and data['state']: + query += f""" WHERE res_judge.name ='%s' AND + case_reg.state='%s'""" % (data['judge_id'], + data['state']) + elif data['court_id'] and data['start_date']: + query += f""" WHERE court.name ='%s' AND + case_reg.start_date='%s'""" \ + % (data['court_id'], data['start_date']) + elif data['court_id'] and data['end_date']: + query += f""" WHERE court.name ='%s' AND + case_reg.end_date='%s'""" \ + % (data['court_id'], data['end_date']) + elif data['court_id'] and data['payment_method']: + query += f""" WHERE court.name ='%s' AND + case_reg.payment_method='%s'""" \ + % (data['court_id'], data['payment_method']) + elif data['court_id'] and data['state']: + query += f""" WHERE court.name ='%s' AND + case_reg.state='%s'""" % (data['court_id'], + data['state']) + elif data['start_date'] and data['end_date']: + query += f""" WHERE case_reg.start_date ='%s' AND + case_reg.end_date='%s'""" \ + % (data['start_date'], data['end_date']) + elif data['start_date'] and data['payment_method']: + query += f""" WHERE case_reg.start_date ='%s' AND + case_reg.payment_method='%s'""" \ + % (data['start_date'], data['payment_method']) + elif data['start_date'] and data['state']: + query += f""" WHERE case_reg.start_date ='%s' AND + case_reg.state='%s'""" \ + % (data['start_date'], data['state']) + elif data['start_date'] and data['payment_method']: + query += f""" WHERE case_reg.start_date ='%s' AND + case_reg.payment_method='%s'""" \ + % (data['start_date'], data['payment_method']) + elif data['end_date'] and data['payment_method']: + query += f""" WHERE case_reg.end_date ='%s' AND + case_reg.payment_method='%s'""" \ + % (data['end_date'], data['payment_method']) + elif data['end_date'] and data['state']: + query += f""" WHERE case_reg.end_date ='%s' AND + case_reg.state='%s'""" % (data['end_date'], + data['state']) + elif data['payment_method'] and data['state']: + query += f""" WHERE case_reg.payment_method='%s' AND + case_reg.state='%s'""" % (data['payment_method'], + data['state']) + elif data['lawyer_id']: + query += f""" WHERE lawyer.name ='%s' """ \ + % (data['lawyer_id']) + elif data['client_id']: + query += f""" WHERE res_client.name ='%s' """ \ + % (data['client_id']) + elif data['judge_id']: + query += f""" WHERE res_judge.name ='%s' """ \ + % (data['judge_id']) + elif data['court_id']: + query += f""" WHERE court.name ='%s' """ \ + % (data['court_id']) + elif data['start_date']: + query += f""" WHERE case_reg.start_date ='%s' """ \ + % (data['start_date']) + elif data['end_date']: + query += f""" WHERE case_reg.end_date ='%s' """ \ + % (data['end_date']) + elif data['payment_method']: + query += f""" WHERE case_reg.payment_method ='%s' """ \ + % (data['payment_method']) + elif data['state']: + query += f""" WHERE case_reg.state ='%s' """ \ + % (data['state']) + self.env.cr.execute(query) + return { + 'data': data, + 'docs': self.env.cr.dictfetchall() + } diff --git a/legal_case_management/report/report_legal_case_management_report_legal_case_details_templates.xml b/legal_case_management/report/report_legal_case_management_report_legal_case_details_templates.xml new file mode 100644 index 000000000..4555479ef --- /dev/null +++ b/legal_case_management/report/report_legal_case_management_report_legal_case_details_templates.xml @@ -0,0 +1,76 @@ + + + + + diff --git a/legal_case_management/security/ir.model.access.csv b/legal_case_management/security/ir.model.access.csv new file mode 100644 index 000000000..9e7da4294 --- /dev/null +++ b/legal_case_management/security/ir.model.access.csv @@ -0,0 +1,28 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_legal_evidence_admin,access.legal.evidence.admin,model_legal_evidence,legal_case_management.legal_case_management_group_admin,1,1,1,1 +access_legal_evidence_lawyer,access.legal.evidence.lawyer,model_legal_evidence,legal_case_management.legal_case_management_group_lawyer,1,1,1,0 +access_legal_evidence_clerk,access.legal.evidence.clerk,model_legal_evidence,legal_case_management.legal_case_management_group_clerk,1,0,0,0 +access_legal_trial_admin,access.legal.trial.admin,model_legal_trial,legal_case_management.legal_case_management_group_admin,1,1,1,1 +access_legal_trial_lawyer,access.legal.trial.lawyer,model_legal_trial,legal_case_management.legal_case_management_group_lawyer,1,1,1,0 +access_legal_trial_admin_clerk,access.legal.trial.admin_clerk,model_legal_trial,legal_case_management.legal_case_management_group_clerk,1,0,0,0 +access_legal_court_admin,access.legal.court.admin,model_legal_court,legal_case_management.legal_case_management_group_admin,1,1,1,1 +access_legal_court_lawyer,access.legal.court.lawyer,model_legal_court,legal_case_management.legal_case_management_group_lawyer,1,1,0,0 +access_legal_court_clerk,access.legal.court.clerk,model_legal_court,legal_case_management.legal_case_management_group_clerk,1,0,0,0 +access_case_category_admin,access.case.category.admin,model_case_category,legal_case_management.legal_case_management_group_admin,1,1,1,1 +access_case_category_lawyer,access.case.category.lawyer,model_case_category,legal_case_management.legal_case_management_group_lawyer,1,1,1,0 +access_case_category_clerk,access.case.category.clerk,model_case_category,legal_case_management.legal_case_management_group_clerk,1,0,0,0 +access_case_registration_admin,access.case.registration.admin,model_case_registration,legal_case_management.legal_case_management_group_admin,1,1,1,1 +access_case_registration_lawyer,access.case.registration.lawyer,model_case_registration,legal_case_management.legal_case_management_group_lawyer,1,1,0,0 +access_case_registration_clerk,access.case.registration.clerk,model_case_registration,legal_case_management.legal_case_management_group_clerk,1,0,0,0 +access_case_sitting_admin,access.case.sitting.admin,model_case_sitting,legal_case_management.legal_case_management_group_admin,1,1,1,1 +access_case_sitting_lawyer,access.case.sitting.lawyer,model_case_sitting,legal_case_management.legal_case_management_group_lawyer,1,1,1,1 +access_case_sitting_clerk,access.case.sitting.clerk,model_case_sitting,legal_case_management.legal_case_management_group_clerk,1,0,0,0 +access_case_victim_admin,access.case.victim.admin,model_case_victim,legal_case_management.legal_case_management_group_admin,1,1,1,1 +access_case_victim_lawyer,access.case.victim.lawyer,model_case_victim,legal_case_management.legal_case_management_group_lawyer,1,1,1,1 +access_case_victim_clerk,access.case.victim.clerk,model_case_victim,legal_case_management.legal_case_management_group_clerk,1,0,0,0 +access_invoice_payment_admin,access.invoice.payment.admin,model_invoice_payment,legal_case_management.legal_case_management_group_admin,1,1,1,1 +access_invoice_payment_lawyer,access.invoice.payment.lawyer,model_invoice_payment,legal_case_management.legal_case_management_group_lawyer,1,1,1,1 +access_invoice_payment_clerk,access.invoice.payment.clerk,model_invoice_payment,legal_case_management.legal_case_management_group_clerk,1,0,0,0 +access_full_settlement_admin,access.full.settlement.admin,model_full_settlement,legal_case_management.legal_case_management_group_admin,1,1,1,1 +access_full_settlement_lawyer,access.full.settlement.lawyer,model_full_settlement,legal_case_management.legal_case_management_group_lawyer,1,1,1,1 +access_full_settlement_clerk,access.full.settlement.clerk,model_full_settlement,legal_case_management.legal_case_management_group_clerk,1,0,0,0 diff --git a/legal_case_management/security/legal_case_management_groups.xml b/legal_case_management/security/legal_case_management_groups.xml new file mode 100644 index 000000000..f14dd124d --- /dev/null +++ b/legal_case_management/security/legal_case_management_groups.xml @@ -0,0 +1,26 @@ + + + + Case Management + Legal Case Management + 120 + + + + Clerk + + + + Lawyer + + + + + Admin + + + + diff --git a/legal_case_management/security/legal_case_management_security.xml b/legal_case_management/security/legal_case_management_security.xml new file mode 100644 index 000000000..7eb85c837 --- /dev/null +++ b/legal_case_management/security/legal_case_management_security.xml @@ -0,0 +1,66 @@ + + + + + + Legal Case: multi-company + + + ['|',('company_id','=',False),('company_id', 'in', company_ids)] + + + + + Admin All Case only view Rule + + [(1,'=',1)] + + + + + Own Case view Rule + + [('lawyer_id.user_id','=',user.id)] + + + + + + Admin All Evidence only view Rule + + [(1,'=',1)] + + + + + Own Evidence view Rule + + + [('case_id.lawyer_id.user_id','=',user.id)] + + + + + + Admin All Trial only view Rule + + [(1,'=',1)] + + + + + Own Trial view Rule + + + [('case_id.lawyer_id.user_id','=',user.id)] + + + + + diff --git a/legal_case_management/static/description/assets/h2.png b/legal_case_management/static/description/assets/h2.png new file mode 100644 index 000000000..0bfc4707d Binary files /dev/null and b/legal_case_management/static/description/assets/h2.png differ diff --git a/legal_case_management/static/description/assets/icons/arrows-repeat.svg b/legal_case_management/static/description/assets/icons/arrows-repeat.svg new file mode 100644 index 000000000..1d7efabc5 --- /dev/null +++ b/legal_case_management/static/description/assets/icons/arrows-repeat.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/legal_case_management/static/description/assets/icons/banner-1.png b/legal_case_management/static/description/assets/icons/banner-1.png new file mode 100644 index 000000000..c180db172 Binary files /dev/null and b/legal_case_management/static/description/assets/icons/banner-1.png differ diff --git a/legal_case_management/static/description/assets/icons/banner-2.svg b/legal_case_management/static/description/assets/icons/banner-2.svg new file mode 100644 index 000000000..e606d97d9 --- /dev/null +++ b/legal_case_management/static/description/assets/icons/banner-2.svg @@ -0,0 +1,73 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/legal_case_management/static/description/assets/icons/banner-bg.png b/legal_case_management/static/description/assets/icons/banner-bg.png new file mode 100644 index 000000000..a8238d3c0 Binary files /dev/null and b/legal_case_management/static/description/assets/icons/banner-bg.png differ diff --git a/legal_case_management/static/description/assets/icons/banner-bg.svg b/legal_case_management/static/description/assets/icons/banner-bg.svg new file mode 100644 index 000000000..b1378103e --- /dev/null +++ b/legal_case_management/static/description/assets/icons/banner-bg.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/legal_case_management/static/description/assets/icons/banner-call.svg b/legal_case_management/static/description/assets/icons/banner-call.svg new file mode 100644 index 000000000..96c687e81 --- /dev/null +++ b/legal_case_management/static/description/assets/icons/banner-call.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/legal_case_management/static/description/assets/icons/banner-mail.svg b/legal_case_management/static/description/assets/icons/banner-mail.svg new file mode 100644 index 000000000..cbf0d158d --- /dev/null +++ b/legal_case_management/static/description/assets/icons/banner-mail.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/legal_case_management/static/description/assets/icons/banner-pattern.svg b/legal_case_management/static/description/assets/icons/banner-pattern.svg new file mode 100644 index 000000000..9c1c7e101 --- /dev/null +++ b/legal_case_management/static/description/assets/icons/banner-pattern.svg @@ -0,0 +1,343 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/legal_case_management/static/description/assets/icons/banner-promo.svg b/legal_case_management/static/description/assets/icons/banner-promo.svg new file mode 100644 index 000000000..d52791b11 --- /dev/null +++ b/legal_case_management/static/description/assets/icons/banner-promo.svg @@ -0,0 +1,147 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/legal_case_management/static/description/assets/icons/brand-pair.svg b/legal_case_management/static/description/assets/icons/brand-pair.svg new file mode 100644 index 000000000..d8db7fc1e --- /dev/null +++ b/legal_case_management/static/description/assets/icons/brand-pair.svg @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/legal_case_management/static/description/assets/icons/capture (1).png b/legal_case_management/static/description/assets/icons/capture (1).png new file mode 100644 index 000000000..8824deafc Binary files /dev/null and b/legal_case_management/static/description/assets/icons/capture (1).png differ diff --git a/legal_case_management/static/description/assets/icons/check.png b/legal_case_management/static/description/assets/icons/check.png new file mode 100644 index 000000000..c8e85f51d Binary files /dev/null and b/legal_case_management/static/description/assets/icons/check.png differ diff --git a/legal_case_management/static/description/assets/icons/chevron.png b/legal_case_management/static/description/assets/icons/chevron.png new file mode 100644 index 000000000..2089293d6 Binary files /dev/null and b/legal_case_management/static/description/assets/icons/chevron.png differ diff --git a/legal_case_management/static/description/assets/icons/close-icon.svg b/legal_case_management/static/description/assets/icons/close-icon.svg new file mode 100644 index 000000000..df8cce37a --- /dev/null +++ b/legal_case_management/static/description/assets/icons/close-icon.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/legal_case_management/static/description/assets/icons/cogs.png b/legal_case_management/static/description/assets/icons/cogs.png new file mode 100644 index 000000000..95d0bad62 Binary files /dev/null and b/legal_case_management/static/description/assets/icons/cogs.png differ diff --git a/legal_case_management/static/description/assets/icons/collabarate-icon.svg b/legal_case_management/static/description/assets/icons/collabarate-icon.svg new file mode 100644 index 000000000..dd4e10518 --- /dev/null +++ b/legal_case_management/static/description/assets/icons/collabarate-icon.svg @@ -0,0 +1,3 @@ + + + diff --git a/legal_case_management/static/description/assets/icons/consultation.png b/legal_case_management/static/description/assets/icons/consultation.png new file mode 100644 index 000000000..8319d4baa Binary files /dev/null and b/legal_case_management/static/description/assets/icons/consultation.png differ diff --git a/legal_case_management/static/description/assets/icons/cybro-logo.png b/legal_case_management/static/description/assets/icons/cybro-logo.png new file mode 100644 index 000000000..ff4b78220 Binary files /dev/null and b/legal_case_management/static/description/assets/icons/cybro-logo.png differ diff --git a/legal_case_management/static/description/assets/icons/down.svg b/legal_case_management/static/description/assets/icons/down.svg new file mode 100644 index 000000000..f21c36271 --- /dev/null +++ b/legal_case_management/static/description/assets/icons/down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/legal_case_management/static/description/assets/icons/ecom-black.png b/legal_case_management/static/description/assets/icons/ecom-black.png new file mode 100644 index 000000000..a9385ff13 Binary files /dev/null and b/legal_case_management/static/description/assets/icons/ecom-black.png differ diff --git a/legal_case_management/static/description/assets/icons/education-black.png b/legal_case_management/static/description/assets/icons/education-black.png new file mode 100644 index 000000000..3eb09b27b Binary files /dev/null and b/legal_case_management/static/description/assets/icons/education-black.png differ diff --git a/legal_case_management/static/description/assets/icons/faq.png b/legal_case_management/static/description/assets/icons/faq.png new file mode 100644 index 000000000..4250b5b81 Binary files /dev/null and b/legal_case_management/static/description/assets/icons/faq.png differ diff --git a/legal_case_management/static/description/assets/icons/feature-icon.svg b/legal_case_management/static/description/assets/icons/feature-icon.svg new file mode 100644 index 000000000..fa0ea6850 --- /dev/null +++ b/legal_case_management/static/description/assets/icons/feature-icon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/legal_case_management/static/description/assets/icons/feature.png b/legal_case_management/static/description/assets/icons/feature.png new file mode 100644 index 000000000..ac7a785c0 Binary files /dev/null and b/legal_case_management/static/description/assets/icons/feature.png differ diff --git a/legal_case_management/static/description/assets/icons/gear.svg b/legal_case_management/static/description/assets/icons/gear.svg new file mode 100644 index 000000000..0cc66b6ea --- /dev/null +++ b/legal_case_management/static/description/assets/icons/gear.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/legal_case_management/static/description/assets/icons/hero.gif b/legal_case_management/static/description/assets/icons/hero.gif new file mode 100644 index 000000000..6325361d9 Binary files /dev/null and b/legal_case_management/static/description/assets/icons/hero.gif differ diff --git a/legal_case_management/static/description/assets/icons/hire-odoo.svg b/legal_case_management/static/description/assets/icons/hire-odoo.svg new file mode 100644 index 000000000..e1ac089b0 --- /dev/null +++ b/legal_case_management/static/description/assets/icons/hire-odoo.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/legal_case_management/static/description/assets/icons/hotel-black.png b/legal_case_management/static/description/assets/icons/hotel-black.png new file mode 100644 index 000000000..130f613be Binary files /dev/null and b/legal_case_management/static/description/assets/icons/hotel-black.png differ diff --git a/legal_case_management/static/description/assets/icons/img.png b/legal_case_management/static/description/assets/icons/img.png new file mode 100644 index 000000000..70197f477 Binary files /dev/null and b/legal_case_management/static/description/assets/icons/img.png differ diff --git a/legal_case_management/static/description/assets/icons/license.png b/legal_case_management/static/description/assets/icons/license.png new file mode 100644 index 000000000..a5869797e Binary files /dev/null and b/legal_case_management/static/description/assets/icons/license.png differ diff --git a/legal_case_management/static/description/assets/icons/life-ring-icon.svg b/legal_case_management/static/description/assets/icons/life-ring-icon.svg new file mode 100644 index 000000000..3ae6e1d89 --- /dev/null +++ b/legal_case_management/static/description/assets/icons/life-ring-icon.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/legal_case_management/static/description/assets/icons/lifebuoy.png b/legal_case_management/static/description/assets/icons/lifebuoy.png new file mode 100644 index 000000000..658d56ccc Binary files /dev/null and b/legal_case_management/static/description/assets/icons/lifebuoy.png differ diff --git a/legal_case_management/static/description/assets/icons/mail.svg b/legal_case_management/static/description/assets/icons/mail.svg new file mode 100644 index 000000000..1eedde695 --- /dev/null +++ b/legal_case_management/static/description/assets/icons/mail.svg @@ -0,0 +1,3 @@ + + + diff --git a/legal_case_management/static/description/assets/icons/manufacturing-black.png b/legal_case_management/static/description/assets/icons/manufacturing-black.png new file mode 100644 index 000000000..697eb0e9f Binary files /dev/null and b/legal_case_management/static/description/assets/icons/manufacturing-black.png differ diff --git a/legal_case_management/static/description/assets/icons/notes.png b/legal_case_management/static/description/assets/icons/notes.png new file mode 100644 index 000000000..ee5e95404 Binary files /dev/null and b/legal_case_management/static/description/assets/icons/notes.png differ diff --git a/legal_case_management/static/description/assets/icons/notification icon.svg b/legal_case_management/static/description/assets/icons/notification icon.svg new file mode 100644 index 000000000..053189973 --- /dev/null +++ b/legal_case_management/static/description/assets/icons/notification icon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/legal_case_management/static/description/assets/icons/odoo-consultancy.svg b/legal_case_management/static/description/assets/icons/odoo-consultancy.svg new file mode 100644 index 000000000..e05f65bde --- /dev/null +++ b/legal_case_management/static/description/assets/icons/odoo-consultancy.svg @@ -0,0 +1,4 @@ + + + + diff --git a/legal_case_management/static/description/assets/icons/odoo-licencing.svg b/legal_case_management/static/description/assets/icons/odoo-licencing.svg new file mode 100644 index 000000000..2606c88b0 --- /dev/null +++ b/legal_case_management/static/description/assets/icons/odoo-licencing.svg @@ -0,0 +1,3 @@ + + + diff --git a/legal_case_management/static/description/assets/icons/odoo-logo.png b/legal_case_management/static/description/assets/icons/odoo-logo.png new file mode 100644 index 000000000..0e4d0eb5a Binary files /dev/null and b/legal_case_management/static/description/assets/icons/odoo-logo.png differ diff --git a/legal_case_management/static/description/assets/icons/patter.svg b/legal_case_management/static/description/assets/icons/patter.svg new file mode 100644 index 000000000..25c9c0a8f --- /dev/null +++ b/legal_case_management/static/description/assets/icons/patter.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/legal_case_management/static/description/assets/icons/pattern1.png b/legal_case_management/static/description/assets/icons/pattern1.png new file mode 100644 index 000000000..09ab0fb2d Binary files /dev/null and b/legal_case_management/static/description/assets/icons/pattern1.png differ diff --git a/legal_case_management/static/description/assets/icons/photo-capture.png b/legal_case_management/static/description/assets/icons/photo-capture.png new file mode 100644 index 000000000..06c111758 Binary files /dev/null and b/legal_case_management/static/description/assets/icons/photo-capture.png differ diff --git a/legal_case_management/static/description/assets/icons/pos-black.png b/legal_case_management/static/description/assets/icons/pos-black.png new file mode 100644 index 000000000..97c0f90c1 Binary files /dev/null and b/legal_case_management/static/description/assets/icons/pos-black.png differ diff --git a/legal_case_management/static/description/assets/icons/puzzle-piece-icon.svg b/legal_case_management/static/description/assets/icons/puzzle-piece-icon.svg new file mode 100644 index 000000000..3e9ad9373 --- /dev/null +++ b/legal_case_management/static/description/assets/icons/puzzle-piece-icon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/legal_case_management/static/description/assets/icons/puzzle.png b/legal_case_management/static/description/assets/icons/puzzle.png new file mode 100644 index 000000000..65cf854e7 Binary files /dev/null and b/legal_case_management/static/description/assets/icons/puzzle.png differ diff --git a/legal_case_management/static/description/assets/icons/replace-icon.svg b/legal_case_management/static/description/assets/icons/replace-icon.svg new file mode 100644 index 000000000..d0e3a7af1 --- /dev/null +++ b/legal_case_management/static/description/assets/icons/replace-icon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/legal_case_management/static/description/assets/icons/restaurant-black.png b/legal_case_management/static/description/assets/icons/restaurant-black.png new file mode 100644 index 000000000..4a35eb939 Binary files /dev/null and b/legal_case_management/static/description/assets/icons/restaurant-black.png differ diff --git a/legal_case_management/static/description/assets/icons/screenshot-main.png b/legal_case_management/static/description/assets/icons/screenshot-main.png new file mode 100644 index 000000000..575f8e676 Binary files /dev/null and b/legal_case_management/static/description/assets/icons/screenshot-main.png differ diff --git a/legal_case_management/static/description/assets/icons/screenshot.png b/legal_case_management/static/description/assets/icons/screenshot.png new file mode 100644 index 000000000..cef272529 Binary files /dev/null and b/legal_case_management/static/description/assets/icons/screenshot.png differ diff --git a/legal_case_management/static/description/assets/icons/service-black.png b/legal_case_management/static/description/assets/icons/service-black.png new file mode 100644 index 000000000..301ab51cb Binary files /dev/null and b/legal_case_management/static/description/assets/icons/service-black.png differ diff --git a/legal_case_management/static/description/assets/icons/skype-fill.svg b/legal_case_management/static/description/assets/icons/skype-fill.svg new file mode 100644 index 000000000..c17423639 --- /dev/null +++ b/legal_case_management/static/description/assets/icons/skype-fill.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/legal_case_management/static/description/assets/icons/skype.png b/legal_case_management/static/description/assets/icons/skype.png new file mode 100644 index 000000000..51b409fb3 Binary files /dev/null and b/legal_case_management/static/description/assets/icons/skype.png differ diff --git a/legal_case_management/static/description/assets/icons/skype.svg b/legal_case_management/static/description/assets/icons/skype.svg new file mode 100644 index 000000000..df3dad39b --- /dev/null +++ b/legal_case_management/static/description/assets/icons/skype.svg @@ -0,0 +1,3 @@ + + + diff --git a/legal_case_management/static/description/assets/icons/star-1.svg b/legal_case_management/static/description/assets/icons/star-1.svg new file mode 100644 index 000000000..7e55ab162 --- /dev/null +++ b/legal_case_management/static/description/assets/icons/star-1.svg @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/legal_case_management/static/description/assets/icons/star-2.svg b/legal_case_management/static/description/assets/icons/star-2.svg new file mode 100644 index 000000000..5ae9f507a --- /dev/null +++ b/legal_case_management/static/description/assets/icons/star-2.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/legal_case_management/static/description/assets/icons/support.png b/legal_case_management/static/description/assets/icons/support.png new file mode 100644 index 000000000..4f18b8b82 Binary files /dev/null and b/legal_case_management/static/description/assets/icons/support.png differ diff --git a/legal_case_management/static/description/assets/icons/test-1 - Copy.png b/legal_case_management/static/description/assets/icons/test-1 - Copy.png new file mode 100644 index 000000000..f6a902663 Binary files /dev/null and b/legal_case_management/static/description/assets/icons/test-1 - Copy.png differ diff --git a/legal_case_management/static/description/assets/icons/test-1.png b/legal_case_management/static/description/assets/icons/test-1.png new file mode 100644 index 000000000..0908add2b Binary files /dev/null and b/legal_case_management/static/description/assets/icons/test-1.png differ diff --git a/legal_case_management/static/description/assets/icons/test-2.png b/legal_case_management/static/description/assets/icons/test-2.png new file mode 100644 index 000000000..4671fe91e Binary files /dev/null and b/legal_case_management/static/description/assets/icons/test-2.png differ diff --git a/legal_case_management/static/description/assets/icons/trading-black.png b/legal_case_management/static/description/assets/icons/trading-black.png new file mode 100644 index 000000000..9398ba2f1 Binary files /dev/null and b/legal_case_management/static/description/assets/icons/trading-black.png differ diff --git a/legal_case_management/static/description/assets/icons/training.png b/legal_case_management/static/description/assets/icons/training.png new file mode 100644 index 000000000..884ca024d Binary files /dev/null and b/legal_case_management/static/description/assets/icons/training.png differ diff --git a/legal_case_management/static/description/assets/icons/translate.svg b/legal_case_management/static/description/assets/icons/translate.svg new file mode 100644 index 000000000..af9c8a1aa --- /dev/null +++ b/legal_case_management/static/description/assets/icons/translate.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/legal_case_management/static/description/assets/icons/update.png b/legal_case_management/static/description/assets/icons/update.png new file mode 100644 index 000000000..ecbc5a01a Binary files /dev/null and b/legal_case_management/static/description/assets/icons/update.png differ diff --git a/legal_case_management/static/description/assets/icons/user.png b/legal_case_management/static/description/assets/icons/user.png new file mode 100644 index 000000000..6ffb23d9f Binary files /dev/null and b/legal_case_management/static/description/assets/icons/user.png differ diff --git a/legal_case_management/static/description/assets/icons/video.png b/legal_case_management/static/description/assets/icons/video.png new file mode 100644 index 000000000..576705b17 Binary files /dev/null and b/legal_case_management/static/description/assets/icons/video.png differ diff --git a/legal_case_management/static/description/assets/icons/whatsapp.png b/legal_case_management/static/description/assets/icons/whatsapp.png new file mode 100644 index 000000000..d513a5356 Binary files /dev/null and b/legal_case_management/static/description/assets/icons/whatsapp.png differ diff --git a/legal_case_management/static/description/assets/icons/wrench-icon.svg b/legal_case_management/static/description/assets/icons/wrench-icon.svg new file mode 100644 index 000000000..174b5a465 --- /dev/null +++ b/legal_case_management/static/description/assets/icons/wrench-icon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/legal_case_management/static/description/assets/icons/wrench.png b/legal_case_management/static/description/assets/icons/wrench.png new file mode 100644 index 000000000..6c04dea0f Binary files /dev/null and b/legal_case_management/static/description/assets/icons/wrench.png differ diff --git a/legal_case_management/static/description/assets/misc/Cybrosys R.png b/legal_case_management/static/description/assets/misc/Cybrosys R.png new file mode 100644 index 000000000..da4058087 Binary files /dev/null and b/legal_case_management/static/description/assets/misc/Cybrosys R.png differ diff --git a/legal_case_management/static/description/assets/misc/categories.png b/legal_case_management/static/description/assets/misc/categories.png new file mode 100644 index 000000000..bedf1e0b1 Binary files /dev/null and b/legal_case_management/static/description/assets/misc/categories.png differ diff --git a/legal_case_management/static/description/assets/misc/check-box.png b/legal_case_management/static/description/assets/misc/check-box.png new file mode 100644 index 000000000..42caf24b9 Binary files /dev/null and b/legal_case_management/static/description/assets/misc/check-box.png differ diff --git a/legal_case_management/static/description/assets/misc/compass.png b/legal_case_management/static/description/assets/misc/compass.png new file mode 100644 index 000000000..d5fed8faa Binary files /dev/null and b/legal_case_management/static/description/assets/misc/compass.png differ diff --git a/legal_case_management/static/description/assets/misc/corporate.png b/legal_case_management/static/description/assets/misc/corporate.png new file mode 100644 index 000000000..2eb13edbf Binary files /dev/null and b/legal_case_management/static/description/assets/misc/corporate.png differ diff --git a/legal_case_management/static/description/assets/misc/customer-support.png b/legal_case_management/static/description/assets/misc/customer-support.png new file mode 100644 index 000000000..79efc72ed Binary files /dev/null and b/legal_case_management/static/description/assets/misc/customer-support.png differ diff --git a/legal_case_management/static/description/assets/misc/cybrosys-logo.png b/legal_case_management/static/description/assets/misc/cybrosys-logo.png new file mode 100644 index 000000000..cc3cc0ccf Binary files /dev/null and b/legal_case_management/static/description/assets/misc/cybrosys-logo.png differ diff --git a/legal_case_management/static/description/assets/misc/email.svg b/legal_case_management/static/description/assets/misc/email.svg new file mode 100644 index 000000000..15291cdc3 --- /dev/null +++ b/legal_case_management/static/description/assets/misc/email.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/legal_case_management/static/description/assets/misc/features.png b/legal_case_management/static/description/assets/misc/features.png new file mode 100644 index 000000000..b41769f77 Binary files /dev/null and b/legal_case_management/static/description/assets/misc/features.png differ diff --git a/legal_case_management/static/description/assets/misc/logo.png b/legal_case_management/static/description/assets/misc/logo.png new file mode 100644 index 000000000..478462d3e Binary files /dev/null and b/legal_case_management/static/description/assets/misc/logo.png differ diff --git a/legal_case_management/static/description/assets/misc/phone.svg b/legal_case_management/static/description/assets/misc/phone.svg new file mode 100644 index 000000000..b7bd7f251 --- /dev/null +++ b/legal_case_management/static/description/assets/misc/phone.svg @@ -0,0 +1,3 @@ + + + diff --git a/legal_case_management/static/description/assets/misc/pictures.png b/legal_case_management/static/description/assets/misc/pictures.png new file mode 100644 index 000000000..56d255fe9 Binary files /dev/null and b/legal_case_management/static/description/assets/misc/pictures.png differ diff --git a/legal_case_management/static/description/assets/misc/pie-chart.png b/legal_case_management/static/description/assets/misc/pie-chart.png new file mode 100644 index 000000000..426e05244 Binary files /dev/null and b/legal_case_management/static/description/assets/misc/pie-chart.png differ diff --git a/legal_case_management/static/description/assets/misc/right-arrow.png b/legal_case_management/static/description/assets/misc/right-arrow.png new file mode 100644 index 000000000..730984a06 Binary files /dev/null and b/legal_case_management/static/description/assets/misc/right-arrow.png differ diff --git a/legal_case_management/static/description/assets/misc/star (1) 2.svg b/legal_case_management/static/description/assets/misc/star (1) 2.svg new file mode 100644 index 000000000..5ae9f507a --- /dev/null +++ b/legal_case_management/static/description/assets/misc/star (1) 2.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/legal_case_management/static/description/assets/misc/star.png b/legal_case_management/static/description/assets/misc/star.png new file mode 100644 index 000000000..2eb9ab29f Binary files /dev/null and b/legal_case_management/static/description/assets/misc/star.png differ diff --git a/legal_case_management/static/description/assets/misc/support (1) 1.svg b/legal_case_management/static/description/assets/misc/support (1) 1.svg new file mode 100644 index 000000000..7d37a8f30 --- /dev/null +++ b/legal_case_management/static/description/assets/misc/support (1) 1.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/legal_case_management/static/description/assets/misc/support-email.svg b/legal_case_management/static/description/assets/misc/support-email.svg new file mode 100644 index 000000000..eb70370d6 --- /dev/null +++ b/legal_case_management/static/description/assets/misc/support-email.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/legal_case_management/static/description/assets/misc/support.png b/legal_case_management/static/description/assets/misc/support.png new file mode 100644 index 000000000..4f18b8b82 Binary files /dev/null and b/legal_case_management/static/description/assets/misc/support.png differ diff --git a/legal_case_management/static/description/assets/misc/tick-mark.svg b/legal_case_management/static/description/assets/misc/tick-mark.svg new file mode 100644 index 000000000..2dbb40187 --- /dev/null +++ b/legal_case_management/static/description/assets/misc/tick-mark.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/legal_case_management/static/description/assets/misc/whatsapp 1.svg b/legal_case_management/static/description/assets/misc/whatsapp 1.svg new file mode 100644 index 000000000..0bfaf8fc6 --- /dev/null +++ b/legal_case_management/static/description/assets/misc/whatsapp 1.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/legal_case_management/static/description/assets/misc/whatsapp.png b/legal_case_management/static/description/assets/misc/whatsapp.png new file mode 100644 index 000000000..d513a5356 Binary files /dev/null and b/legal_case_management/static/description/assets/misc/whatsapp.png differ diff --git a/legal_case_management/static/description/assets/misc/whatsapp.svg b/legal_case_management/static/description/assets/misc/whatsapp.svg new file mode 100644 index 000000000..b618aea1d --- /dev/null +++ b/legal_case_management/static/description/assets/misc/whatsapp.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/legal_case_management/static/description/assets/modules/courier_management.jpg b/legal_case_management/static/description/assets/modules/courier_management.jpg new file mode 100644 index 000000000..3e4a22c32 Binary files /dev/null and b/legal_case_management/static/description/assets/modules/courier_management.jpg differ diff --git a/legal_case_management/static/description/assets/modules/cw_sale.png b/legal_case_management/static/description/assets/modules/cw_sale.png new file mode 100644 index 000000000..1b75c62d5 Binary files /dev/null and b/legal_case_management/static/description/assets/modules/cw_sale.png differ diff --git a/legal_case_management/static/description/assets/modules/cw_stock.png b/legal_case_management/static/description/assets/modules/cw_stock.png new file mode 100644 index 000000000..62af09ec6 Binary files /dev/null and b/legal_case_management/static/description/assets/modules/cw_stock.png differ diff --git a/legal_case_management/static/description/assets/modules/delivery_split.jpg b/legal_case_management/static/description/assets/modules/delivery_split.jpg new file mode 100644 index 000000000..76724ebda Binary files /dev/null and b/legal_case_management/static/description/assets/modules/delivery_split.jpg differ diff --git a/legal_case_management/static/description/assets/modules/multi_product_return_from_website.jpg b/legal_case_management/static/description/assets/modules/multi_product_return_from_website.jpg new file mode 100644 index 000000000..7f2cc2ab5 Binary files /dev/null and b/legal_case_management/static/description/assets/modules/multi_product_return_from_website.jpg differ diff --git a/legal_case_management/static/description/assets/modules/purchase_history_of_product.jpg b/legal_case_management/static/description/assets/modules/purchase_history_of_product.jpg new file mode 100644 index 000000000..dab7b184c Binary files /dev/null and b/legal_case_management/static/description/assets/modules/purchase_history_of_product.jpg differ diff --git a/legal_case_management/static/description/assets/screenshots/10.png b/legal_case_management/static/description/assets/screenshots/10.png new file mode 100644 index 000000000..c575069b1 Binary files /dev/null and b/legal_case_management/static/description/assets/screenshots/10.png differ diff --git a/legal_case_management/static/description/assets/screenshots/11.png b/legal_case_management/static/description/assets/screenshots/11.png new file mode 100644 index 000000000..b1fc1b585 Binary files /dev/null and b/legal_case_management/static/description/assets/screenshots/11.png differ diff --git a/legal_case_management/static/description/assets/screenshots/hero.gif b/legal_case_management/static/description/assets/screenshots/hero.gif new file mode 100644 index 000000000..6d1e53111 Binary files /dev/null and b/legal_case_management/static/description/assets/screenshots/hero.gif differ diff --git a/legal_case_management/static/description/assets/screenshots/legal_case_management_01.png b/legal_case_management/static/description/assets/screenshots/legal_case_management_01.png new file mode 100644 index 000000000..2a27095c4 Binary files /dev/null and b/legal_case_management/static/description/assets/screenshots/legal_case_management_01.png differ diff --git a/legal_case_management/static/description/assets/screenshots/legal_case_management_02.png b/legal_case_management/static/description/assets/screenshots/legal_case_management_02.png new file mode 100644 index 000000000..3d361d4cc Binary files /dev/null and b/legal_case_management/static/description/assets/screenshots/legal_case_management_02.png differ diff --git a/legal_case_management/static/description/assets/screenshots/legal_case_management_03.png b/legal_case_management/static/description/assets/screenshots/legal_case_management_03.png new file mode 100644 index 000000000..9ee1a5cc9 Binary files /dev/null and b/legal_case_management/static/description/assets/screenshots/legal_case_management_03.png differ diff --git a/legal_case_management/static/description/assets/screenshots/legal_case_management_04.png b/legal_case_management/static/description/assets/screenshots/legal_case_management_04.png new file mode 100644 index 000000000..30c18f040 Binary files /dev/null and b/legal_case_management/static/description/assets/screenshots/legal_case_management_04.png differ diff --git a/legal_case_management/static/description/assets/screenshots/legal_case_management_05.png b/legal_case_management/static/description/assets/screenshots/legal_case_management_05.png new file mode 100644 index 000000000..309d2241e Binary files /dev/null and b/legal_case_management/static/description/assets/screenshots/legal_case_management_05.png differ diff --git a/legal_case_management/static/description/assets/screenshots/legal_case_management_06.png b/legal_case_management/static/description/assets/screenshots/legal_case_management_06.png new file mode 100644 index 000000000..fa9c10a15 Binary files /dev/null and b/legal_case_management/static/description/assets/screenshots/legal_case_management_06.png differ diff --git a/legal_case_management/static/description/assets/screenshots/legal_case_management_07.png b/legal_case_management/static/description/assets/screenshots/legal_case_management_07.png new file mode 100644 index 000000000..5820228d8 Binary files /dev/null and b/legal_case_management/static/description/assets/screenshots/legal_case_management_07.png differ diff --git a/legal_case_management/static/description/assets/screenshots/legal_case_management_08.png b/legal_case_management/static/description/assets/screenshots/legal_case_management_08.png new file mode 100644 index 000000000..cf0c34210 Binary files /dev/null and b/legal_case_management/static/description/assets/screenshots/legal_case_management_08.png differ diff --git a/legal_case_management/static/description/assets/screenshots/legal_case_management_09.png b/legal_case_management/static/description/assets/screenshots/legal_case_management_09.png new file mode 100644 index 000000000..6e08c382b Binary files /dev/null and b/legal_case_management/static/description/assets/screenshots/legal_case_management_09.png differ diff --git a/legal_case_management/static/description/assets/y18.jpg b/legal_case_management/static/description/assets/y18.jpg new file mode 100644 index 000000000..eea1714f2 Binary files /dev/null and b/legal_case_management/static/description/assets/y18.jpg differ diff --git a/legal_case_management/static/description/banner.jpg b/legal_case_management/static/description/banner.jpg new file mode 100644 index 000000000..9ed781988 Binary files /dev/null and b/legal_case_management/static/description/banner.jpg differ diff --git a/legal_case_management/static/description/case-round-svgrepo-com.svg b/legal_case_management/static/description/case-round-svgrepo-com.svg new file mode 100644 index 000000000..01bed8b82 --- /dev/null +++ b/legal_case_management/static/description/case-round-svgrepo-com.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/legal_case_management/static/description/icon.png b/legal_case_management/static/description/icon.png new file mode 100644 index 000000000..09315f69c Binary files /dev/null and b/legal_case_management/static/description/icon.png differ diff --git a/legal_case_management/static/description/index.html b/legal_case_management/static/description/index.html new file mode 100644 index 000000000..aa632e909 --- /dev/null +++ b/legal_case_management/static/description/index.html @@ -0,0 +1,1368 @@ + + + + + + Legal Case Management + + + + + + + + + + +
+
+ + + +
+
+ Community +
+
+ Enterprise +
+
+
+ +
+
+
+
+

+ This Module Helps To Manage A Legal Case + Management Firm. +

+

+ Legal Case Management +

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

+ Key Highlights

+
+
+
+
+ +
+
+ Access Rights +
+

+ Set different access rights for the module. +

+
+
+
+
+
+ +
+
+ Create Invoices +
+

+ You Can Create Invoices For Different + Payment Methods. +

+
+
+
+
+
+ +
+
+ Junior Lawyers +
+

+ If The Lawyer Is Busy With Other Case, User + Can Assign Junior Lawyers For Particular + Case. +

+
+
+
+
+ +
+
+
+ LEGAL CASE MANAGEMENT +

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

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

+ Different access rights for + + admin,lawyer and clerk +

+
+
+

+ Go to Settings -> Users -> You + can select different access + rights for users. +

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

+ Create Lawyers and set + + wages for case and trial +

+
+
+

+ From 'Legal Case Management --> + Master Data --> Lawyers' cwn can + create lawyers and set wages for + case and tria. +

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

+ Case registration + + Form View +

+
+
+

+ You can register case with + giving following details. +

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

+ Adding Evidence ,Trial and attachment for + + corresponding cases +

+
+
+

+ By clicking the button we can + add the evidence, trail and + attachments and can see the + smart button for that. +

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

+ Invoicing For trial, case, out of court and + + full settlement +

+
+
+

+ Select the payment method of + case. +

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

+ Create + + Invoice +

+
+
+

+ Create Invoice for corresponding + payment method. +

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

+ Assign + + junior lawyer +

+
+
+

+ If the lawyers are busy with + other cases, user can assign + junior lawyer +

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

+ Case registration + + through portal +

+
+
+

+ Users can register the case + through the portal. +

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

+ Case Details + + + in portal +

+
+
+

+ Portal users can see the + corresponding case details. +

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

+ Reports For + + + Evidence +

+
+
+

+ User can print the evidence + report. +

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

+ Reports For + + + Case Progress +

+
+
+

+ User can print the case report. +

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

+ Different access rights for + admin,lawyer and clerk.

+
+ +
+
+
+
+
+
+ +
+

+ Creation of lawyers and their + wages for trial and case.

+
+ +
+
+
+
+
+
+ +
+

+ Case registration through + form.

+
+
+
+
+
+
+
+ +
+

+ Adding Evidence ,Trial and + attachment for corresponding + cases.

+
+
+
+
+
+
+
+ +
+

+ Invoicing For trial, case, out + of court and full + settlement.

+
+
+
+
+
+
+
+ +
+

+ If the lawyers are busy with + other cases, user can assign + junior lawyers.

+
+
+
+
+
+
+
+ +
+

+ Case registration through + portal.

+
+
+
+
+
+
+
+ +
+

+ Portal users can see the + corresponding case details.

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

+ The Legal Case + Management module, + is + designed to assist + legal firms in + managing their + operations + efficiently. It + offers + functionalities such + as case + registration, + evidence and trial + management, + invoicing, and + role-based access + control. +

+
+
+ +
+ +
+

+ Per Trial: Generate + invoices for each + trial session.
+ Per Case: Invoice + clients based on the + entire case.
+ Out-of-Court + Settlement: Handle + invoicing for cases + resolved outside the + courtroom.
+ Full Settlement: + Manage invoices for + cases that have + reached a complete + resolution. +

+
+
+ +
+ +
+

+ Goto Legal case + management --> + Master Data --> + Lawyers. You can + create lawyer and + set the wages under + lawyer tab. +

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

+ Latest Release 18.0.1.0.0 +

+ + 28th February, 2025 + +
+
+
+
+
+ Add +
+
+
+
    +
  • + Initial Commit +
  • + +
+
+
+
+
+
+
+
+
+
+ + +
+

+ Related Products +

+ +
+ + + +
+

+ Our Services

+ +
+ +
+
+ .... +
+
+ +
+ + +
+
+ + + + + + diff --git a/legal_case_management/views/account_move_views.xml b/legal_case_management/views/account_move_views.xml new file mode 100644 index 000000000..564d05cc5 --- /dev/null +++ b/legal_case_management/views/account_move_views.xml @@ -0,0 +1,15 @@ + + + + + account.move.view.form.inherit.legal.case.management + account.move + + + + + + + + diff --git a/legal_case_management/views/case_category_views.xml b/legal_case_management/views/case_category_views.xml new file mode 100644 index 000000000..1e720e350 --- /dev/null +++ b/legal_case_management/views/case_category_views.xml @@ -0,0 +1,13 @@ + + + + + case.category.view.list + case.category + + + + + + + diff --git a/legal_case_management/views/case_register_portal_template.xml b/legal_case_management/views/case_register_portal_template.xml new file mode 100644 index 000000000..b1880ed64 --- /dev/null +++ b/legal_case_management/views/case_register_portal_template.xml @@ -0,0 +1,137 @@ + + + + + + + diff --git a/legal_case_management/views/case_register_template.xml b/legal_case_management/views/case_register_template.xml new file mode 100644 index 000000000..490fb182d --- /dev/null +++ b/legal_case_management/views/case_register_template.xml @@ -0,0 +1,141 @@ + + + +