|
|
|
|
@ -46,8 +46,29 @@ class AuthorBalanceCreateSerializer(serializers.ModelSerializer): |
|
|
|
|
return AuthorBalanceSerializer(instance, context=self.context).to_representation(instance) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class PaymentSerializer(serializers.ModelSerializer): |
|
|
|
|
user = UserSerializer() |
|
|
|
|
|
|
|
|
|
class Meta: |
|
|
|
|
model = Payment |
|
|
|
|
fields = BASE_PAYMENT_FIELDS |
|
|
|
|
read_only_fields = ( |
|
|
|
|
'id', |
|
|
|
|
'user', |
|
|
|
|
'created_at', |
|
|
|
|
'update_at', |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
def to_representation(self, instance): |
|
|
|
|
if isinstance(instance, CoursePayment): |
|
|
|
|
return CoursePaymentSerializer(instance, context=self.context).to_representation(instance) |
|
|
|
|
elif isinstance(instance, SchoolPayment): |
|
|
|
|
return SchoolPaymentSerializer(instance, context=self.context).to_representation(instance) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class AuthorBalanceSerializer(serializers.ModelSerializer): |
|
|
|
|
author = UserSerializer() |
|
|
|
|
payment = serializers.SerializerMethodField() |
|
|
|
|
|
|
|
|
|
class Meta: |
|
|
|
|
model = AuthorBalance |
|
|
|
|
@ -70,25 +91,23 @@ class AuthorBalanceSerializer(serializers.ModelSerializer): |
|
|
|
|
'payment', |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class PaymentCreateSerializer(serializers.ModelSerializer): |
|
|
|
|
|
|
|
|
|
class Meta: |
|
|
|
|
model = Payment |
|
|
|
|
# fields = ( |
|
|
|
|
# 'weekdays', |
|
|
|
|
# 'date_start', |
|
|
|
|
# 'date_end', |
|
|
|
|
# ) |
|
|
|
|
fields = '__all__' |
|
|
|
|
read_only_fields = ( |
|
|
|
|
'id', |
|
|
|
|
'user', |
|
|
|
|
'created_at', |
|
|
|
|
'update_at', |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def get_payment(self, instance): |
|
|
|
|
try: |
|
|
|
|
p = instance.payment |
|
|
|
|
except Exception: |
|
|
|
|
return None |
|
|
|
|
data = { |
|
|
|
|
'id': p.id, |
|
|
|
|
'created_at': p.created_at, |
|
|
|
|
'amount': p.amount, |
|
|
|
|
'data': p.data, |
|
|
|
|
} |
|
|
|
|
if isinstance(instance.payment, CoursePayment): |
|
|
|
|
data['course'] = { |
|
|
|
|
'id': p.course.id, |
|
|
|
|
'title': p.course.title, |
|
|
|
|
} |
|
|
|
|
return data |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class PaymentSerializer(serializers.ModelSerializer): |
|
|
|
|
@ -112,6 +131,7 @@ class PaymentSerializer(serializers.ModelSerializer): |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class CoursePaymentCreateSerializer(serializers.ModelSerializer): |
|
|
|
|
|
|
|
|
|
class Meta: |
|
|
|
|
model = CoursePayment |
|
|
|
|
fields = BASE_PAYMENT_FIELDS + ('course',) |
|
|
|
|
@ -124,13 +144,24 @@ class CoursePaymentCreateSerializer(serializers.ModelSerializer): |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class CoursePaymentSerializer(CoursePaymentCreateSerializer): |
|
|
|
|
class CoursePaymentSerializer(serializers.ModelSerializer): |
|
|
|
|
user = UserSerializer() |
|
|
|
|
course = CourseSerializer() |
|
|
|
|
|
|
|
|
|
class Meta: |
|
|
|
|
model = CoursePayment |
|
|
|
|
fields = BASE_PAYMENT_FIELDS + ('course',) |
|
|
|
|
read_only_fields = ( |
|
|
|
|
'id', |
|
|
|
|
'user', |
|
|
|
|
'course', |
|
|
|
|
'created_at', |
|
|
|
|
'update_at', |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class SchoolPaymentCreateSerializer(serializers.ModelSerializer): |
|
|
|
|
user = UserSerializer() |
|
|
|
|
|
|
|
|
|
class Meta: |
|
|
|
|
model = SchoolPayment |
|
|
|
|
fields = BASE_PAYMENT_FIELDS + ( |
|
|
|
|
@ -146,14 +177,8 @@ class SchoolPaymentCreateSerializer(serializers.ModelSerializer): |
|
|
|
|
'update_at', |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
def to_representation(self, instance): |
|
|
|
|
if isinstance(instance, CoursePayment): |
|
|
|
|
return CoursePaymentSerializer(instance, context=self.context).to_representation(instance) |
|
|
|
|
elif isinstance(instance, SchoolPayment): |
|
|
|
|
return SchoolPaymentSerializer(instance, context=self.context).to_representation(instance) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class SchoolPaymentSerializer(SchoolPaymentCreateSerializer): |
|
|
|
|
class SchoolPaymentSerializer(serializers.ModelSerializer): |
|
|
|
|
user = UserSerializer() |
|
|
|
|
|
|
|
|
|
class Meta: |
|
|
|
|
|