<freeStyleBuild _class='hudson.model.FreeStyleBuild'><action _class='hudson.model.CauseAction'><cause _class='hudson.triggers.TimerTrigger$TimerTriggerCause'><shortDescription>Started by timer</shortDescription></cause></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginmain-maestro-cloud-run _class='hudson.plugins.git.util.Build'><buildNumber>10</buildNumber><marked><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></marked><revision><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><branch><SHA1>4c7679e7b9c80b89ea503c28608711ef175a6ba3</SHA1><name>refs/remotes/origin/main-maestro-cloud-run</name></branch></revision></refsremotesoriginmain-maestro-cloud-run><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>53</buildNumber><marked><SHA1>e891aecc2d15cf68d282a733535d60aa5440ca47</SHA1><branch><SHA1>e891aecc2d15cf68d282a733535d60aa5440ca47</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>e891aecc2d15cf68d282a733535d60aa5440ca47</SHA1><branch><SHA1>e891aecc2d15cf68d282a733535d60aa5440ca47</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>e891aecc2d15cf68d282a733535d60aa5440ca47</SHA1><branch><SHA1>e891aecc2d15cf68d282a733535d60aa5440ca47</SHA1><name>refs/remotes/origin/main</name></branch></lastBuiltRevision><remoteUrl>https://github.com/UstadMobile/Respect.git</remoteUrl><scmName></scmName></action><action></action><action></action><action></action><action></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'><artifactsUrl>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/53/artifact</artifactsUrl><changesUrl>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/changes</changesUrl><displayUrl>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/53/</displayUrl><testsUrl>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/53/testReport</testsUrl></action><building>false</building><displayName>#53</displayName><duration>1461728</duration><estimatedDuration>1580838</estimatedDuration><fullDisplayName>RESPECT-end-to-end #53</fullDisplayName><id>53</id><inProgress>false</inProgress><keepLog>false</keepLog><number>53</number><queueId>4251</queueId><result>FAILURE</result><timestamp>1763323680956</timestamp><url>https://devserver3.ustadmobile.com/jenkins/job/RESPECT-end-to-end/53/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</affectedPath><commitId>25bea1faee1693d9be97010d312257523e7f290e</commitId><timestamp>1762508004000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>feat: Add enrollment list route

A new `EnrollmentList` route is added to `AppRoutes.kt` to handle navigation to the enrollment list screen.
</comment><date>2025-11-07 15:03:24 +0530</date><id>25bea1faee1693d9be97010d312257523e7f290e</id><msg>feat: Add enrollment list route</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt</affectedPath><commitId>9f264097c76d522b75bb5df340e409872290495a</commitId><timestamp>1762751082000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>feat: Add user management menu in class details

This commit introduces a "More options" dropdown menu for each teacher and student listed in the class details screen.

The menu currently provides placeholder options for "Remove from class" and "Manage enrollments."

Key changes:
- An `IconButton` with a `MoreVert` icon is added as the trailing content for each user `ListItem`.
- A `DropdownMenu` is implemented to show actions when the icon is clicked.
- User display names now use the `fullName()` extension function for consistency.
- New string resources for the menu items (`remove_from_class`, `manage_enrollments`) have been added.
</comment><date>2025-11-10 10:34:42 +0530</date><id>9f264097c76d522b75bb5df340e409872290495a</id><msg>feat: Add user management menu in class details</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt</affectedPath><commitId>532541ace33b922d0846dfde3c320ca79fc78dc5</commitId><timestamp>1762753469000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>refactor: Extract Person list item with action menu

This commit introduces a new `PersonListItemWithMenu` composable to encapsulate the display of a person in a list, including their avatar, name, and an action menu.
</comment><date>2025-11-10 11:14:29 +0530</date><id>532541ace33b922d0846dfde3c320ca79fc78dc5</id><msg>refactor: Extract Person list item with action menu</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/enrollment/list/EnrollmentListScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/list/EnrollmentListViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/enrollment/edit/EnrollmentEditScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/edit/EnrollmentEditViewModel.kt</affectedPath><affectedPath>gradle/libs.versions.toml</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt</affectedPath><commitId>14caf5780859a606208cd7c1a7d7687666bafb0e</commitId><timestamp>1762756520000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>build: Upgrade Android Gradle Plugin to 8.13.0

