Connect courses, employees and documents
How documentation points at eLearning courses, job positions and controlled documents without copying them.
1. Overview & Business Value#
This comprehensive operational guide details the architecture, business workflows, configuration parameters, and execution steps for Connect courses, employees and documents within SmartERP.
Documentation stays its own module. It never copies a course, a person or a controlled document. It points at them, and the module that owns the target decides whether the reader may see the pointer.
{screenshot:connect-learning-overview-dashboard}
2. Prerequisites & Security Access Groups#
- Required Modules:
smarterp_docs - Security Groups:
Technical Documentation Architect(Technical ID:base.group_system)Enterprise User(Technical ID:base.group_user)
- Master Data Dependencies: Markdown documentation trees, asset manifests, SVG diagram generators, and multi-language search indexes.
3. Step-by-Step Configuration & Execution#
Step 1: Navigating to the Module Interface#
- Log into your SmartERP instance at
https://smarterp.et/odoo. - Open the main App Switcher (grid icon in the top-left corner).
- Select the Documentation Portal app icon.
- From the top navigation bar, open Documentation Portal → English (/docs/en) / Amharic (/docs/am).
{screenshot:connect-learning-app-switcher-navigation}
Step 2: Creating and Parameterizing Records#
- Click the New button in the top-left control panel.
- Complete the mandatory fields in the record form:
- Page Title (Mandatory): Standardized title conforming to Diátaxis framework
- Summary (Mandatory): Concise operational summary describing page intent
- Diátaxis Type (Mandatory): Valid classification (how_to, tutorial, concept, reference, admin_guide)
- Configure optional operational parameters and localized tags as required:
- Audience (Optional): Designated user roles (Accountants, Engineers, Administrators)
- Difficulty Level (Optional): beginner, intermediate, or advanced
- Click the Save icon in the control bar to commit the record.
{screenshot:connect-learning-record-creation-form}
Step 3: Validating and Processing Transactions#
- State Transitions: Execute operational state progression (Authoring → Local Offline Test Validated → Manifest Registered → Published Live).
- Ledger & System Impact: Powers the public and internal technical documentation portal (
smarterp.et/docs) with sub-second rendering and dual-theme visual diagrams. - Audit Verification: Automated recording of author ID, timestamp, and immutable revision history.
{screenshot:connect-learning-transaction-processing-state}
The contract#
A page keeps a list of learning and sources references: a kind (course, lesson, controlled document, external link), a label and a target. On the website the page asks each reference for a link for the person looking. A reference that the person may not open is left out entirely, not even its title.
A module that owns a kind of target adds a small bridge. A bridge installs by itself when both modules are installed, and smarterp_docs needs none of them.
eLearning#
With Odoo's eLearning app installed, the bridge smarterp_docs_elearning adds:
- a Documentation tab on a course and on a lesson, to list the pages it teaches;
- Learn this topic on a page, listing the courses and lessons that teach it;
- Official documentation on the public course page.
A draft course, a course for members only and a lesson of such a course are shown only to people who may open them. eLearning keeps its catalogue, lessons, enrolment, quizzes and certificates. The bridge reads nothing about learners.
Employees#
With Employees installed, smarterp_docs_hr lets a job position or a department list the pages its people should read. An employee gets a Documentation button that opens those pages, limited to what the person opening it may read.
Documents#
With SmartERP Documents installed, smarterp_docs_dms turns a reference of kind controlled document into an Official sources link, for a signed-in employee who may read that document. Anyone else sees nothing.
For developers#
A bridge overrides one method, calls super(), and adds a link only after checking the target against self.env.user:
def _integration_links(self):
links = super()._integration_links()
# add {"kind": ..., "label": ..., "url": ...} for each target the user may open
return links
The website calls it on a sudo() record, so the user is still the visitor: test access explicitly. A reference of your own kind overrides _resolve on smarterp.doc.ref the same way.
4. Advanced Configuration Points#
- Automated Actions & Scheduled Tasks (Crons):
Documentation: Auto-rebuild search index(smarterp_docs.ir_cron_reindex): Runs on module upgrade to refresh full-text search indexes
- Custom Print Templates & Reports:
- SmartERP Technical Documentation Standards & Style Guide
- Documentation Coverage & Visual Asset Verification Matrix
- Multi-Company Rules: Record-level security isolation under Company 1 (
Ashewa Technology Solutions S.C.), preventing cross-company ledger leakage across parent and subsidiary legal entities.
5. Comprehensive Troubleshooting Matrix#
| Error Symptom / Exception | Probable Root Cause | Corrective Action / Resolution |
|---|---|---|
Test Error: Broken link in documentation | Internal doc link refers to non-existent section or page slug. | Update link path to match valid section and page identifiers. |
Test Error: Asset referenced in markdown not found in manifest | Diagram or image referenced in text lacks manifest.json entry. | Register asset ID and file paths in static/img/manifest.json. |
Formatting Warning: Stray markdown marker detected | Unclosed bold or link brackets found in rendered HTML. | Ensure all emphasis tags and links are properly closed in markdown source. |