Split 49 modules/suites into independent git repos; untrack from monorepo
Some checks failed
fusion_accounting CI / test (fusion_accounting_ai) (push) Has been cancelled
fusion_accounting CI / test (fusion_accounting_core) (push) Has been cancelled
fusion_accounting CI / test (fusion_accounting_migration) (push) Has been cancelled

Each top-level module/suite folder is now its own private repo on GitHub
(gsinghpal/<name>) and gitea (admin/<name>), with a fresh single initial
commit. The monorepo no longer tracks them (added to .gitignore + git rm
--cached); working-tree files are retained on disk and managed in their
own repos. The monorepo keeps shared root files (CLAUDE.md, docs/, scripts/,
tools/, AGENTS.md, WIP/obsolete dirs) and full history.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
gsinghpal
2026-06-07 01:54:34 -04:00
parent 2a7b315e98
commit a66cdefc01
6740 changed files with 51 additions and 1277207 deletions

View File

@@ -1,95 +0,0 @@
# -*- coding: utf-8 -*-
# Copyright 2026 Nexa Systems Inc.
# License OPL-1 (Odoo Proprietary License v1.0)
# Part of the Fusion Plating product family.
from odoo import fields, models
class FpJhscMeeting(models.Model):
"""A scheduled or held JHSC meeting.
Captures the meeting's date, attendees, agenda, minutes, action items
and supporting attachments. The state field walks the meeting through
its lifecycle from planned through closed so the JHSC can audit which
meetings still need minutes posted.
"""
_name = 'fusion.plating.jhsc.meeting'
_description = 'Fusion Plating - JHSC Meeting'
_inherit = ['mail.thread', 'mail.activity.mixin']
_order = 'meeting_date desc, id desc'
_rec_name = 'name'
name = fields.Char(
string='Subject',
required=True,
tracking=True,
)
jhsc_id = fields.Many2one(
'fusion.plating.jhsc',
string='Committee',
required=True,
ondelete='cascade',
tracking=True,
)
facility_id = fields.Many2one(
'fusion.plating.facility',
related='jhsc_id.facility_id',
store=True,
readonly=True,
)
meeting_date = fields.Date(
string='Meeting Date',
required=True,
default=fields.Date.context_today,
tracking=True,
)
attendee_ids = fields.Many2many(
'hr.employee',
'fp_jhsc_meeting_attendee_rel',
'meeting_id',
'employee_id',
string='Attendees',
)
agenda = fields.Html(
string='Agenda',
)
minutes = fields.Html(
string='Minutes',
)
action_items = fields.Html(
string='Action Items',
)
state = fields.Selection(
[
('planned', 'Planned'),
('held', 'Held'),
('minutes_ready', 'Minutes Ready'),
('closed', 'Closed'),
],
string='Status',
default='planned',
tracking=True,
required=True,
)
attachment_ids = fields.Many2many(
'ir.attachment',
'fp_jhsc_meeting_attachment_rel',
'meeting_id',
'attachment_id',
string='Attachments',
)
company_id = fields.Many2one(
'res.company',
string='Company',
default=lambda self: self.env.company,
)
def action_mark_held(self):
self.write({'state': 'held'})
def action_post_minutes(self):
self.write({'state': 'minutes_ready'})
def action_close(self):
self.write({'state': 'closed'})