16 Commits

Author SHA1 Message Date
metatroncubeswdev
191b12b0cd Brand website and backend browser tabs with TNCSC titles and favicon
Some checks failed
CI / Brand-leak check (push) Has been cancelled
CI / flake8 / pylint-odoo / manifest completeness (push) Has been cancelled
CI / Install all modules with --test-enable (push) Has been cancelled
Set page-specific titles for website, login, and member portal routes while retaining dynamic titles for other pages. Replace the default favicon with the official TNCSC logo. Add TNCSC to the backend title service without losing action names or notification counters.

Validated XML, title expressions, manifest entries, JavaScript syntax, and backend action/counter updates against the Odoo 19 title service. Live template rendering still requires deployment and module upgrade.
2026-09-27 09:56:05 -04:00
metatroncubeswdev
d7503347ee Add Member Login button to TNCSC website navigation
Some checks failed
CI / Brand-leak check (push) Has been cancelled
CI / flake8 / pylint-odoo / manifest completeness (push) Has been cancelled
CI / Install all modules with --test-enable (push) Has been cancelled
Add a shared login button to all 11 custom navigation templates, linking to /web/login with /my as the post-login destination. Style it in ivory and gold with visible keyboard focus and allow navigation to wrap.

Validated template insertion points, SCSS compilation, and desktop/mobile browser previews. Confirmed the button opens the login form with the member portal redirect.
2026-09-27 09:48:57 -04:00
metatroncubeswdev
a0ba0c544f Apply light theme and official TNCSC logo to login page
Some checks failed
CI / Brand-leak check (push) Has been cancelled
CI / flake8 / pylint-odoo / manifest completeness (push) Has been cancelled
CI / Install all modules with --test-enable (push) Has been cancelled
Use an ivory canvas, white card and fields, readable dark text, and gold accents. Update autofill, passkey, focus, and alert colours, and improve small-screen spacing. Replace the lotus with the existing TNCSC brand logo.

Validation: SCSS compilation, XML parsing, and browser previews of the live login page with local changes at desktop and mobile widths. No credentials were submitted.
2026-09-27 09:47:07 -04:00
metatroncubeswdev
db819c485f Use official TNCSC logo in the backend sidebar
Some checks failed
CI / Brand-leak check (push) Has been cancelled
CI / flake8 / pylint-odoo / manifest completeness (push) Has been cancelled
CI / Install all modules with --test-enable (push) Has been cancelled
Replace the decorative lotus with the existing website brand logo and remove its gold glow. Preserve the logo proportions and sidebar spacing. Validated template XML and asset path.
2026-09-27 09:44:10 -04:00
metatroncubeswdev
997c87737f Hide duplicate Odoo header on rendered TNCSC website pages
Some checks failed
CI / Brand-leak check (push) Has been cancelled
CI / flake8 / pylint-odoo / manifest completeness (push) Has been cancelled
CI / Install all modules with --test-enable (push) Has been cancelled
Add a frontend style scoped to pages containing the custom TNCSC header. This complements template overrides and also covers website-editor copies while preserving standard navigation on other pages.

Validated by injecting the compiled CSS into the live homepage at desktop and mobile widths, checking custom mobile menu expansion, and confirming an ordinary page retains its default header. SCSS compilation and manifest checks passed.
2026-09-27 09:43:28 -04:00
metatroncubeswdev
a4d3f57f39 Fix TNCSC light theme, toolbar alignment, and duplicate website menus
Some checks failed
CI / Brand-leak check (push) Has been cancelled
CI / flake8 / pylint-odoo / manifest completeness (push) Has been cancelled
CI / Install all modules with --test-enable (push) Has been cancelled
Extend the ivory and gold palette to shared backend screens and remove conflicting toolbar layout overrides. Correct sidebar action selection and reserve compact sidebar spacing on smaller screens.

Hide the default website header on the 11 pages with custom TNCSC navigation using upgradeable template overrides that preserve edited page content.

