Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
212 changes: 212 additions & 0 deletions spp_change_request_base/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,212 @@
==================================
OpenSPP Change Request Base Module
==================================

..
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:1e316e13702e35173f9cda2f8c27dbe9ec3a17b54fb3ab7ba11acc2c7a93d561
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

.. |badge1| image:: https://img.shields.io/badge/maturity-Alpha-red.png
:target: https://odoo-community.org/page/development-status
:alt: Alpha
.. |badge2| image:: https://img.shields.io/badge/licence-LGPL--3-blue.png
:target: http://www.gnu.org/licenses/lgpl-3.0-standalone.html
:alt: License: LGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OpenSPP%2Fopenspp--modules-lightgray.png?logo=github
:target: https://github.com/OpenSPP/openspp-modules/tree/17.0/spp_change_request
:alt: OpenSPP/openspp-modules

|badge1| |badge2| |badge3|

OpenSPP Change Request
======================

Overview
--------

The OpenSPP Change Request (`spp_change_request <spp_change_request>`__)
module streamlines the process of handling changes to registrant
information within the OpenSPP system. It provides a structured
framework for submitting, reviewing, approving, and applying
modifications to existing registrant data.

Purpose
-------

The module aims to:

- **Formalize Change Requests**: Introduce a standardized procedure for
requesting alterations to registrant data, ensuring all changes are
documented and tracked.
- **Implement a Multi-Step Approval Process**: Establish a configurable
workflow for validating and authorizing change requests, involving
different user roles and levels of approval.
- **Maintain Data Integrity**: Safeguard the accuracy and consistency
of registrant information by requiring proper justification and
authorization for any modifications.
- **Enhance Transparency and Accountability**: Provide a clear audit
trail of all change requests, approvals, and applications, promoting
transparency and accountability in data management.

Module Dependencies and Integration
-----------------------------------

The `spp_change_request <spp_change_request>`__ module leverages and
extends the functionality of several other OpenSPP modules:

1. **G2P Registry Modules**: It heavily relies on the G2P Registry
modules for accessing and modifying registrant data:

- **G2P Registry: Base
(**\ `g2p_registry_base <g2p_registry_base>`__\ **)**: Inherits
core registrant management features, including the ``res.partner``
model used to represent registrants.
- **G2P Registry: Individual
(**\ `g2p_registry_individual <g2p_registry_individual>`__\ **)**:
Integrates with the individual registrant model to handle change
requests related to individual data.
- **G2P Registry: Group
(**\ `g2p_registry_group <g2p_registry_group>`__\ **)**: Extends
group registrant functionality to manage changes related to group
information.
- **G2P Registry: Membership
(**\ `g2p_registry_membership <g2p_registry_membership>`__\ **)**:
Allows for change requests involving membership details, such as
adding or removing members from groups.

2. **OpenSPP Service Points
(**\ `spp_service_points <spp_service_points>`__\ **)**: Integrates
with the Service Points module to enable the submission of change
requests through designated service points.

3. **OpenSPP Area (**\ `spp_area <spp_area>`__\ **)**: Utilizes the Area
module to manage change requests related to a registrant's
geographical location, such as changes in address or district.

4. **OpenSPP Scan ID Document
(**\ `spp_scan_id_document <spp_scan_id_document>`__\ **)**:
Integrates with the ID scanning functionality to allow for the
capture and association of scanned documents as supporting evidence
for change requests.

5. **OpenSPP DMS (**\ `spp_dms <spp_dms>`__\ **)**: Leverages the
Document Management System for storing and managing documents related
to change requests, such as proof of identity, address verification,
or other supporting materials.

6. **Phone Validation (``phone_validation``)**: Utilizes the phone
validation module to ensure phone number updates within change
requests adhere to proper formatting and validation rules.

Additional Functionality
------------------------

Change Request Management
-------------------------

- **Change Request Model (``spp.change.request``)**: A central model
for tracking all change requests, storing details like request type,
status, applicant, assigned personnel, approval history, and related
documents.
- **Configurable Workflow**: Supports customizable multi-stage approval
processes, allowing administrators to define the required steps and
user roles involved in validating change requests.
- **Status Tracking**: Monitors the progress of change requests through
various states (Draft, Pending Validation, Validated, Applied,
Rejected, Cancelled), providing real-time visibility into the
process.
- **Audit Trail**: Maintains a comprehensive history of all actions
related to a change request, including submission, validation,
approvals, rejections, and application, ensuring accountability and
transparency.

Integration with Registrant Data
--------------------------------

- **Dynamic Form Generation**: The module allows for defining different
change request types, each associated with a specific form that
captures the necessary data for that type of modification.
- **Data Validation**: Implements validation rules to ensure the data
entered in change request forms meet specific criteria, such as data
type, format, or range, before submission for approval.
- **Automatic Data Update**: Upon approval and application of a change
request, the module automatically updates the corresponding
registrant data in the relevant G2P Registry module, ensuring data
consistency.

User Interface and Experience
-----------------------------

- **Dedicated Change Request Menu**: Provides a centralized location
within the OpenSPP interface for accessing and managing change
requests.
- **User-Friendly Forms**: Offers intuitive and easy-to-use forms for
submitting different types of change requests, guiding users through
the required information.
- **Role-Based Access Control**: Restricts access to change request
functionalities based on user roles and permissions, ensuring data
security and appropriate authorization levels.

Conclusion
----------

The OpenSPP Change Request module significantly strengthens the data
management capabilities of OpenSPP by introducing a structured and
controlled mechanism for handling modifications to registrant
information. By integrating with various core modules, the
`spp_change_request <spp_change_request>`__ module promotes data
integrity, transparency, and accountability throughout the change
management process.