This commit updates the Android Gradle Plugin version from 8.12.3 to 8.13.0.

Additionally, it introduces the foundational components for enrollment management:
- Adds placeholder screens for `EnrollmentList` and `EnrollmentEdit`.
- Creates the corresponding `EnrollmentListViewModel` and `EnrollmentEditViewModel`.
- Defines new navigation routes (`EnrollmentList`, `EnrollmentEdit`).
- Registers the new ViewModels for dependency injection.
</comment><date>2025-11-10 12:05:20 +0530</date><id>14caf5780859a606208cd7c1a7d7687666bafb0e</id><msg>build: Upgrade Android Gradle Plugin to 8.13.0</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/enrollment/edit/EnrollmentEditScreen.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/edit/EnrollmentEditViewModel.kt</file></path><path><editType>add</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/enrollment/list/EnrollmentListScreen.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/list/EnrollmentListViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt</file></path><path><editType>edit</editType><file>gradle/libs.versions.toml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/enrollment/list/EnrollmentListScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/list/EnrollmentListViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt</affectedPath><commitId>8bb94992fbc2f2d05c6125a85502ff722271dd8f</commitId><timestamp>1762766073000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>feat: Navigate to enrollment list from class details

This commit introduces the ability to navigate from the class details screen to a new enrollment list screen for a specific person.

When a user clicks the "Manage enrollments" option in the user action menu, they are now navigated to a view showing all enrollments for that person within the current class.

Key changes:
- Added `EnrollmentListScreen` to display a person's enrollments.
- Implemented `EnrollmentListViewModel` to fetch and provide enrollment data.
- Updated `ClazzDetailViewModel` to handle the navigation to `EnrollmentList`, passing the person's details and class title.
- The `EnrollmentList` navigation route now accepts `personGuid`, `personName`, `role`, and `clazzTitle` to construct the new screen.
- Added new string resources for the enrollment list title.
</comment><date>2025-11-10 14:44:33 +0530</date><id>8bb94992fbc2f2d05c6125a85502ff722271dd8f</id><msg>feat: Navigate to enrollment list from class details</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/enrollment/list/EnrollmentListScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/list/EnrollmentListViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/enrollment/list/EnrollmentListScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt</affectedPath><commitId>7c40d3fbc15f9d3a8f18763d19b20df82f5d24e6</commitId><timestamp>1762767226000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>feat: Add action menu to enrollment list items

This commit introduces a "More options" dropdown menu for each item in the enrollment list screen, providing placeholder actions for "Edit" and "Delete."

Additionally, it refactors the hardcoded "More options" content description in the class details screen to use a string resource for better localization and consistency.

Key changes:
- Added an `IconButton` with a `MoreVert` icon as the `trailingContent` for each `ListItem` in `EnrollmentListScreen`.
- Implemented a `DropdownMenu` with "Edit" and "Delete" options.
- Added new string resources for `edit` and `delete`.
- Updated `ClazzDetailScreen` to use the `more_options` string resource for the menu's content description.
</comment><date>2025-11-10 15:03:46 +0530</date><id>7c40d3fbc15f9d3a8f18763d19b20df82f5d24e6</id><msg>feat: Add action menu to enrollment list items</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/enrollment/list/EnrollmentListScreen.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/list/EnrollmentListViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt</affectedPath><commitId>aed53db75692b8c0dfa11d78c6e12ef988ff2f5e</commitId><timestamp>1762769455000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>refactor: Simplify navigation to EnrollmentList screen

This commit refactors the navigation from the class details screen to the enrollment list screen. It simplifies the `EnrollmentList` route parameters by removing `personName` and `clazzTitle`, replacing the latter with `clazzGuid`.

Key changes:
- Updated the `EnrollmentList` navigation route to use `clazzGuid` instead of `clazzTitle` and removed the redundant `personName`.
- Modified `ClazzDetailViewModel` to pass `person.guid`, `role.name`, and `route.guid` (class GUID) when navigating.
- Removed the local `clazzTitle` property from `ClazzDetailViewModel`.
- Simplified `EnrollmentListViewModel` by removing the logic that constructed the app bar title and instead passing list parameters directly to the data source.
</comment><date>2025-11-10 15:40:55 +0530</date><id>aed53db75692b8c0dfa11d78c6e12ef988ff2f5e</id><msg>refactor: Simplify navigation to EnrollmentList screen</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/list/EnrollmentListViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/enrollment/list/EnrollmentListScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/list/EnrollmentListViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/enrollment/edit/EnrollmentEditScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/edit/EnrollmentEditViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt</affectedPath><commitId>b714fc5ea5e4d43ece8999420d00eeb9cc99cc15</commitId><timestamp>1762778071000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>feat: Introduce EnrollmentEdit screen

