Added documentation to clarify:
- Why store=True is used for related fields (performance for filtering/searching)
- Why manual synchronization is needed in migration (related fields don't auto-sync during SQL INSERT)
No functional changes, only improved code documentation.
The related fields in maintenance.equipment with store=True were not automatically
synchronized during migration. Added explicit SQL UPDATE statements to copy values:
- ows_area_id from area_id
- ows_category from category
This ensures the maintenance.equipment records have all the OWS-specific data
from the original ows.machine records after migration.
- Add partner_id and partner_ref template placeholders for supplier information
- Implement editable status smiley field in maintenance.equipment.status
- Add UI views for editing smileys in Odoo (Wartung → Konfiguration → Equipment Status)
- Fix category field bug: use ows_category instead of category_id for security category
- Add category_icon placeholder displaying emoji indicators (🔴/🟡/🟢)
- Implement mass synchronization wizard (Wartung → Konfiguration → Wiki-Synchronisation)
- Sync all equipment or filter by area
- Sync only unsynchronized equipment
- Force-sync option to overwrite existing documentation pages
- Statistics display with error reporting
- Add security access rules for wizard
- Update README with new placeholders
- Implemented wiki-based template system using c_template
- Template loaded from werkstatt:ausruestung:c_template
- Placeholder replacement for all equipment and related fields
- Fallback to hardcoded content if template unavailable
- Only view pages use templates, central doku page unchanged
- Added image upload capability for equipment
- New field: image_1920 (Image field, max 1920x1920px)
- View integration: Positioned as avatar before button_box
- Upload to DokuWiki media directory during sync
- Temporary file approach for dokuwiki.py library compatibility
- Extended template placeholders:
- status: Equipment status from status_id
- odoo_link: Formatted link back to Odoo equipment form
- odoo_url: Direct URL to equipment in Odoo
- image: Equipment image (300px width)
- image_large: Equipment image (original size)
- image_id: Media path for custom DokuWiki syntax
- Updated documentation with all available placeholders
- Simplified architecture: ONE central documentation page per equipment
- Wiki ID generation from equipment name (e.g., 'sabako-laser')
- Namespace structure: werkstatt:ausruestung:doku:{name}
- View pages by area: werkstatt:ausruestung:{area}:{name}
- Smart page protection: central doku only created once, not overwritten
- View pages update on each sync (shows current Odoo metadata)
- Template detection: distinguishes real content from DokuWiki auto-templates
- JSONB multilingual name field handling
- Include Plugin integration for embedded content display
- Automatic sync option via write() override
- Configuration via System Parameters (url, user, password)
- Settings page in General Settings for easy credential management
- Changed 'bidirektional' to 'unidirektional' (Odoo → DokuWiki)
- Clarified data ownership:
- Odoo = Master for structured data (name, serial_no, area, category)
- DokuWiki = Master for freetext documentation (manuals, tips)
- Added sync marker system:
- <- Ensures POS functionality is activated after ODOO_SYNC_START: section_name -->
- <- Ensures POS functionality is activated after ODOO_SYNC_END: section_name -->
- Only content between markers gets updated by Odoo
- All other sections (Bedienung, Tipps & Tricks) remain untouched
- Documented sync algorithm with Python code example
- Users can freely edit wiki without fear of data loss
- DokuWiki versioning preserves all changes
- Replaced open_workshop_api (WordPress REST API) with open_workshop_dokuwiki
- DokuWiki chosen for equipment documentation:
- File-based, no separate database needed
- Built-in versioning and history
- Wiki syntax perfect for technical docs
- Granular ACL (Odoo writable, all readable)
- XML-RPC API for bidirectional sync
- Planned DokuWiki features:
- Automatic wiki page per equipment
- Namespace structure: ausruestung:bereich:maschinenname
- Template system with equipment data
- Smart button 'Wiki öffnen' in Equipment form
- Auto-sync on equipment changes
- WordPress integration now optional:
- Can be added later for public presentation
- DokuWiki handles documentation (priority)
- WordPress for marketing/SEO (future)
- Updated architecture diagram and implementation status
- open_workshop_api moved to 'optional' status
- Extended maintenance.equipment model with Related fields to ows.machine
- ows_machine_id: One2many inverse relation
- ows_category: Related to machine category (editable, stored)
- ows_area_id: Related to machine area (editable, stored)
- ows_product_ids: Related One2many for usage products
- ows_training_ids: Related One2many for training products
- Equipment Form View Extensions:
- Added ows_area_id and ows_category after location field
- New 'Offene Werkstatt (Hobbyhimmel)' notebook page with:
- Security section (category icon, category, area)
- Usage products section (Nutzungsprodukte)
- Training products section (Einweisungsprodukte)
- Page visibility controlled by ows_machine_id existence
- Equipment List/Search View Extensions:
- Added ows_category_icon and ows_area_id columns
- Added OWS search fields (area, category)
- Added category filters (green/yellow/red)
- Added OWS grouping options (by area, by category)
- Menu Structure Migration:
- Removed standalone 'Ausrüstung' top-level menu
- Integrated all OWS config into Maintenance → Configuration:
- Bereiche (Areas)
- Zuordnungen (Assignments) container
- Nutzungsprodukte (Usage Products)
- Einweisungsprodukte (Training Products)
- Created simplified tree views for Equipment context:
- view_ows_machine_product_tree_simple (no machine_id column)
- view_ows_machine_training_tree_simple (no machine_id column)
- Freed location field from automatic area synchronization:
- Removed area → location mapping in create()/write()
- location now available for detailed physical location info
- ows_area_id provides workspace area assignment
BREAKING CHANGE: Standalone OWS menu removed, all features now in Maintenance app
UX IMPROVEMENT: Single Equipment view shows all data, no split views needed
- Move QR-code generation from report to wizard (before PDF generation)
- Add attachment=True to qr_code Binary field for filestore storage
- Simplify report class - only provides data, no QR generation
- Change template from t-field to <img> with base64 data URL for proper PDF rendering
- Fix JSONB field extraction (name, category) for de_DE/en_US
- Add equipment_ids field to wizard form (invisible)
- Apply changes to all 3 label formats (2x5, 2x7, 4x7)
QR-codes now display correctly in generated PDFs and contain equipment
details plus direct link to Odoo equipment record.
- Add default company_id to equipment records during migration
- Fixes 'Generate Serial Number' button not working for migrated equipment
- Equipment without company_id could not generate serial numbers
- Made location field readonly in maintenance.equipment view
- Hide equipment_id field in machine form (auto-created)
- Name and serial_no now directly editable in machine form
- Area is now required field
- Location automatically synced from area to equipment
- Equipment auto-created on machine save with all fields
- Renamed menu from 'Maschinen' to 'Ausrüstung'
- Improved user flow: No need to switch between views
Changes:
- Added maintenance_equipment_views.xml for readonly location
- Updated create() to always auto-create equipment
- Enhanced write() to sync name/serial_no changes to equipment
- Menu labels updated to 'Ausrüstung'
- Neues Modul open_workshop_pos erstellt
- POS JavaScript, XML Templates und CSS verschoben
- open_workshop_base bereinigt: keine POS-Abhängigkeit mehr
- open_workshop_base Version 18.0.1.0.4
- open_workshop_pos Version 18.0.1.0.0
- Kategorie von 'Point of Sale' zu 'Manufacturing' geändert
- Alle Template-Referenzen aktualisiert (open_workshop_base → open_workshop_pos)
Module getestet und erfolgreich installiert in hh18 Datenbank.
- Modul umbenannt von open_workshop zu open_workshop_base
- Alle Referenzen im Code aktualisiert (Templates, Views, Assets)
- SQL-Migrationsskript für automatische DB-Migration erstellt
- post_init_hook hinzugefügt
- Version auf 18.0.1.0.3 erhöht
- Vorbereitung für modulare Architektur (Base, POS, API)
Fixes für Gitea Action Integration:
- SQL-Skript in open_workshop_base/migrations/
- Alter open_workshop/ Ordner entfernt
- Migrations-Workflow getestet auf hh18
- Uncomment and activate notebook widget in machine form view
- Fix context reference from 'active_id' to 'id' for Odoo 18 compatibility
- Remove duplicate category_icon field in form group
- Clean up XML structure and indentation
- Enable "Nutzungsprodukte" and "Einweisungsprodukte" tabs with editable lists
- Resolve access rights inconsistency error for product_ids field
Fixes module upgrade error: "Field 'active_id' does not exist in model 'ows.machine'"
- Added .vscode/launch.json with remote debugging setup for Odoo development
- Configured debugpy attachment on port 4338 with path mappings
- Added workspace settings for Python development with Odoo
- Fixed issues in pos_order.py for improved POS functionality
- Enhanced development workflow with breakpoint support for custom code and Odoo core