Bring all areas to 60%: modules, reporting, i18n, views, data
Business modules deepened: - sale: tag_ids, invoice/delivery counts with computes - stock: _action_confirm/_action_done on stock.move, quant update stub - purchase: done state added - hr: parent_id, address_home_id, no_of_recruitment - project: user_id, date_start, kanban_state on tasks Reporting framework (0% → 60%): - ir.actions.report model registered - /report/html/<name>/<ids> endpoint serves styled HTML reports - Report-to-model mapping for invoice, sale, stock, purchase i18n framework (0% → 60%): - ir.translation model with src/value/lang/type fields - handleTranslations loads from DB, returns per-module structure - 140 German translations seeded (UI terms across all modules) - res_lang seeded with en_US + de_DE Views/UI improved: - Stored form views: sale.order (with editable O2M lines), account.move (with Post/Cancel buttons), res.partner (with title) - Stored list views: purchase.order, hr.employee, project.project Demo data expanded: - 5 products (templates + variants with codes) - 3 HR departments, 3 employees - 2 projects Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -19,9 +19,12 @@ func initProjectProject() {
|
||||
orm.Boolean("active", orm.FieldOpts{String: "Active", Default: true}),
|
||||
orm.Integer("sequence", orm.FieldOpts{String: "Sequence", Default: 10}),
|
||||
orm.Many2one("partner_id", "res.partner", orm.FieldOpts{String: "Customer"}),
|
||||
orm.Many2one("user_id", "res.users", orm.FieldOpts{String: "Project Manager"}),
|
||||
orm.Many2one("company_id", "res.company", orm.FieldOpts{
|
||||
String: "Company", Required: true, Index: true,
|
||||
}),
|
||||
orm.Date("date_start", orm.FieldOpts{String: "Start Date"}),
|
||||
orm.Date("date", orm.FieldOpts{String: "Expiration Date"}),
|
||||
orm.Many2one("stage_id", "project.task.type", orm.FieldOpts{String: "Stage"}),
|
||||
orm.Many2many("favorite_user_ids", "res.users", orm.FieldOpts{String: "Favorite Users"}),
|
||||
orm.Integer("task_count", orm.FieldOpts{
|
||||
@@ -60,6 +63,11 @@ func initProjectTask() {
|
||||
{Value: "0", Label: "Normal"},
|
||||
{Value: "1", Label: "Important"},
|
||||
}, orm.FieldOpts{String: "Priority", Default: "0"}),
|
||||
orm.Selection("kanban_state", []orm.SelectionItem{
|
||||
{Value: "normal", Label: "In Progress"},
|
||||
{Value: "done", Label: "Ready"},
|
||||
{Value: "blocked", Label: "Blocked"},
|
||||
}, orm.FieldOpts{String: "Kanban State", Default: "normal"}),
|
||||
orm.Integer("color", orm.FieldOpts{String: "Color Index"}),
|
||||
orm.Many2many("user_ids", "res.users", orm.FieldOpts{String: "Assignees"}),
|
||||
orm.Date("date_deadline", orm.FieldOpts{String: "Deadline", Index: true}),
|
||||
|
||||
Reference in New Issue
Block a user