This commit introduces a new screen for creating and editing enrollments. It includes the `EnrollmentEditScreen` composable, its corresponding `EnrollmentEditViewModel`, and the necessary navigation setup.

The `EnrollmentEdit` screen displays basic enrollment information and includes a "Save" button in the action bar. The ViewModel is initialized to either load an existing enrollment by its UID or prepare a new enrollment based on the navigation parameters.

Key changes:
- Created `EnrollmentEditScreen.kt` and its `EnrollmentEditViewModel`.
- Added the `EnrollmentEdit` destination to `AppNavHost.kt`.
- Updated the `EnrollmentEdit` navigation route in `AppRoutes.kt` to accept parameters (`uid`, `personGuid`, `role`, `clazzGuid`).
- In `EnrollmentListScreen`, the "Edit" menu item now navigates to the new `EnrollmentEdit` screen.
- Removed the redundant `roleLabel` parameter from the `PersonListItemWithMenu` composable, as it was unused.
</comment><date>2025-11-10 18:04:31 +0530</date><id>b714fc5ea5e4d43ece8999420d00eeb9cc99cc15</id><msg>feat: Introduce EnrollmentEdit screen</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/enrollment/edit/EnrollmentEditScreen.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/enrollment/list/EnrollmentListScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/list/EnrollmentListViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/edit/EnrollmentEditViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/enrollment/edit/EnrollmentEditScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/edit/EnrollmentEditViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/list/EnrollmentListViewModel.kt</affectedPath><commitId>9e6cae13119fc2f6ccceea0479c2affa64001648</commitId><timestamp>1762797247000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>feat: Implement field validation and state restoration in EnrollmentEdit screen

This commit introduces field validation and state restoration on the enrollment edit screen. When creating a new enrollment, the start and end dates are now validated as required fields before saving.

Additionally, the screen's state is now preserved and restored, for instance, after a screen rotation. This is achieved by debouncing entity changes and saving them to the `SavedStateHandle`.

Key changes:
- Added `beginDateError` and `endDateError` with validation logic to `EnrollmentEditUiState`.
- Implemented `onEntityChanged` in the `EnrollmentEditViewModel` to update the UI state and persist the `Enrollment` entity to the `SavedStateHandle` using a `LaunchDebouncer`.
- Simplified the `EnrollmentEdit` navigation route to only require a `uid`.
- Passed the `onEntityChanged` callback from the `EnrollmentEditViewModel` to the `EnrollmentEditScreen`.
</comment><date>2025-11-10 23:24:07 +0530</date><id>9e6cae13119fc2f6ccceea0479c2affa64001648</id><msg>feat: Implement field validation and state restoration in EnrollmentEdit screen</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/enrollment/edit/EnrollmentEditScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/edit/EnrollmentEditViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/list/EnrollmentListViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/enrollment/edit/EnrollmentEditScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/edit/EnrollmentEditViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/list/EnrollmentListViewModel.kt</affectedPath><commitId>a4151cbc0f9336e34259ca82bce82c0af95e05cc</commitId><timestamp>1762803076000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>feat: Implement enrollment start and end date editing

This commit builds out the `EnrollmentEditScreen` to allow editing the start and end dates of an enrollment.

The `EnrollmentEdit` navigation route has been updated to include `role`, `personGuid`, and `clazzGuid`. These parameters are now used to correctly initialize and save enrollment data. When a new enrollment is created, it now correctly pops back to the previous screen upon saving.