.. IMPORTANT::
This is an alpha version, the data model and design can change at any time without warning.
Only for development or testing purpose, do not use in production.
`More details on development status <https://odoo-community.org/page/development-status>`_

**Table of contents**

.. contents::
:local:

Bug Tracker
===========

Bugs are tracked on `GitHub Issues <https://github.com/OpenSPP/openspp-modules/issues>`_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us to smash it by providing a detailed and welcomed
`feedback <https://github.com/OpenSPP/openspp-modules/issues/new?body=module:%20spp_change_request%0Aversion:%2017.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.

Do not contact contributors directly about support or help with technical issues.

Credits
=======

Authors
-------

* OpenSPP.org

Maintainers
-----------

.. |maintainer-jeremi| image:: https://github.com/jeremi.png?size=40px
:target: https://github.com/jeremi
:alt: jeremi
.. |maintainer-gonzalesedwin1123| image:: https://github.com/gonzalesedwin1123.png?size=40px
:target: https://github.com/gonzalesedwin1123
:alt: gonzalesedwin1123
.. |maintainer-reichie020212| image:: https://github.com/reichie020212.png?size=40px
:target: https://github.com/reichie020212
:alt: reichie020212

Current maintainers:

|maintainer-jeremi| |maintainer-gonzalesedwin1123| |maintainer-reichie020212|

This module is part of the `OpenSPP/openspp-modules <https://github.com/OpenSPP/openspp-modules/tree/17.0/spp_change_request>`_ project on GitHub.

You are welcome to contribute.
4 changes: 4 additions & 0 deletions spp_change_request_base/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# Part of OpenSPP. See LICENSE file for full copyright and licensing details.

from . import models
from . import wizard
43 changes: 43 additions & 0 deletions spp_change_request_base/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# Part of OpenSPP. See LICENSE file for full copyright and licensing details.
{
"name": "OpenSPP Change Request Base",
"summary": "Streamlines the process of handling changes to registrant information within the OpenSPP system, providing a structured framework for submitting, reviewing, approving, and applying modifications.",
"category": "OpenSPP",
"version": "17.0.1.3.0",
"sequence": 1,
"author": "OpenSPP.org",
"website": "https://github.com/OpenSPP/openspp-modules",
"license": "LGPL-3",
"development_status": "Production/Stable",
"maintainers": ["jeremi", "gonzalesedwin1123"],
"external_dependencies": {},
"depends": [
"base",
"spp_dms",
],
"data": [
"security/ir.model.access.csv",
"security/change_request_security.xml",
"data/sequences.xml",
"data/mail_activity.xml",
"wizard/confirm_user_assignment_view.xml",
"wizard/reject_change_request_view.xml",
"wizard/cancel_change_request_view.xml",
"views/main_view.xml",
"views/change_request_validation_sequence_view.xml",
"views/dms_file_view.xml",
],
"assets": {
"web.assets_backend": [
"spp_change_request_base/static/src/scss/change_request.scss",
],
"web.assets_qweb": {
"/spp_change_request_base/static/src/xml/dms_preview_widget.xml",
},
},
"demo": [],
"images": [],
"application": True,
"installable": True,
"auto_install": False,
}
49 changes: 49 additions & 0 deletions spp_change_request_base/data/mail_activity.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
<?xml version="1.0" encoding="utf-8" ?>
<!--
Part of OpenSPP. See LICENSE file for full copyright and licensing details.
-->
<odoo noupdate="0">

<record id="pending_validation_activity" model="mail.activity.type">
<field name="name">Change Request Pending Validation</field>
<field name="res_model">spp.change.request</field>
<field name="icon">fa-clock-o</field>
<field name="delay_count">0</field>
</record>

<record id="validation_activity" model="mail.activity.type">
<field name="name">Change Request For Validation</field>
<field name="res_model">spp.change.request</field>
<field name="icon">fa-list</field>
<field name="delay_count">0</field>
</record>

<record id="apply_changes_activity" model="mail.activity.type">
<field name="name">Apply Change Request</field>
<field name="res_model">spp.change.request</field>
<field name="icon">fa-floppy-o</field>
<field name="delay_count">0</field>
</record>

<record id="reject_activity" model="mail.activity.type">
<field name="name">Reject Change Request</field>
<field name="res_model">spp.change.request</field>
<field name="icon">fa-thumbs-down</field>
<field name="delay_count">0</field>
</record>

<record id="cancel_activity" model="mail.activity.type">
<field name="name">Cancel Request</field>
<field name="res_model">spp.change.request</field>
<field name="icon">fa-ban</field>
<field name="delay_count">0</field>
</record>

<record id="reset_draft_activity" model="mail.activity.type">
<field name="name">Change Request Reset to Draft</field>
<field name="res_model">spp.change.request</field>
<field name="icon">fa-undo</field>
<field name="delay_count">0</field>
</record>

</odoo>
17 changes: 17 additions & 0 deletions spp_change_request_base/data/sequences.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8" ?>
<!--
Part of OpenSPP. See LICENSE file for full copyright and licensing details.
-->
<odoo noupdate="1">
<record id="spp_change_request_num" model="ir.sequence">
<field name="name">Change Request Number</field>
<field name="code">spp.change.request.num</field>
<field name="implementation">no_gap</field>
<field name="padding">6</field>
<field eval="1" name="number_next" />
<field eval="1" name="number_increment" />
<field name="prefix">CR-%(range_year)s-</field>
<field eval="True" name="use_date_range" />
<field name="company_id" eval="False" />
</record>
</odoo>
Loading
Loading