SKILL.md
DTG Base Skill
Complete reference for DTG Base module utilities and helpers in Odoo 18.
What is DTG Base?
DTG Base is a custom abstract model (dtg_base.DTGBase) that provides common utility methods for Odoo development. It's designed to be inherited by other models to gain access to helpful utilities.
Quick Reference
| Utility | Description |
|---|---|
| [Date & Period](#date--period-utilities) | Find first/last date of period, period iteration |
| [Timezone](#timezone-conversion) | Convert local to UTC, UTC to local |
| [Barcode](#barcode-utilities) | Check barcode exists, generate EAN13 |
| [Batch Processing](#batch-processing) | Split large recordsets into batches |
| [aftercommit](#aftercommit-decorator) | Execute code after transaction commit |
| [Vietnamese Text](#string--text-utilities) | Strip accents, convert to non-accent |
| [File Utilities](#file-utilities) | Zip directories, get file size |
| [Number Utilities](#number-utilities) | Round to decimal places |
Main Guide
File: odoo-18-dtg-base-guide.md
When to use this skill
- Working with DTG Odoo codebase
- Need date/period calculations
- Timezone conversions
- Barcode validation
- Batch processing large recordsets
- Vietnamese text processing
- File zipping utilities
DTGBase Abstract Model
Inherit from DTGBase
Location: addonscustoms/erp/dtgbase/models/dtg_base.py
from odoo import models
class MyModel(models.Model):
_name = 'my.model'
_inherit = ['dtg_base.dtg_base']
def my_method(self):
# Now you have access to all DTGBase utilities
first_date = self.find_first_date_of_period('2024-01-15', 'month')
utc_date = self.convert_local_to_utc('2024-01-15 10:00:00')
File Structure
agent-skills/skills/dtg-base/
├── SKILL.md # This file - master index
├── odoo-18-dtg-base-guide.md # Complete DTG Base utilities reference
└── README.md # Skill overview
Utilities Overview
Date & Period Utilities
findfirstdateofperiod(date, period_type)- Get first date of periodfindlastdateofperiod(date, period_type)- Get last date of periodperioditer(startdate, enddate, periodtype)- Iterate over periods
Timezone Conversion
convertlocaltoutc(localdt, tz=None)- Convert local datetime to UTCconvertutctolocal(utcdt, tz=None)- Convert UTC datetime to local
Barcode Utilities
barcodeexists(barcode, excludeid=0)- Check if barcode already existsget_ean13 barcode)- Generate/check EAN13 barcode
Batch Processing
splittor(limit=None)- Split recordset into batches for processing
String & Text Utilities
strip_accents(text)- Remove Vietnamese accentsnoaccent_vietnamese(text)- Convert Vietnamese text
File Utilities
zipdir(sourcedir, output_file)- Zip a directoryzipdirs(dirs, outputfile)- Zip multiple directoriesgetfilesize(filepath)- Get human-readable file size
Number Utilities
rounddecimal(value, decimalplaces)- Round to specific decimal places
For detailed documentation, see [odoo-18-dtg-base-guide.md](./odoo-18-dtg-base-guide.md)