Key changes:
- `EnrollmentEditScreen` now contains `RespectLocalDateField` inputs for `beginDate` and `endDate`.
- The `EnrollmentEdit` route now requires `role`, `personGuid`, and `clazzGuid` parameters.
- `EnrollmentListViewModel` now passes the required parameters when navigating to the edit screen.
- `EnrollmentEditViewModel` correctly initializes new enrollments using the route parameters.
- Successfully saving an enrollment now triggers a `NavCommand.PopUp()` to return to the prior screen.
</comment><date>2025-11-11 01:01:16 +0530</date><id>a4151cbc0f9336e34259ca82bce82c0af95e05cc</id><msg>feat: Implement enrollment start and end date editing</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/enrollment/edit/EnrollmentEditScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/edit/EnrollmentEditViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/list/EnrollmentListViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/enrollment/edit/EnrollmentEditScreen.kt</affectedPath><affectedPath>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/edit/EnrollmentEditViewModel.kt</affectedPath><commitId>8e5c14f944c1f285502b5f6b062d724f593f572d</commitId><timestamp>1762808458000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>refactor: Improve navigation after new enrollment creation

This commit refactors the navigation logic after creating a new enrollment. Instead of just popping the current screen, it now navigates to the `EnrollmentList` screen, replacing the `EnrollmentEdit` screen in the back stack. This ensures a more intuitive user flow when creating multiple enrollments.

For existing enrollments, the behavior remains the same, popping back to the previous screen upon saving.

Minor code formatting and cleanup have also been applied to `EnrollmentEditScreen.kt`, `AppKoinModule.kt`, and `EnrollmentEditViewModel.kt`.
</comment><date>2025-11-11 02:30:58 +0530</date><id>8e5c14f944c1f285502b5f6b062d724f593f572d</id><msg>refactor: Improve navigation after new enrollment creation</msg><path><editType>edit</editType><file>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/enrollment/edit/EnrollmentEditScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/edit/EnrollmentEditViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/list/EnrollmentListViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/edit/EnrollmentEditViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt</affectedPath><commitId>4b750d74d0554884be64fa3493cc954d34dc842f</commitId><timestamp>1762809903000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>fix: Improve DOB display and enrollment navigation

This commit introduces a few small fixes and improvements related to enrollment management and data display.

In the `ClazzDetailScreen`, the display for a person's date of birth (DOB) now correctly handles null values by showing a dash ("-") instead of crashing.

The `EnrollmentListViewModel` now sets the screen title based on the role from the navigation route.

Finally, the navigation logic in `EnrollmentEditViewModel` has been cleaned up, removing unnecessary parameters when creating a new enrollment, while preserving the pop-up behavior.

Key changes:
- `ClazzDetailScreen` now displays "-" for a null date of birth.
- `EnrollmentListViewModel` sets the screen title using the role from the route.
- Simplified the `Navigate` command in `EnrollmentEditViewModel` for new enrollments.
</comment><date>2025-11-11 02:55:03 +0530</date><id>4b750d74d0554884be64fa3493cc954d34dc842f</id><msg>fix: Improve DOB display and enrollment navigation</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/list/EnrollmentListViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/edit/EnrollmentEditViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/list/EnrollmentListViewModel.kt</affectedPath><commitId>c6440cd8e7bdfcc9fe201d9a52766622252087d3</commitId><timestamp>1762810685000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>fix: Correct navigation parameter order in EnrollmentListViewModel

This commit corrects the order of `personGuid` and `clazzGuid` parameters when navigating from the enrollment list to the `EnrollmentEdit` screen.

It also removes now-redundant code from the `init` block that was setting the screen title, as this is handled elsewhere.
</comment><date>2025-11-11 03:08:05 +0530</date><id>c6440cd8e7bdfcc9fe201d9a52766622252087d3</id><msg>fix: Correct navigation parameter order in EnrollmentListViewModel</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/list/EnrollmentListViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/ext/DateFormatterExt.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/list/EnrollmentListViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/enrollment/list/EnrollmentListScreen.kt</affectedPath><commitId>fa0406a495270f0e9499688d828c665fad9c5da6</commitId><timestamp>1762850657000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>feat: Format enrollment dates on list screen

This commit introduces date formatting on the enrollment list screen, changing the display from the `yyyy-MM-dd` format to a localized `dd/MM/yyyy` format.

A new extension function, `toLocalizedDate`, has been created to handle the conversion. The `EnrollmentListViewModel` now provides an `onDateFormatted` function, which is called by the `EnrollmentListScreen` to display the formatted start and end dates for each enrollment.

