dtg-base — Claude Code skill: what it does, how to install
A reference skill for DTGBase utilities in Odoo, covering dates, time zones, barcodes, files and batch processing.
npx skills add unclecatvn/agent-skills --skill dtg-base -a claude-codeWhat dtg-base does
dtg-base documents the abstract dtg_base.DTGBase model, which other Odoo models can inherit. Its reference covers period boundaries and iteration, local-time and UTC conversion, barcode checks, and EAN13 handling.
It also describes splitting recordsets with splittor, removing Vietnamese accents, creating ZIP archives, reading file sizes, and rounding values to selected decimal places. The guide points to odoo-18-dtg-base-guide.md for the utility reference.
The skill targets **/addons_customs/erp/**/*.py in a DTG Odoo codebase. Check that a model inherits dtg_base.dtg_base, because that inheritance exposes the documented methods.
What it helps with
- find a period's first or last date
- convert local time to UTC
- check whether a barcode exists
- split a recordset into batches
- create a ZIP archive from directories
Example prompts for the agent
- Use dtg-base to find the last date of a month.
- Use dtg-base to convert a local datetime to UTC.
- Show how to validate a barcode and get EAN13 with DTGBase.
How to install dtg-base
1Skills CLI (Vercel)
npx skills add unclecatvn/agent-skills --skill dtg-base -a claude-code2Manually: put the files in place
~/.claude/skills/dtg-base/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/dtg-base/
1Skills CLI (Vercel)
npx skills add unclecatvn/agent-skills --skill dtg-base -a codex2Manually: put the files in place
.agents/skills/dtg-base/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add unclecatvn/agent-skills --skill dtg-base -a cursor2Manually: put the files in place
.cursor/skills/dtg-base/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install unclecatvn/agent-skills dtg-base2Manually: put the files in place
.github/skills/dtg-base/SKILL.md1Skills CLI (Vercel)
npx skills add unclecatvn/agent-skills --skill dtg-base -a gemini-cli2Platform CLI
gemini skills install https://github.com/unclecatvn/agent-skills --path skills/dtg-baseManually: put the files in place
.devin/skills/dtg-base/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add unclecatvn/agent-skills --skill dtg-base -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about dtg-base
How do I install dtg-base in Claude Code?
Run npx skills add unclecatvn/agent-skills --skill dtg-base -a claude-code, then run npx skills add unclecatvn/agent-skills --skill dtg-base -a claude-code again. The skill file is at ~/.claude/skills/dtg-base/SKILL.md.
What does dtg-base do?
It provides a reference for the dtg_base.DTGBase model in Odoo. The guide covers dates, time zones, barcodes, files, text helpers, and number rounding.
How can an Odoo model use DTGBase methods?
Inherit from dtg_base.dtg_base. That gives the model access to the documented DTGBase utilities.
Source text
SKILL.md · MIT
---
name: dtg-base
description: Complete reference for DTG Base module utilities and helpers. DTGBase is an abstract model providing common utility methods for date/time handling, barcode generation, timezone conversion, file operations, and more.
globs: "**/addons_customs/erp/**/*.py"
license: MIT
author: UncleCat
version: 1.0.0
---
# 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 |
| [after_commit](#after_commit-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**: `addons_customs/erp/dtg_base/models/dtg_base.py`
```python
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
- `find_first_date_of_period(date, period_type)` - Get first date of period
- `find_last_date_of_period(date, period_type)` - Get last date of period
- `period_iter(start_date, end_date, period_type)` - Iterate over periods
### Timezone Conversion
- `convert_local_to_utc(local_dt, tz=None)` - Convert local datetime to UTC
- `convert_utc_to_local(utc_dt, tz=None)` - Convert UTC datetime to local
### Barcode Utilities
- `barcode_exists(barcode, exclude_id=0)` - Check if barcode already exists
- `get_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 accents
- `_no_accent_vietnamese(text)` - Convert Vietnamese text
### File Utilities
- `zip_dir(source_dir, output_file)` - Zip a directory
- `zip_dirs(dirs, output_file)` - Zip multiple directories
- `_get_file_size(file_path)` - Get human-readable file size
### Number Utilities
- `round_decimal(value, decimal_places)` - Round to specific decimal places
---
**For detailed documentation, see [odoo-18-dtg-base-guide.md](./odoo-18-dtg-base-guide.md)**
© UncleCat · MIT · unclecatvn/agent-skills