A comprehensive Odoo module for managing digital consent forms with signature capture, PDF generation, and portal access capabilities.
- Overview
- Features
- Screenshots
- Requirements
- Installation
- Usage
- API Documentation
- Development
- Contributing
- License
- Support
The Consent Management System is a powerful Odoo module designed to streamline the process of creating, managing, and tracking digital consent forms. It provides a complete solution for organizations that need to collect and manage user consent in a compliant and efficient manner.
- Digital Signature Capture: Secure electronic signature collection
- PDF Generation: Automatic PDF creation with professional formatting
- Portal Access: Customer self-service portal for form completion
- Template Management: Reusable consent form templates
- Status Tracking: Real-time status monitoring of consent forms
- Compliance Ready: Built with data protection regulations in mind
- Consent Form Creation: Create and manage consent forms with customizable templates
- Digital Signatures: Capture and store electronic signatures securely
- PDF Reports: Generate professional PDF reports with company branding
- Portal Integration: Customer-facing portal for form completion
- Status Management: Track form status (Draft, To Sign, Signed)
- Template System: Reusable templates with dynamic content replacement
- Company Branding: Customizable headers with company logos
- Dynamic Content: Template variables for personalized forms
- Email Integration: Automated email notifications
- Activity Tracking: Full audit trail with chatter functionality
- Multi-company Support: Works across multiple companies
- Responsive Design: Mobile-friendly portal interface
- Access Control: Role-based permissions and access rights
- Data Encryption: Secure storage of sensitive information
- Audit Trail: Complete logging of all activities
- CSRF Protection: Built-in security against cross-site request forgery
- Python: 3.8 or later
- Odoo: 16.0 or later
- Database: PostgreSQL 12 or later
- Web Server: nginx/apache (for production)
- Operating System: Linux, Windows, or macOS
See requirements.txt for the complete list of Python packages.
-
Install Python Dependencies
pip install -r requirements.txt
-
Install Odoo 16.0+
- Download from Odoo's official website
- Or use Docker:
docker run -d -p 8069:8069 odoo:16.0
-
Install the Module
- Copy the module to your Odoo addons directory
- Update Odoo configuration to include the addons path
- Restart Odoo service
- Install the module through Odoo's Apps menu
For detailed installation instructions, see INSTALLATION.md.
-
Navigate to Consent Management
- Go to Consent > Consent Form in the main menu
-
Create New Form
- Click Create button
- Fill in the required fields:
- Subject
- Partner (customer)
- User (responsible person)
- Template
- Date
-
Configure Form Settings
- Select a consent template
- Enable/disable print header
- Add additional information if needed
-
Generate Portal Link
- Click Customer Preview button
- Share the generated URL with the customer
-
Create Template
- Go to Consent > Templates
- Create new template with HTML content
- Use variables like
${object.users_id.name}for dynamic content
-
Template Variables
${object.users_id.name}- User name${object.date}- Form date${object.partner_id.name}- Partner name
-
Customer Portal
- Customers access forms via portal URL
- View consent form content
- Sign electronically
- Download PDF copy
-
Form Status Tracking
- Draft: Initial state
- To Sign: Ready for customer signature
- Signed: Completed with signature
GET /my/consent_form/{consent_form_id}Returns the consent form for portal display.
GET /my/consent_form/download/{consent_form_id}Downloads the consent form as a PDF file.
POST /my/consent_form/{consent_form_id}/signedSigns the consent form with customer signature.
Parameters:
name: Customer namesignature: Base64 encoded signature image
{
"force_refresh": true,
"redirect_url": "https://example.com/my/consent_form/123"
}consent_management/
βββ __init__.py
βββ __manifest__.py
βββ controllers/
β βββ __init__.py
β βββ portal.py
βββ models/
β βββ __init__.py
β βββ consent.py
β βββ consent_template.py
βββ security/
β βββ ir.model.access.csv
βββ static/
β βββ src/
β βββ css/
β βββ consent_form_template.css
βββ views/
β βββ consent_view.xml
β βββ consent_template.xml
β βββ menu.xml
β βββ portal/
β β βββ portal_templates.xml
β βββ report_consent_form.xml
β βββ report.xml
β βββ template.xml
βββ requirements.txt
βββ INSTALLATION.md
βββ README.md
-
Clone the Repository
git clone <repository-url> cd consent-management-system
-
Install Development Dependencies
pip install -r requirements.txt pip install pytest pytest-odoo black flake8
-
Run Tests
pytest
-
Code Formatting
black . flake8 .
-
Create Model
- Add new model in
models/directory - Update
models/__init__.py
- Add new model in
-
Create Views
- Add XML views in
views/directory - Update menu structure
- Add XML views in
-
Add Controllers
- Create new controllers in
controllers/directory - Define API endpoints
- Create new controllers in
-
Update Security
- Modify
security/ir.model.access.csvfor new models
- Modify
We welcome contributions! Please follow these steps:
-
Fork the Repository
- Create a fork of this repository
-
Create Feature Branch
git checkout -b feature/your-feature-name
-
Make Changes
- Implement your feature
- Add tests for new functionality
- Update documentation
-
Submit Pull Request
- Create a pull request with detailed description
- Include screenshots if UI changes
- Follow PEP 8 coding standards
- Write comprehensive tests
- Update documentation for new features
- Ensure backward compatibility
- Add proper error handling
- Documentation: Check this README and INSTALLATION.md
- Issues: Report bugs and feature requests through GitHub Issues
- Community: Join our community discussions
- Email: Contact support at [email protected]
Common issues and solutions:
-
Module Not Found
- Verify addons path in Odoo configuration
- Check file permissions
- Restart Odoo service
-
Import Errors
- Install all Python dependencies
- Check Python version compatibility
- Verify virtual environment
-
Portal Access Issues
- Check portal user permissions
- Verify portal configuration
- Ensure proper URL routing
- Odoo Logs:
/var/log/odoo/odoo.log - System Logs:
journalctl -u odoo - Debug Mode: Enable debug mode in Odoo for detailed logs
- Initial release
- Basic consent form management
- Portal integration
- PDF generation
- Digital signature capture
- Advanced template system
- Multi-language support
- Integration with external systems
- Enhanced reporting capabilities
- Odoo Community: For the excellent framework
- Contributors: All those who contributed to this project
- Users: For valuable feedback and suggestions