mirror of
https://github.com/eitchtee/WYGIWYH.git
synced 2026-03-17 23:13:57 +01:00
61 lines
1.7 KiB
Python
61 lines
1.7 KiB
Python
from rest_framework import serializers
|
|
from rest_framework.permissions import IsAuthenticated
|
|
|
|
from apps.api.serializers.currencies import CurrencySerializer
|
|
from apps.accounts.models import AccountGroup, Account
|
|
from apps.currencies.models import Currency
|
|
|
|
|
|
class AccountGroupSerializer(serializers.ModelSerializer):
|
|
permission_classes = [IsAuthenticated]
|
|
|
|
class Meta:
|
|
model = AccountGroup
|
|
fields = "__all__"
|
|
|
|
|
|
class AccountSerializer(serializers.ModelSerializer):
|
|
group = AccountGroupSerializer(read_only=True)
|
|
group_id = serializers.PrimaryKeyRelatedField(
|
|
queryset=AccountGroup.objects.all(),
|
|
source="group",
|
|
write_only=True,
|
|
allow_null=True,
|
|
)
|
|
currency = CurrencySerializer(read_only=True)
|
|
currency_id = serializers.PrimaryKeyRelatedField(
|
|
queryset=Currency.objects.all(), source="currency", write_only=True
|
|
)
|
|
exchange_currency = CurrencySerializer(read_only=True)
|
|
exchange_currency_id = serializers.PrimaryKeyRelatedField(
|
|
queryset=Currency.objects.all(),
|
|
source="exchange_currency",
|
|
write_only=True,
|
|
allow_null=True,
|
|
)
|
|
|
|
permission_classes = [IsAuthenticated]
|
|
|
|
class Meta:
|
|
model = Account
|
|
fields = [
|
|
"id",
|
|
"name",
|
|
"group",
|
|
"group_id",
|
|
"currency",
|
|
"currency_id",
|
|
"exchange_currency",
|
|
"exchange_currency_id",
|
|
"is_asset",
|
|
]
|
|
|
|
def create(self, validated_data):
|
|
return Account.objects.create(**validated_data)
|
|
|
|
def update(self, instance, validated_data):
|
|
for attr, value in validated_data.items():
|
|
setattr(instance, attr, value)
|
|
instance.save()
|
|
return instance
|