Key changes:
- Added `toLocalizedDate` string extension in `respect-lib-shared`.
- Implemented `onDateFormatted` in `EnrollmentListViewModel` to wrap the new extension.
- Updated `EnrollmentListScreen` to use the formatted begin and end dates in the `ListItem`.
</comment><date>2025-11-11 14:14:17 +0530</date><id>fa0406a495270f0e9499688d828c665fad9c5da6</id><msg>feat: Format enrollment dates on list screen</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/enrollment/list/EnrollmentListScreen.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/ext/DateFormatterExt.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/list/EnrollmentListViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/enrollment/list/EnrollmentListScreen.kt</affectedPath><commitId>ddcbfb3e0fca13b2e5f9bfc4600643e2c12652a6</commitId><timestamp>1762851078000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>refactor: Ensure only one enrollment item's menu can be expanded at a time

This commit refactors the state management for the dropdown menu in the `EnrollmentListScreen`.

Previously, a single boolean `expanded` state was shared across all list items, causing all menus to open simultaneously. This has been replaced with `expandedItemUid`, which stores the UID of the currently expanded item.

This change ensures that clicking the "More" icon on one list item only opens the menu for that specific item.
</comment><date>2025-11-11 14:21:18 +0530</date><id>ddcbfb3e0fca13b2e5f9bfc4600643e2c12652a6</id><msg>refactor: Ensure only one enrollment item's menu can be expanded at a time</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/enrollment/list/EnrollmentListScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/edit/EnrollmentEditViewModel.kt</affectedPath><commitId>6ba833405fb70765384fb849a19c2a4fb484d810</commitId><timestamp>1762851597000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>feat: Add validation for enrollment start and end dates

This commit introduces validation to ensure the start date of an enrollment is not later than the end date.

An error message will now be displayed on the `EnrollmentEditScreen` if the start date is set after the end date.

Key changes:
- Added a new string resource `date_later` for the validation error message.
- Updated `EnrollmentEditViewModel` to include logic that compares `beginDate` and `endDate`.
</comment><date>2025-11-11 14:29:57 +0530</date><id>6ba833405fb70765384fb849a19c2a4fb484d810</id><msg>feat: Add validation for enrollment start and end dates</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/edit/EnrollmentEditViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt</affectedPath><commitId>b2b470a6c056f347b5f2553b12ce6908f27340c3</commitId><timestamp>1762851987000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>refactor: Conditionally display gender and DOB in ClazzDetailScreen

This commit refactors the `ClazzDetailScreen` to conditionally display a person's gender and date of birth (DOB) only if these values are not null or blank.

Previously, the labels for "Gender" and "Date of Birth" would always be shown, even if the corresponding data was missing, leading to awkward formatting like "Gender: , Date of Birth:".

The logic has been updated to build a list of details and then join them, ensuring that an item is only added to the display string if its value is present. This prevents empty data points from appearing in the UI.
</comment><date>2025-11-11 14:36:27 +0530</date><id>b2b470a6c056f347b5f2553b12ce6908f27340c3</id><msg>refactor: Conditionally display gender and DOB in ClazzDetailScreen</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt</affectedPath><commitId>6c159950be996d4b0bab638739957dcaa2930799</commitId><timestamp>1762852122000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>refactor: Conditionally display gender and DOB in ClazzDetailScreen
</comment><date>2025-11-11 14:38:42 +0530</date><id>6c159950be996d4b0bab638739957dcaa2930799</id><msg>refactor: Conditionally display gender and DOB in ClazzDetailScreen</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/edit/EnrollmentEditViewModel.kt</affectedPath><commitId>02e0dbabb36fa4e723b1962b11bb04c9dfae69db</commitId><timestamp>1762852250000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>feat: Display person and class names in EnrollmentEdit screen

This commit updates the `EnrollmentEditViewModel` to fetch and display the person's full name and the class's title.

Previously, the `init` block only configured the "Save" action bar button. Now, it asynchronously fetches the `Person` and `Clazz` entities using the `personGuid` and `clazzGuid` from the route. Although the fetched names (`personName` and `clazzName`) are stored in local variables, they are not yet used in the UI state. This change prepares the ViewModel for displaying more context on the enrollment editing screen.
</comment><date>2025-11-11 14:40:50 +0530</date><id>02e0dbabb36fa4e723b1962b11bb04c9dfae69db</id><msg>feat: Display person and class names in EnrollmentEdit screen</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/edit/EnrollmentEditViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/list/EnrollmentListViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/edit/EnrollmentEditViewModel.kt</affectedPath><commitId>2919955b239a997fea7f8ee82f245413d72be25e</commitId><timestamp>1762857652000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>refactor: Update enrollment screen titles to use a formatted string

