Repository navigation
feat(elm): fix and complete ELM core – leave rules, workflow, API, UI, tests - #250
Open
Nikhil-the-boy wants to merge 3 commits into
Open
Nikhil-the-boy wants to merge 3 commits into
Nikhil-the-boy wants to merge 3 commits into
Conversation
…6.7B) - Nikhil (24BCS171)
…, tests Refines the DeepSeek-generated ELM module from PR FusionIIIT#102. The refinement was done with Claude (cloud AI), not the local model; see docs/elm-phase2-evidence/README.md. - Fix app config so Django starts; add initial migration - Replace ForeignKey(User) with IAM user ids (ADR-0013) - Pure-Python domain: entitlements, eligibility, day counting, half-day CL, overlap, Station Leave, balance reservation - Declarative state machine: Unit Head decides CL/RH; recommendation then sanction for SCL/EL/COL/VL; applicant-only withdrawal; no self-approval - Services with row locking and an append-only transition history - API guarded by module grant and leave.request.* permissions - Registry, permission manifest and OpenAPI schema regenerated - Frontend: Apply, My Leave and Approvals pages on the shared http client - 52 ELM tests (39 domain, 13 API) Students: Nikhil (24BCS171), Nehant (24BCS167)
Nikhil-the-boy
force-pushed
the
elm-phase2-refinement
branch
from
October 17, 2026 08:12
d8b8d2d to
36e6c6b
Compare
Clarified the source of Phase 2 refinement in the README.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
1. Student Details
2. Environment Configuration
pytest,ruff,import-linter, the repo'sops/checks,vitest,tsc3. Summary of Improvements Made in Phase 2
1. Fixes to the PR #102 Code
apps.py. It had the typodjango.db.modelsmodels.BigAutoFieldandname = "elm", so Django could not start.ForeignKey(User)with IAM user ids, as ADR-0013 requires. This platform has no user table.onChangettypo, leave types that are not in the spec, and raw axios.2. Domain Models and Business Rules (pure Python,
modules/elm/domain/)3. Workflow (declarative state machine)
4. Integration with Fusion
/api/v1/elm/(requests,requests/apply,requests/<id>,requests/<id>/transition,balances). It is guarded by theleavemodule grant and theleave.request.*permissions from the platform's permission catalogue.registry.pyadds nav items and role grants. The permission manifest and the OpenAPI schema were regenerated.httpclient and UI components, and registered inclient/src/app/registry.ts.5. Automated Testing
modules/elmandmodules/accesscontrol)ruffclean,import-linter5/5 contracts keptnav_matches_routes,no_cross_module_fkandpermission_manifest --checkpasstsc, 35 client tests andvite buildpass6. Remaining Work
status: "planned"until these are done.7. Scope Note and Limitations
This PR fixes the module generated in PR #102 and builds a tested core for ELM: rules, workflow, API and UI. It does not cover all ELM requirements.
PostgreSQL was not available locally, so the tests ran on SQLite with
--nomigrations. Row locking and the migration were therefore not exercised against Postgres. CI should confirm them.