mirror of
https://github.com/TandoorRecipes/recipes.git
synced 2025-12-24 02:39:20 -05:00
fixed ai provider admin and prevent accidental update
This commit is contained in:
@@ -91,8 +91,8 @@ admin.site.register(SearchPreference, SearchPreferenceAdmin)
|
|||||||
|
|
||||||
|
|
||||||
class AiProviderAdmin(admin.ModelAdmin):
|
class AiProviderAdmin(admin.ModelAdmin):
|
||||||
list_display = ('name', 'space', 'model',)
|
list_display = ('name', 'space', 'model_name',)
|
||||||
search_fields = ('name', 'space', 'model',)
|
search_fields = ('name', 'space', 'model_name',)
|
||||||
|
|
||||||
|
|
||||||
admin.site.register(AiProvider, AiProviderAdmin)
|
admin.site.register(AiProvider, AiProviderAdmin)
|
||||||
|
|||||||
@@ -417,6 +417,9 @@ class AiProvider(models.Model):
|
|||||||
created_at = models.DateTimeField(auto_now_add=True)
|
created_at = models.DateTimeField(auto_now_add=True)
|
||||||
updated_at = models.DateTimeField(auto_now=True)
|
updated_at = models.DateTimeField(auto_now=True)
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return self.name
|
||||||
|
|
||||||
|
|
||||||
class AiLog(models.Model, PermissionModelMixin):
|
class AiLog(models.Model, PermissionModelMixin):
|
||||||
F_FILE_IMPORT = 'FILE_IMPORT'
|
F_FILE_IMPORT = 'FILE_IMPORT'
|
||||||
@@ -437,6 +440,9 @@ class AiLog(models.Model, PermissionModelMixin):
|
|||||||
created_at = models.DateTimeField(auto_now_add=True)
|
created_at = models.DateTimeField(auto_now_add=True)
|
||||||
updated_at = models.DateTimeField(auto_now=True)
|
updated_at = models.DateTimeField(auto_now=True)
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return f"{self.function} {self.ai_provider.name} {self.created_at}"
|
||||||
|
|
||||||
|
|
||||||
class ConnectorConfig(models.Model, PermissionModelMixin):
|
class ConnectorConfig(models.Model, PermissionModelMixin):
|
||||||
HOMEASSISTANT = 'HomeAssistant'
|
HOMEASSISTANT = 'HomeAssistant'
|
||||||
|
|||||||
@@ -335,18 +335,24 @@ class AiProviderSerializer(serializers.ModelSerializer):
|
|||||||
return super().create(validated_data)
|
return super().create(validated_data)
|
||||||
|
|
||||||
def update(self, instance, validated_data):
|
def update(self, instance, validated_data):
|
||||||
validated_data = self.handle_global_space_logic(validated_data)
|
validated_data = self.handle_global_space_logic(validated_data, instance=instance)
|
||||||
return super().update(instance, validated_data)
|
return super().update(instance, validated_data)
|
||||||
|
|
||||||
def handle_global_space_logic(self, validated_data):
|
def handle_global_space_logic(self, validated_data, instance=None):
|
||||||
"""
|
"""
|
||||||
allow superusers to create AI providers without a space but make sure everyone else only uses their own space
|
allow superusers to create AI providers without a space but make sure everyone else only uses their own space
|
||||||
"""
|
"""
|
||||||
if ('space' not in validated_data or not validated_data['space']) and self.context['request'].user.is_superuser:
|
if ('space' not in validated_data or not validated_data['space']) and self.context['request'].user.is_superuser:
|
||||||
validated_data['space'] = None
|
validated_data['space'] = None
|
||||||
|
else:
|
||||||
|
if instance:
|
||||||
|
validated_data['space'] = instance.space
|
||||||
else:
|
else:
|
||||||
validated_data['space'] = self.context['request'].space
|
validated_data['space'] = self.context['request'].space
|
||||||
|
|
||||||
|
if 'log_credit_cost' in validated_data and not self.context['request'].user.is_superuser:
|
||||||
|
del validated_data['log_credit_cost']
|
||||||
|
|
||||||
return validated_data
|
return validated_data
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
|
|||||||
Reference in New Issue
Block a user