This commit refactors the titles on the enrollment list and edit screens to use a new, formatted string resource.
</comment><date>2025-11-11 16:10:52 +0530</date><id>2919955b239a997fea7f8ee82f245413d72be25e</id><msg>refactor: Update enrollment screen titles to use a formatted string</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/list/EnrollmentListViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/edit/EnrollmentEditViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt</affectedPath><commitId>70ed7779c2d5c36db6cce239b376b5852150fcc5</commitId><timestamp>1762859525000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>refactor: Rename person management functions in ClazzDetail screen

This commit renames functions related to person management within the class detail screen for improved clarity and consistency.

The `onClickRemovePerson` and `onClickManagePerson` functions have been renamed to `onClickRemovePersonFromClass` and `onClickManageEnrollments` respectively. This change is reflected in the `ClazzDetailScreen`, `ClazzDetailContent`, and `ClazzDetailViewModel` to more accurately describe their actions.

Key changes:
- Renamed `onClickRemovePerson` to `onClickRemovePersonFromClass` in the `ClazzDetailScreen` and `ClazzDetailViewModel`.
- Renamed `onClickManagePerson` to `onClickManageEnrollments` in the `ClazzDetailScreen` and `ClazzDetailViewModel`.
- Updated the call sites for these functions within the `ClazzDetailContent` composable.
- The `onClickManageEnrollments` function now navigates to the `EnrollmentList` screen.
</comment><date>2025-11-11 16:42:05 +0530</date><id>70ed7779c2d5c36db6cce239b376b5852150fcc5</id><msg>refactor: Rename person management functions in ClazzDetail screen</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/edit/EnrollmentEditViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt</affectedPath><commitId>a3e86ec7a7e96518b28f8507d2fca732a2d923cc</commitId><timestamp>1762864959000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Refactor
</comment><date>2025-11-11 18:12:39 +0530</date><id>a3e86ec7a7e96518b28f8507d2fca732a2d923cc</id><msg>Refactor</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/edit/EnrollmentEditViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt</affectedPath><commitId>d7fb64e46efdef755b7deedd5afe9325c6d4ec64</commitId><timestamp>1762866313000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Refactor
</comment><date>2025-11-11 18:35:13 +0530</date><id>d7fb64e46efdef755b7deedd5afe9325c6d4ec64</id><msg>Refactor</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt</affectedPath><commitId>a28e5513a350fc60d154d71ecddf866b54f89223</commitId><timestamp>1762866544000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Refactor
</comment><date>2025-11-11 18:39:04 +0530</date><id>a28e5513a350fc60d154d71ecddf866b54f89223</id><msg>Refactor</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt</affectedPath><commitId>c9d488788a556497071bf2c97f05d587dada4045</commitId><timestamp>1762866633000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>Refactor
</comment><date>2025-11-11 18:40:33 +0530</date><id>c9d488788a556497071bf2c97f05d587dada4045</id><msg>Refactor</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/EnrollmentDataSourceRepository.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/EnrollmentDataSource.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/EnrollmentDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/EnrollmentDataSourceHttp.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/list/EnrollmentListViewModel.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/EnrollmentEntityDao.kt</affectedPath><commitId>9a02bcc92d92d9edb62dc9f16bcc81ebf69cfb88</commitId><timestamp>1762929328000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>feat: Implement enrollment deletion

