mirror of
https://github.com/inventree/InvenTree
synced 2024-08-30 18:33:04 +00:00
Convert to "native value" in the serializer
This commit is contained in:
parent
4433befbdc
commit
324335a620
@ -909,6 +909,14 @@ class InvenTreeSetting(BaseInvenTreeSetting):
|
||||
help_text=_('Settings key (must be unique - case insensitive'),
|
||||
)
|
||||
|
||||
def to_native_value(self):
|
||||
"""
|
||||
Return the "pythonic" value,
|
||||
e.g. convert "True" to True, and "1" to 1
|
||||
"""
|
||||
|
||||
return self.__class__.get_setting(self.key)
|
||||
|
||||
|
||||
class InvenTreeUserSetting(BaseInvenTreeSetting):
|
||||
"""
|
||||
@ -1119,6 +1127,14 @@ class InvenTreeUserSetting(BaseInvenTreeSetting):
|
||||
'user__id': kwargs['user'].id
|
||||
}
|
||||
|
||||
def to_native_value(self):
|
||||
"""
|
||||
Return the "pythonic" value,
|
||||
e.g. convert "True" to True, and "1" to 1
|
||||
"""
|
||||
|
||||
return self.__class__.get_setting(self.key, user=self.user)
|
||||
|
||||
|
||||
class PriceBreak(models.Model):
|
||||
"""
|
||||
|
@ -11,9 +11,10 @@ from rest_framework import serializers
|
||||
|
||||
from common.models import InvenTreeSetting, InvenTreeUserSetting
|
||||
|
||||
class GlobalSettingsSerializer(InvenTreeModelSerializer):
|
||||
|
||||
class SettingsSerializer(InvenTreeModelSerializer):
|
||||
"""
|
||||
Serializer for the InvenTreeSetting model
|
||||
Base serializer for a settings object
|
||||
"""
|
||||
|
||||
key = serializers.CharField(read_only=True)
|
||||
@ -26,13 +27,25 @@ class GlobalSettingsSerializer(InvenTreeModelSerializer):
|
||||
|
||||
choices = serializers.SerializerMethodField()
|
||||
|
||||
def get_choices(self, obj: InvenTreeUserSetting):
|
||||
def get_choices(self, obj):
|
||||
"""
|
||||
Returns the choices available for a given item
|
||||
"""
|
||||
|
||||
return obj.choices()
|
||||
|
||||
value = serializers.SerializerMethodField()
|
||||
|
||||
def get_value(self, obj):
|
||||
|
||||
return obj.to_native_value()
|
||||
|
||||
|
||||
class GlobalSettingsSerializer(SettingsSerializer):
|
||||
"""
|
||||
Serializer for the InvenTreeSetting model
|
||||
"""
|
||||
|
||||
class Meta:
|
||||
model = InvenTreeSetting
|
||||
fields = [
|
||||
@ -46,30 +59,13 @@ class GlobalSettingsSerializer(InvenTreeModelSerializer):
|
||||
]
|
||||
|
||||
|
||||
class UserSettingsSerializer(InvenTreeModelSerializer):
|
||||
class UserSettingsSerializer(SettingsSerializer):
|
||||
"""
|
||||
Serializer for the InvenTreeUserSetting model
|
||||
"""
|
||||
|
||||
key = serializers.CharField(read_only=True)
|
||||
|
||||
name = serializers.CharField(read_only=True)
|
||||
|
||||
description = serializers.CharField(read_only=True)
|
||||
|
||||
user = serializers.PrimaryKeyRelatedField(read_only=True)
|
||||
|
||||
type = serializers.CharField(source='setting_type', read_only=True)
|
||||
|
||||
choices = serializers.SerializerMethodField()
|
||||
|
||||
def get_choices(self, obj: InvenTreeUserSetting):
|
||||
"""
|
||||
Returns the choices available for a given item
|
||||
"""
|
||||
|
||||
return obj.choices()
|
||||
|
||||
class Meta:
|
||||
model = InvenTreeUserSetting
|
||||
fields = [
|
||||
|
Loading…
Reference in New Issue
Block a user