Skip to content

Commit

Permalink
Merge pull request #249 from avantifellows/ER_dynamic_changeset
Browse files Browse the repository at this point in the history
dynamic changeset to hanble auth_group ER's with null academic_year
  • Loading branch information
Bahugunajii authored Jan 10, 2025
2 parents 267efca + 8d05b5a commit c1eb8bb
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 7 deletions.
10 changes: 7 additions & 3 deletions lib/dbservice/enrollment_record/enrollment_record.ex
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,14 @@ defmodule Dbservice.EnrollmentRecords.EnrollmentRecord do
def changeset(enrollment_record, attrs) do
required_fields = [:user_id, :group_id, :group_type, :start_date, :grade_id]

group_type = Map.get(attrs, "group_type") || Map.get(enrollment_record, :group_type)

required_fields =
if Map.get(attrs, "group_type") == "auth_group",
do: required_fields,
else: [:academic_year | required_fields]
if group_type != "auth_group" do
[:academic_year | required_fields]
else
required_fields
end

enrollment_record
|> cast(attrs, [
Expand Down
11 changes: 7 additions & 4 deletions lib/dbservice_web/controllers/student_controller.ex
Original file line number Diff line number Diff line change
Expand Up @@ -188,7 +188,11 @@ defmodule DbserviceWeb.StudentController do
end
end

def dropout(conn, %{"student_id" => student_id, "start_date" => dropout_start_date}) do
def dropout(conn, %{
"student_id" => student_id,
"start_date" => dropout_start_date,
"academic_year" => academic_year
}) do
student = Users.get_student_by_student_id(student_id)

# Check if the student's status is already 'dropout'
Expand Down Expand Up @@ -216,10 +220,9 @@ defmodule DbserviceWeb.StudentController do
)
|> Repo.all()

# Use the academic_year and grade_id from one of the current enrollments
%{academic_year: academic_year, grade_id: grade_id} = List.first(current_enrollments)
# Get grade_id from the student table
grade_id = student.grade_id

# Update all current enrollment records to set is_current: false and end_date
Enum.each(current_enrollments, fn enrollment ->
EnrollmentRecords.update_enrollment_record(enrollment, %{
is_current: false,
Expand Down

0 comments on commit c1eb8bb

Please sign in to comment.