Adds the functionality to delete an enrollment record. This includes:
- Adding `deleteEnrollment` functions to the `EnrollmentDataSource` interface and its various implementations (HTTP, DB, repository).
- Implementing the database deletion logic in `EnrollmentEntityDao` with a new SQL `DELETE` query.
- Adding a `DELETE` request to the HTTP data source.
- Queuing the deletion for remote write in the repository.
- Calling the new `deleteEnrollment` function from the `EnrollmentListViewModel` and invalidating the paging source to refresh the list.
</comment><date>2025-11-12 12:05:28 +0530</date><id>9a02bcc92d92d9edb62dc9f16bcc81ebf69cfb88</id><msg>feat: Implement enrollment deletion</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/list/EnrollmentListViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/EnrollmentDataSourceRepository.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/EnrollmentEntityDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/EnrollmentDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/EnrollmentDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/EnrollmentDataSource.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ClassDataSource.kt</affectedPath><commitId>2774ea56e5bacf03e15ac2e3c61b3aa8b851dc19</commitId><timestamp>1762929669000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>feat: Implement enrollment deletion
</comment><date>2025-11-12 12:11:09 +0530</date><id>2774ea56e5bacf03e15ac2e3c61b3aa8b851dc19</id><msg>feat: Implement enrollment deletion</msg><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ClassDataSource.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ClassDataSource.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/EnrollmentEntityDao.kt</affectedPath><commitId>32888dc7a6b86a7e774ee0fcf63fc00d63a90af4</commitId><timestamp>1762929752000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>refactor
</comment><date>2025-11-12 12:12:32 +0530</date><id>32888dc7a6b86a7e774ee0fcf63fc00d63a90af4</id><msg>refactor</msg><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ClassDataSource.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/EnrollmentEntityDao.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/enrollment/list/EnrollmentListScreen.kt</affectedPath><commitId>82b69855feaab2c1ccb58f75323a5fc7795fbeb1</commitId><timestamp>1762931490000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName></author><authorEmail>mandvi.verma@sutara.org</authorEmail><comment>refactor
</comment><date>2025-11-12 12:41:30 +0530</date><id>82b69855feaab2c1ccb58f75323a5fc7795fbeb1</id><msg>refactor</msg><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/enrollment/list/EnrollmentListScreen.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/enrollment/list/EnrollmentListScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/list/EnrollmentListViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/RememberFormattedDate.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/util/RememberFormattedDate.jvm.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/EnrollmentRoleEnumExt.kt</affectedPath><affectedPath>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/util/RememberFormattedDate.android.kt</affectedPath><commitId>95f5e9d5b85b5991f21321b23532df0b48b6c4df</commitId><timestamp>1763125742000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Fixes for enrollment list

Make app route class use type
Use locale based date formatting
Use flow in detail screen so that local first data loads and displays immediately
Use string resource on enrollments list to show role
</comment><date>2025-11-14 17:09:02 +0400</date><id>95f5e9d5b85b5991f21321b23532df0b48b6c4df</id><msg>Fixes for enrollment list</msg><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/EnrollmentRoleEnumExt.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/list/EnrollmentListViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/util/RememberFormattedDate.jvm.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/util/RememberFormattedDate.android.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/enrollment/list/EnrollmentListScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt</file></path><path><editType>add</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/RememberFormattedDate.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/enrollment/edit/EnrollmentEditScreen.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/edit/EnrollmentEditViewModel.kt</affectedPath><commitId>90cd7040c7cb08a653ef6893e33bf4075e478d54</commitId><timestamp>1763288580000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>EnrollmentEdit fixes.
Dates are not required fields.
</comment><date>2025-11-16 14:23:00 +0400</date><id>90cd7040c7cb08a653ef6893e33bf4075e478d54</id><msg>EnrollmentEdit fixes.</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/composeResources/values/strings.xml</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/edit/EnrollmentEditViewModel.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/enrollment/edit/EnrollmentEditScreen.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/EnrollmentDataSourceRepository.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Enrollment.kt</affectedPath><affectedPath>respect-lib-util/src/commonMain/kotlin/world/respect/libutil/util/time/TimeConstants.kt</affectedPath><affectedPath>respect-lib-util/src/commonMain/kotlin/world/respect/libutil/util/time/LocalDateExt.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/list/EnrollmentListViewModel.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/EnrollmentEntityDao.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/params/GetListCommonParams.kt</affectedPath><affectedPath>respect-lib-util/build.gradle.kts</affectedPath><affectedPath>respect-datalayer/build.gradle.kts</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonDataSource.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonDataSourceRepository.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/DataLayerParams.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/ext/ParametersBuilderExt.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonEntityDao.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/enrollment/list/EnrollmentListScreen.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/EnrollmentDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/StatusEnum.kt</affectedPath><affectedPath>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/8.json</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/EnrollmentEntity.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/EnrollmentDataSource.kt</affectedPath><affectedPath>respect-lib-util/src/commonMain/kotlin/world/respect/libutil/util/time/UtcStartOfToday.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonDataSourceDb.kt</affectedPath><affectedPath>respect-lib-util/src/commonMain/kotlin/world/respect/libutil/util/time/LocalDateInCurrentTimeZone.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/EnrollmentDataSourceHttp.kt</affectedPath><commitId>20d9e57e2e3b4490e87b593d47fa11f0ad3e6a1f</commitId><timestamp>1763302505000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Enrollment fixes: ensure proper filtering so that only current enrollments are displayed.

