1313from ..filters import CourseFilter , BatchFilter , CurriculumFilter
1414
1515from .serializers import CourseSerializer ,CurriculumSerializer ,BatchSerializer
16+ from .views_student_management import get_batch_curriculum_display , get_available_curriculums_for_batch
1617from django .core .serializers import serialize
1718from django .db import IntegrityError , transaction
1819from django .utils import timezone
@@ -880,13 +881,17 @@ def admin_view_all_batches(request):
880881 # Use centralized filled seats calculation function
881882 filled_seats = calculate_batch_filled_seats (batch )
882883 available_seats = max (0 , batch .total_seats - filled_seats )
884+
885+ from .views_student_management import get_batch_curriculum_display
886+ curriculum_display = get_batch_curriculum_display (batch )
883887
884888 batch_data .append ({
885889 'batch_id' : batch .id ,
886890 'name' : batch .name ,
887891 'discipline' : str (batch .discipline .acronym ),
888892 'year' : batch .year ,
889- 'curriculum' : batch .curriculum .name if batch .curriculum else None ,
893+ 'curriculum' : curriculum_display if curriculum_display != "No curriculum assigned" else (batch .curriculum .name if batch .curriculum else None ),
894+ 'curriculum_display' : curriculum_display ,
890895 'id' : batch .curriculum .id if batch .curriculum else None ,
891896 'curriculumVersion' : batch .curriculum .version if batch .curriculum else None ,
892897 'running_batch' : batch .running_batch ,
@@ -907,12 +912,17 @@ def admin_view_all_batches(request):
907912 filled_seats = calculate_batch_filled_seats (batch )
908913 available_seats = max (0 , batch .total_seats - filled_seats )
909914
915+ # Get curriculum display for multi-curriculum support
916+ from .views_student_management import get_batch_curriculum_display
917+ curriculum_display = get_batch_curriculum_display (batch )
918+
910919 finished_batch_data .append ({
911920 'batch_id' : batch .id ,
912921 'name' : batch .name ,
913922 'discipline' : str (batch .discipline .acronym ),
914923 'year' : batch .year ,
915- 'curriculum' : batch .curriculum .name if batch .curriculum else None ,
924+ 'curriculum' : curriculum_display if curriculum_display != "No curriculum assigned" else (batch .curriculum .name if batch .curriculum else None ),
925+ 'curriculum_display' : curriculum_display ,
916926 'id' : batch .curriculum .id if batch .curriculum else None ,
917927 'curriculumVersion' : batch .curriculum .version if batch .curriculum else None ,
918928 'running_batch' : batch .running_batch ,
@@ -1807,8 +1817,10 @@ def edit_batch_form(request, batch_id):
18071817 'name' : batch .name ,
18081818 'year' : batch .year ,
18091819 'curriculum_id' : batch .curriculum_id ,
1820+ 'curriculum_display' : get_batch_curriculum_display (batch ),
18101821 'running_batch' : batch .running_batch ,
18111822 'total_seats' : batch .total_seats , # Add total_seats to GET response
1823+ 'available_curriculums' : get_available_curriculums_for_batch (batch ),
18121824 }
18131825
18141826 curricula_data = None
@@ -1835,7 +1847,7 @@ def edit_batch_form(request, batch_id):
18351847 try :
18361848 batch = Batch .objects .get (id = batch_id )
18371849 except Batch .DoesNotExist :
1838- return JsonResponse ({'error' : 'Batch not found' }, status = status . HTTP_404_NOT_FOUND )
1850+ return JsonResponse ({'error' : 'Batch not found' }, status = 404 )
18391851
18401852 # Parse the incoming JSON data
18411853 data = json .loads (request .body )
@@ -1856,7 +1868,7 @@ def edit_batch_form(request, batch_id):
18561868 discipline = Discipline .objects .get (id = discipline_id )
18571869 batch .discipline = discipline
18581870 except Discipline .DoesNotExist :
1859- return JsonResponse ({'error' : 'Invalid discipline ID' }, status = status . HTTP_400_BAD_REQUEST )
1871+ return JsonResponse ({'error' : 'Invalid discipline ID' }, status = 400 )
18601872
18611873 # Update curriculum (if provided)
18621874 curriculum_id = data .get ('disciplineBatch' )
@@ -1865,18 +1877,17 @@ def edit_batch_form(request, batch_id):
18651877 curriculum = Curriculum .objects .get (id = curriculum_id )
18661878 batch .curriculum = curriculum
18671879 except Curriculum .DoesNotExist :
1868- return JsonResponse ({'error' : 'Invalid curriculum ID' }, status = status . HTTP_400_BAD_REQUEST )
1880+ return JsonResponse ({'error' : 'Invalid curriculum ID' }, status = 400 )
18691881 else :
18701882 batch .curriculum = None # Set curriculum to None if not provided
18711883
18721884 # Save the updated batch
18731885 batch .save ()
18741886
1875- return JsonResponse ({'status' : status . HTTP_200_OK , 'message' : 'Batch updated successfully' })
1887+ return JsonResponse ({'status' : 'success' , 'message' : 'Batch updated successfully' })
18761888 except Exception as e :
1877- return JsonResponse ({'status' : 'error' , 'message' : str (e )}, status = status .HTTP_500_INTERNAL_SERVER_ERROR )
1878- return JsonResponse ({'error' : 'Invalid request method' }, status = status .HTTP_405_METHOD_NOT_ALLOWED )
1879-
1889+ return JsonResponse ({'status' : 'error' , 'message' : str (e )}, status = 500 )
1890+ return JsonResponse ({'error' : 'Invalid request method' }, status = 405 )
18801891
18811892def instigate_semester (request , semester_id ):
18821893 """
0 commit comments