133 lines
4.3 KiB
Python
133 lines
4.3 KiB
Python
import django.db
|
|
from rest_framework import serializers
|
|
from .models import (Attendance, AttendanceRecord, Batch, Course, Expenses, FCMDevice, Fee,
|
|
Institute, Routine, Salary, Staff, Student, StudentRoutine, Subtopic, Topic, Vendor)
|
|
|
|
class FCMDeviceSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model = FCMDevice
|
|
fields = ['id', 'token']
|
|
depth = 10
|
|
|
|
class InstituteSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model = Institute
|
|
depth = 10
|
|
fields = ['id', 'name', 'phone', 'email', 'address', 'pan_no', 'reg_no', 'logo', 'description']
|
|
|
|
|
|
class SubtopicSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model = Subtopic
|
|
depth = 10
|
|
fields = ['id', 'name']
|
|
|
|
|
|
class TopicSerializer(serializers.ModelSerializer):
|
|
subtopics = SubtopicSerializer(read_only=True, many=True).data
|
|
class Meta:
|
|
model = Topic
|
|
fields = ['id', 'name', 'subtopics']
|
|
depth = 10
|
|
|
|
|
|
class CourseSerializer(serializers.ModelSerializer):
|
|
topics = TopicSerializer(read_only=True, many=True).data
|
|
class Meta:
|
|
model = Course
|
|
depth = 3
|
|
fields = ['id', 'name', 'amount', 'duration', 'duration_type', 'remarks', 'topics']
|
|
|
|
|
|
|
|
class StudentSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model = Student
|
|
depth = 10
|
|
fields = [
|
|
'id', 'name', 'status', 'gender', 'birth_date', 'email', 'phone',
|
|
'temporary_address', 'permanent_address', 'marital_status', 'parent_name',
|
|
'parent_phone', 'citizenship_no', 'qualification', 'image', 'batches', 'courses',
|
|
'subtotal', 'discount', 'total', 'paid', 'remaining', 'joining_date', 'file', 'remarks'
|
|
]
|
|
|
|
|
|
|
|
class BatchSerializer(serializers.ModelSerializer):
|
|
students = StudentSerializer(many=True).data
|
|
class Meta:
|
|
model = Batch
|
|
depth = 10
|
|
fields = ['id', 'name', 'start_date', 'end_date', 'students']
|
|
|
|
|
|
|
|
class FeeSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model = Fee
|
|
fields = [
|
|
'id', 'student', 'old_total', 'old_paid', 'old_remaining', 'balance_amount',
|
|
'payment_date', 'payment_method', 'total', 'paid', 'remaining', 'remarks'
|
|
]
|
|
depth = 10
|
|
|
|
class VendorSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model = Vendor
|
|
depth = 10
|
|
fields = ['id', 'name', 'address', 'phone']
|
|
|
|
class ExpensesSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model = Expenses
|
|
depth = 10
|
|
fields = [
|
|
'id', 'name', 'amount', 'date', 'vendor', 'paid', 'credit', 'credit_date', 'remarks'
|
|
]
|
|
|
|
class SalarySerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model = Salary
|
|
depth = 10
|
|
fields = '__all__'
|
|
|
|
class StaffSerializer(serializers.ModelSerializer):
|
|
salaries = SalarySerializer(many=True).data
|
|
class Meta:
|
|
model = Staff
|
|
depth = 10
|
|
fields = '__all__'
|
|
# fields = [
|
|
# 'id', 'name', 'gender', 'designation', 'birth_date', 'phone', 'email',
|
|
# 'temporary_address', 'permanent_address', 'marital_status', 'parent_name',
|
|
# 'parent_phone', 'citizenship_no', 'passport', 'image', 'monthly', 'pending_salary', 'remarks', 'salaries'
|
|
# ]
|
|
|
|
class RoutineSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model = Routine
|
|
depth = 10
|
|
fields = ['id', 'name', 'start_time', 'end_time', 'teacher']
|
|
|
|
class StudentRoutineSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model = StudentRoutine
|
|
depth = 10
|
|
fields = ['id', 'student', 'routine', 'course', 'course_status']
|
|
|
|
|
|
class AttendanceRecordSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model = AttendanceRecord
|
|
depth = 10
|
|
fields = ['id', 'attendance', 'student', 'student_attend']
|
|
|
|
|
|
class AttendanceSerializer(serializers.ModelSerializer):
|
|
records = AttendanceRecordSerializer(many=True).data
|
|
class Meta:
|
|
model = Attendance
|
|
depth = 1
|
|
fields = ['id', 'date', 'routine', 'teacher', 'teacher_attend', 'class_status', 'records']
|
|
|