Update datalayer and queries to handle timezone correctly
</comment><date>2025-11-16 18:15:05 +0400</date><id>20d9e57e2e3b4490e87b593d47fa11f0ad3e6a1f</id><msg>Enrollment fixes: ensure proper filtering so that only current enrollments are displayed.</msg><path><editType>add</editType><file>respect-lib-util/src/commonMain/kotlin/world/respect/libutil/util/time/TimeConstants.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonDataSource.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/EnrollmentEntity.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/EnrollmentDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/StatusEnum.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/EnrollmentEntityDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonEntityDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/DataLayerParams.kt</file></path><path><editType>add</editType><file>respect-lib-util/src/commonMain/kotlin/world/respect/libutil/util/time/LocalDateInCurrentTimeZone.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Enrollment.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/list/EnrollmentListViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/8.json</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/ext/ParametersBuilderExt.kt</file></path><path><editType>add</editType><file>respect-lib-util/src/commonMain/kotlin/world/respect/libutil/util/time/UtcStartOfToday.kt</file></path><path><editType>edit</editType><file>respect-datalayer/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/EnrollmentDataSource.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/EnrollmentDataSourceRepository.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/EnrollmentDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/params/GetListCommonParams.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/enrollment/list/EnrollmentListScreen.kt</file></path><path><editType>add</editType><file>respect-lib-util/src/commonMain/kotlin/world/respect/libutil/util/time/LocalDateExt.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-lib-util/build.gradle.kts</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonDataSourceRepository.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonEntityDao.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonDataSource.kt</affectedPath><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonDataSourceRepository.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/DataLayerParams.kt</affectedPath><commitId>fb731aaf911e0b7a642fd722a3ba8aa9a6f51570</commitId><timestamp>1763306474000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Make handling of in class on day parameters consistent between person data source and enrollment data source.
</comment><date>2025-11-16 19:21:14 +0400</date><id>fb731aaf911e0b7a642fd722a3ba8aa9a6f51570</id><msg>Make handling of in class on day parameters consistent between person data source and enrollment data source.</msg><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonDataSourceDb.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/DataLayerParams.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonDataSource.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonDataSourceRepository.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonEntityDao.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/EnrollmentDataSourceRepository.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt</affectedPath><affectedPath>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/EnrollmentDataSource.kt</affectedPath><affectedPath>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/edit/EnrollmentEditViewModel.kt</affectedPath><affectedPath>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/EnrollmentDataSourceDb.kt</affectedPath><affectedPath>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/EnrollmentDataSourceHttp.kt</affectedPath><affectedPath>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/EnrollmentEntityDao.kt</affectedPath><commitId>186ee35e6f5bf73d3afcb5b3b69777a553c636c8</commitId><timestamp>1763310834000</timestamp><author><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName></author><authorEmail>mike@ustadmobile.com</authorEmail><comment>Implement remove from class on class detail screen.
</comment><date>2025-11-16 20:33:54 +0400</date><id>186ee35e6f5bf73d3afcb5b3b69777a553c636c8</id><msg>Implement remove from class on class detail screen.</msg><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt</file></path><path><editType>edit</editType><file>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/edit/EnrollmentEditViewModel.kt</file></path><path><editType>edit</editType><file>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/EnrollmentDataSourceHttp.kt</file></path><path><editType>edit</editType><file>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/EnrollmentDataSourceRepository.kt</file></path><path><editType>edit</editType><file>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/EnrollmentEntityDao.kt</file></path><path><editType>edit</editType><file>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/EnrollmentDataSource.kt</file></path><path><editType>edit</editType><file>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/EnrollmentDataSourceDb.kt</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma</absoluteUrl><fullName>mandvi.verma</fullName><id>mandvi.verma</id></culprit><culprit><absoluteUrl>https://devserver3.ustadmobile.com/jenkins/user/mike</absoluteUrl><fullName>Mike Dawson</fullName><id>mike</id></culprit></freeStyleBuild>