Merge branch 'feature/LIL-664' into 'master'

LIL-664 Админка / балансы преподавателей

See merge request lilcity/backend!148
remotes/origin/hotfix/LIL-661
cfwme 7 years ago
commit 20de0237fd
  1. 58
      api/v1/serializers/payment.py

@ -46,8 +46,30 @@ class AuthorBalanceCreateSerializer(serializers.ModelSerializer):
return AuthorBalanceSerializer(instance, context=self.context).to_representation(instance) 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): class AuthorBalanceSerializer(serializers.ModelSerializer):
author = UserSerializer() author = UserSerializer()
# payment = PaymentSerializer()
payment = serializers.SerializerMethodField()
class Meta: class Meta:
model = AuthorBalance model = AuthorBalance
@ -70,25 +92,23 @@ class AuthorBalanceSerializer(serializers.ModelSerializer):
'payment', 'payment',
) )
def get_payment(self, instance):
class PaymentSerializer(serializers.ModelSerializer): try:
user = UserSerializer() p = instance.payment
except Exception:
class Meta: return None
model = Payment data = {
fields = BASE_PAYMENT_FIELDS 'id': p.id,
read_only_fields = ( 'created_at': p.created_at,
'id', 'amount': p.amount,
'user', 'data': p.data,
'created_at', }
'update_at', if isinstance(instance.payment, CoursePayment):
) data['course'] = {
'id': p.course.id,
def to_representation(self, instance): 'title': p.course.title,
if isinstance(instance, CoursePayment): }
return CoursePaymentSerializer(instance, context=self.context).to_representation(instance) return data
elif isinstance(instance, SchoolPayment):
return SchoolPaymentSerializer(instance, context=self.context).to_representation(instance)
class CoursePaymentSerializer(serializers.ModelSerializer): class CoursePaymentSerializer(serializers.ModelSerializer):

Loading…
Cancel
Save