Validation: SCSS compilation, JavaScript syntax, sidebar action selection, XML and manifest checks, brand-leak check, and static browser layout checks at four viewport widths passed. Live Odoo verification remains pending because the local Docker engine is unavailable.
2026-09-27 08:52:19 -04:00
metatroncubeswdev
800a41622f updated the lint color
Some checks failed
CI / Brand-leak check (push) Has been cancelled
CI / flake8 / pylint-odoo / manifest completeness (push) Has been cancelled
CI / Install all modules with --test-enable (push) Has been cancelled
2026-09-26 21:38:44 -04:00
metatroncubeswdev
1b7b1710b5 updated the error fix for deployement
Some checks failed
CI / Brand-leak check (push) Has been cancelled
CI / flake8 / pylint-odoo / manifest completeness (push) Has been cancelled
CI / Install all modules with --test-enable (push) Has been cancelled
2026-09-26 19:56:35 -04:00
Alaguraj0361
3ad1bc980d introduce tncsc_deployment addon featuring community dashboard views, controllers, and custom branding assets
Some checks failed
CI / Brand-leak check (push) Has been cancelled
CI / flake8 / pylint-odoo / manifest completeness (push) Has been cancelled
CI / Install all modules with --test-enable (push) Has been cancelled
2026-09-26 15:46:17 +05:30
Alaguraj0361
56dd9f5596 add tncsc_deployment module with custom dark theme event kanban styling and assets
Some checks failed
CI / Brand-leak check (push) Has been cancelled
CI / flake8 / pylint-odoo / manifest completeness (push) Has been cancelled
CI / Install all modules with --test-enable (push) Has been cancelled
2026-09-26 00:37:11 +05:30
3aead51697 Update TNCSC deployment modules, views, assets, and configs
Some checks failed
CI / Brand-leak check (push) Has been cancelled
CI / flake8 / pylint-odoo / manifest completeness (push) Has been cancelled
CI / Install all modules with --test-enable (push) Has been cancelled
2026-09-19 13:01:11 +05:30
metatroncubeswdev
5596f41377 fix(tncsc_deployment): grant admin the Board Admin role so CommunityOS apps show
Every product module's backend app (Membership, School, Benefits,
Classifieds, Interac Payments) has its root menu restricted to its own
manager/coordinator group. A fresh tncsc_deployment install left the
admin user in none of them, so admin's app switcher only showed stock
apps (Events, eLearning, ...) - which looks exactly like the modules
weren't installed, even though ir.module.module.state is 'installed' for
all of them (menu visibility is group-based, not install-state-based).

Fixed by seeding admin into tncsc_deployment.group_tncsc_board_admin,
whose implied_ids already cover every product manager group - this
automates what Phase 8 previously described doing by hand for just the
School Coordinator group. Verified on a fresh install: admin's visible
root menus now include Membership/School/Benefits/Classifieds/Interac
Payments alongside the stock apps, tests still 9/9.

Also documents in HANDOFF.md that `user in group.user_ids` doesn't see
implied-group membership - use has_group() instead, which resolves the
transitive closure correctly.
2026-08-21 18:59:34 -04:00
metatroncubeswdev
aeeb355948 feat(tncsc_deployment): complete the home page migration - missing sections + real copy
Re-extracted the raw HTML of tncsc.com's homepage (the earlier pass used a
summarizing tool that dropped whole sections and paraphrased copy). The
home page was missing entire sections and had shortened text throughout:

- Hero was a single static banner; the real site is a 4-slide carousel
  (Bootstrap carousel, real headline/subhead/CTA/image per slide).
- "Watch Our Story" section was missing entirely.
- "Why Join TNCSC?" FAQ section (Where is TNCSC based / How can I join)
  was missing entirely.
- The 3 program cards, the "Speak the Language" section, and the final
  CTA all had shortened/paraphrased copy - replaced with the real text.
- About section and Upcoming Events now use the real image grids instead
  of a single photo each.
- Final CTA copy corrected to "Be a Part of the Legacy" (was invented
  copy); kept the live membership-tier price strip merged into it rather
  than dropped, since that's real dynamic data the static site can't show.

8 more real images downloaded from tncsc.com for the carousel and events
section. Verified against a live container: fresh install + module test
suite (9/9 passing) + HTTP 200 with correct content on every page.
2026-08-20 13:12:01 -04:00
metatroncubeswdev
24be6360e2 feat(tncsc_deployment): migrate real tncsc.com content into the website pages
Replaces the Phase 7 "content to be finalized" placeholder pages with
TNCSC's actual site content (captured 2026-08-20), verified against a
live Odoo container on a dedicated fresh database (tncsc_site):

- Home, About, About/Tamil Nadu, About/Board of Directors (12 real
  members), Membership hub, Membership Benefits, Tamil Class, and
  Contact pages, with nav restructured to match tncsc.com's real
  structure (About and Membership as dropdowns).
- Real images downloaded from tncsc.com and self-hosted under
  static/src/img/ instead of hotlinking the WordPress site.
- Home's "Upcoming Events" and the membership pricing tables are wired
  to live event.event / community.membership.tier records instead of
  being static copies; Tamil Class links to the real /school/register
  flow. One real event seeded (Summer Picnic 2026).
