mirror of
https://github.com/inventree/InvenTree.git
synced 2025-06-16 20:15:44 +00:00
Setting filter (#9076)
* Expose "model_filters" to settings API * Enable settings filters in the front-end * Fix return types * Bump API version
This commit is contained in:
@ -1,13 +1,16 @@
|
||||
"""InvenTree API version information."""
|
||||
|
||||
# InvenTree API version
|
||||
INVENTREE_API_VERSION = 310
|
||||
INVENTREE_API_VERSION = 311
|
||||
|
||||
"""Increment this API version number whenever there is a significant change to the API that any clients need to know about."""
|
||||
|
||||
|
||||
INVENTREE_API_TEXT = """
|
||||
|
||||
v311 - 2025-02-14 : https://github.com/inventree/InvenTree/pull/9076
|
||||
- Adds "model_filters" attribute to settings API
|
||||
|
||||
v310 - 2025-02-14 : https://github.com/inventree/InvenTree/pull/9077
|
||||
- Adds 'is_variant' filter to the Part list API
|
||||
|
||||
|
@ -893,7 +893,7 @@ class BaseInvenTreeSetting(models.Model):
|
||||
"""Check if this setting references a model instance in the database."""
|
||||
return self.model_name() is not None
|
||||
|
||||
def model_name(self):
|
||||
def model_name(self) -> str:
|
||||
"""Return the model name associated with this setting."""
|
||||
setting = self.get_setting_definition(
|
||||
self.key, **self.get_filters_for_instance()
|
||||
@ -901,6 +901,19 @@ class BaseInvenTreeSetting(models.Model):
|
||||
|
||||
return setting.get('model', None)
|
||||
|
||||
def model_filters(self) -> dict:
|
||||
"""Return the model filters associated with this setting."""
|
||||
setting = self.get_setting_definition(
|
||||
self.key, **self.get_filters_for_instance()
|
||||
)
|
||||
|
||||
filters = setting.get('model_filters', None)
|
||||
|
||||
if filters is not None and type(filters) is not dict:
|
||||
filters = None
|
||||
|
||||
return filters
|
||||
|
||||
def model_class(self):
|
||||
"""Return the model class associated with this setting.
|
||||
|
||||
|
@ -71,6 +71,8 @@ class SettingsSerializer(InvenTreeModelSerializer):
|
||||
|
||||
model_name = serializers.CharField(read_only=True)
|
||||
|
||||
model_filters = serializers.DictField(read_only=True)
|
||||
|
||||
api_url = serializers.CharField(read_only=True)
|
||||
|
||||
value = SettingsValueField(allow_null=True)
|
||||
@ -185,6 +187,7 @@ class GenericReferencedSettingSerializer(SettingsSerializer):
|
||||
'type',
|
||||
'choices',
|
||||
'model_name',
|
||||
'model_filters',
|
||||
'api_url',
|
||||
'typ',
|
||||
'required',
|
||||
|
Reference in New Issue
Block a user