- Deliberately not reproduced: tncsc.com's own Sponsors page and Contact
  phone number are unmigrated WordPress theme demo placeholders on the
  live site itself (generic client-01..09 logos, a non-Canadian demo
  number) - confirmed by inspection, not assumed. Contact page uses the
  real, verified email and social links instead.
- post_init_hook now also fixes two Odoo website Copy-On-Write gotchas
  that silently prevented the new homepage and nav dropdowns from
  rendering at all (auto-forked per-website duplicates winning over
  this module's records) - see HANDOFF.md for the full explanation.
2026-08-20 12:32:59 -04:00
metatroncubeswdev
d05d80c4df feat(tncsc_deployment): TNCSC client configuration (Phase 7)
Data-only deployment layer seeding TNCSC's branding (navy/orange/electric-
blue from the plan), 5 membership tiers in CAD (Individual $50, Family $80,
Student $20, Senior $30, Life $500 - the plan's own example figures;
update via Settings once TNCSC confirms real pricing), the
'TNCSC-{year}-{seq}' member-ID format, a Canadian (Ontario/HST) chart of
accounts via l10n_ca plus non-profit-specific accounts (Membership Dues/
Event/Sponsorship/School Fees/Donations Revenue, Deferred Event Revenue
liability, a Stripe clearing account) and a Donations journal, bilingual
EN/Tamil overrides of two membership email templates (Tamil text is a
best-effort draft only, explicitly flagged as needing native-speaker
review before go-live), five placeholder website pages (Home/About/Tamil
School/Sponsors/Contact), and TNCSC-named role groups (Board Admin,
Treasurer, Events Officer, School Coordinator, Teacher, Classifieds
Moderator) that imply the existing generic product-layer groups rather
than defining new permission logic.

Chasing the chart-of-accounts setup down to a genuinely working state
took real digging: setting company.country_id on a brand-new company
auto-schedules this Odoo build's own chart-template installer via a
precommit hook (res.company.install_l10n_modules), which races an
explicit try_loading('ca_2023', ...) call made in the same install
transaction and silently replaces its result afterwards (reverting
currency to USD, chart_template to 'generic_coa', and deleting the custom
accounts) - confirmed via raw SQL checks that the correct state exists
right up until the post_init_hook transaction commits, and is gone by the
time the install process exits. Since the precommit auto-trigger only
ever fires once per company (guarded by chart_template being unset), a
second call from a separate transaction is immune to the race. The fix:
the actual setup logic lives in an idempotent res.company._tncsc_setup_
accounting() method (models/res_company.py - a narrow, documented
exception to "no models" in the deployment layer, since cramming this
into a sandboxed ir.cron code string wasn't practical), called as a
best-effort from post_init_hook and guaranteed by a daily safety-net cron
que runs in its own transaction. Also hit two smaller, separate bugs on
the way: ir.cron code execution forbids direct attribute assignment
(STORE_ATTR) in its sandbox, and Html config_parameter fields must not be
wrapped in CDATA in data XML.

Verified end-to-end on a genuinely fresh database (not the long-lived dev
DB, which already has posted entries and correctly refuses a currency
change): installed tncsc_deployment alone, pulling in all 8 product
modules plus l10n_ca as dependencies, confirmed the post-install state via
raw SQL, manually triggered the safety-net cron and confirmed it reached
the fully-correct state (CAD, ca_2023, 355 accounts including all 7
custom ones, the Donations journal, tier products linked to the dues
account), confirmed the cron is idempotent on a second run, and ran the
full test suite (9/9 passing) with the same deterministic setup called
from the test transaction directly.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-18 00:53:17 -04:00
metatroncubeswdev
a848373429 feat(scaffold): Phase 0 - repo scaffold, Docker dev stack, CI guardrails
Scaffolds the CommunityOS monorepo per the implementation plan: 8
brand-neutral product modules (community_theme_base, community_membership,
event_qr_ticketing, community_school, community_classifieds,
community_benefits, community_interac, community_portal) plus the
tncsc_deployment client layer, each with an App-Store-ready manifest,
LGPL-3 license, and empty security/data/demo/tests/views scaffolding.

Adds deploy/docker-compose.yml (Odoo 19 CE + Postgres 16), CI workflow
that installs all modules with --test-enable, and scripts/check_brand_leak.py
+ check_manifests.py enforcing the no-client-identity-in-product-code and
manifest-completeness rules. Verified locally: all 9 modules install clean
on a fresh Odoo 19 database, and the brand-leak check correctly fails when
a client term is added to a product module and passes once removed.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-17 18:48:01 -04:00